現在、ソフトウェアを構築するための最良のプロセスについて、チーム内で議論があります。私のチームはgitflowに従って、デプロイメントパイプラインの開始時に一度ビルドし、各環境でそのビルドを促進しています。
他のチームは、Pre-PRODからPROへのビルドを促進する製品を除いて、環境ごとに1回ビルドします。彼らは環境ごとにブランチを持っており、機能をより高いレベルの環境に移動したい場合、コードを正しいブランチにマージしてビルドをトリガーします。
私のアプローチは正しいと非常に強く感じています(!)。CI/CDに関する本を何冊か読んだことがあり、ほとんどすべてが1つを構築し、宣伝するというコンセプトから始まります。しかし、私のアプローチにはかなりの抵抗があり、両方のアプローチをより幅広い聴衆に向けて鳴らしたいと思っています。これまでに上げられたものに対するポイントは次のとおりです。
したがって、私が正しく理解している場合、チームのアプローチは、最初にバイナリを作成し、次にプッシュしてテスト、プリプロダクション、そして最終的には同じバイナリを使用してプロダクションすることです。他のチームのアプローチは、ブランチを使用してさまざまな環境を反映し、実行することですそれらのブランチからの継続的なビルド?
私はあなたに同意しますが、これらのことは常にあるので、この考えには賛否両論があることを考慮してください。あなたがあなたのアイデアをプッシュするなら、あなたはあなたのアプローチの問題とあなたの支持のポイントに気づくべきです:
ここで重要な点は、堅牢性と安全性とリリース効率であり、会社にとってより重要であるように思えます。環境ごとのビルドシステムを使用してショートカットが許可されている場合(そして、よくわかっている場合は、迅速に修正するために運用ブランチを直接更新する可能性が高い)、最終的に問題が発生すると、会社の費用がさらに増えると良い議論をする可能性があります。将来の問題では、最初に修正に多くの時間を費やすために会社にコストがかかり、遡及的に会社の評判を損なうことはありません防止バグ。
これが失敗した場合、本番環境にジャンプするだけでテストを実行できる緊急事態が発生した場合に備えて、ビルドをプリプロダクションに直接移行して緊急修正を行う可能性があります。
最も重要なのは、この問題に摩擦を生じさせる価値がないため、柔軟に他の点に耳を傾けることです。結局、あなたは会社の最善の利益になるものだけを望み、あまりにも多くの抵抗を提供することは会社にとってあまり生産的ではなく、いかなる場合でもあなたによく反映しません。
お役に立てば幸いです。