簡単に使用でき、継続的インテグレーション/デリバリーを可能にするgitブランチ管理モデルを探しています。
prod
、uat
、dev
の3つの環境があると想像してください。
コードリポジトリには、ソースコードとインフラストラクチャがコードファイル(この場合はserverless.yml
)
ソースコード(gitタグ?)にセマンティックバージョニングを使用したいのですが、新しいバージョンのリリース時に自動デプロイを行いたいです。
私が現在想像しているように、gitにはロックされたブランチがmaster
とdev
の2つしかないということです。 master
が現在のprod
環境と一致する場合(マスターにマージするたびに、prod
にデプロイされます)。 dev
にプッシュされたすべてのコミットはdev
環境にデプロイされ、dev
にプッシュされたすべてのタグはuat
にデプロイされます。
これはすべて可能に思えますが、私には不明な点がいくつかあります。
「ソースコードに影響を与えない」インフラストラクチャへの変更を管理するにはどうすればよいですか?デプロイされたインスタンスの数を増やす必要があるとしましょう。
理想的には、uatで受け入れられたバージョンのみを本番環境にリリースしたいのですが、タグなしのコミットがprod
環境に到達しないようにするにはどうすればよいですか?
このトピック全般にアプローチする方法についての推奨事項を探しています。ありがとう!
あなたの質問は非常に一般的であるため、一般的な答えは避けられません。そうは言っても、私たちの会社でgitflow/devopsをどのように行っているかを(大まかに)あなたと共有できると思いました。先に進んで見てから、より具体的な質問をすることができます。
これは私たちの gitflow です。 AWSクラウドデプロイ を使用して、 ビットバケットパイプライン を使用してさまざまなgitブランチにプッシュするときにコードのデプロイを自動化します。それをどのように結び付けるかについてのスニークピークを見ることができます ここ 。