タグ付けされた質問 「release-management」

4
Gitフローを簡素化するために開発ブランチを取り除く方法
継続的に開発されたWebプロジェクト(製品ではない)には、現在gitフローにほぼ基づいた次の分岐戦略があります。 開発ブランチ:最新の作業バージョン マスターブランチ:リリースされるバージョン/リリースされるバージョン 機能ブランチ:開発中の機能 ホットフィックスブランチ:リリースバージョンの緊急バグ修正 マスターは読み取り専用で、開発ブランチまたはホットフィックスブランチからのプルリクエストによって更新されます。各更新により、リリース候補が構築され、ステージングシステムに展開されます。リリース候補は、手動の承認後に実稼働に展開されます。 フィーチャーブランチはオフに基づいて作成されている開発、または最後のマスターにマージされたことにコミットから。開発する機能ブランチからのプルリクエストが構築され、統合テストと受け入れテスト(自動および手動)が実行される無料のテストシステムにデプロイされます。テストとレビューに成功すると、PRはマージされ、次のリリースの一部になります(開発からマスターへのマージ)。 私の目標 これを簡素化し、開発ブランチを削除したいと思います。開発ブランチには主に歴史的な理由があり、常に正常にテストされたバージョンであるため、マスターから切り離しておく必要はないと思います。これを削除すると、追加のマージがなくなるため、リリースプロセスも簡素化されます。 次の制約があります。 リリースは予定されており、完全に自動化するべきではありません 機能ブランチは通常短命ですが、一部は数週間マージされないままになります(たとえば、再設計)が、同様にテストする必要があります(現在、開発のためのオープンプルリクエストとして) 場合によっては、通常のリリース以外で単一の機能をリリースして、事実上それを修正プログラムに変更する必要があります。現在の戦略では、機能ブランチをリベースし、直接マスターにマージできます ステージングでの外部システムとの受け入れテストが失敗した後、機能を保留する必要があることも起こります 移行についてわからない場合: 現在、テスト用のプルリクエストを作成し、リリース用のコミットをマージしています。これを統合できますか? マスターが最新リリースより前である場合のホットフィックスの処理方法。ホットフィックスブランチからリリースを直接ビルドおよびデプロイする必要がありますか? 既にマージされたリリースから除外されるべき機能に対処する賢明な方法はありますか?これらの場合、独立した開発ブランチは本当に利点ですか?とにかく、ほとんどの場合、手動でコミットを元に戻して元に戻すことになります。

2
リリースからリリースを切り離す方法はありますか?
継続的な展開の1つの方法は、リリースから展開を切り離すことです。つまり、変更をすぐにアクティブ化せずに更新を展開します。 これには機能の切り替えを使用できることは知っていますが、「非機能」の他の手法があるかどうか疑問に思っています。 たとえば、バグ修正のために機能切り替えを作成しますか?おそらくそうではなく、バグ修正はできるだけ早く展開する必要があると主張することができます。そして、バグ修正がリリースされた後、それをオフに切り替えたくないことは確かです。しかし、これは事実ですか?制御された方法でリリースするのは危険な変更かもしれません。また、予期しない副作用がある場合は、ロールバックできると便利です。それでは、すべての変更に対する機能フラグはありますか? そして、視覚的な変化はどうですか?たとえば、CSSの機能フラグのようなものを実装できますか?それは理にかなっていますか?

2
ウォーターフォールとアジャイルの違いを説明するのに役立つリリース管理の側面はどれですか?
DevOpsを誰かに説明すると、次のような質問が出てきます。 アジャイル手法を使用したリリース管理は、ウォーターフォールとどのように異なりますか? そのような聴衆にこれらの違いを説明するためにどのような基準を使用できますか?


2
DevOpsはソフトウェアエスクロー手順の改善にどのように役立ちますか?
ソフトウェアベンダーと、このベンダーの一部のソフトウェアのライセンスを取得した顧客について検討します。ライセンスを取得するソフトウェアは、オンプレミス(顧客の場所)またはSaaSソリューションの形式(ベンダーがホスト)で使用します。ただし、顧客はソフトウェア(実行可能ファイルなど)を使用/実行するために必要なものにしかアクセスできないため、実行可能ファイルを作成するためのソースコンポーネントやそれに関連するものにはアクセスできません。 ベンダーに問題が発生した場合(破産など)のシナリオで顧客のビジネス継続性を保護するために、両方の当事者が何らかのソフトウェアエスクロー(SE ...「また」)契約(ソースコードエスクローとも呼ばれる)に同意する場合があります。このような合意により、両当事者は、両当事者から信頼される第三者(=「ソフトウェアエスクローエージェント」)を関与させることに同意します。これらは、そのようなSE合意のハイライトです(=実際のSEプロセスの仕様): すべてのソフトウェアコンポーネント(アーティファクトライセンスされたソフトウェアに関連する)SEエージェントに関連するいくつかの合意された場所で、ソフトウェアベンダーによって寄託されます。そのようなデポジットには、実行可能ファイルだけでなく、実行可能ファイルを作成するためのソースコンポーネントとそれに関連するすべてのものが含まれます(実行可能ファイルを作成するためのドキュメント、指示なども)。 ソフトウェアベンダーはソフトウェアライセンスの有効期間中に複数のリリースを作成する場合があり、お客様はそのような新しいリリースを受け取る権利を持っているため(ライセンス契約に従って)、そのようなSE契約の一部は「すべての主要な新しいリリースについて」です。 (「メジャー」が何を意味する場合でも...)、SEエージェントに配信されたデポジットも更新/更新されます。 特定の条件が満たされた場合(例:ベンダーの破産)、ソフトウェアエスクローエージェントは、顧客の要求に応じて、寄託されたすべてのコピーをライセンスのある顧客に配信し、顧客が引き続き使用できるようにします。ソフトウェア、および必要に応じてソースコードを調整して、顧客のビジネスで引き続き使用できるようにします。 このようなSEエージェントが関与するための一般的な方法は、弁護士などの法人またはエンティティの一種です。しかし、実際に「SEデポジットを処理する」(SEエージェントによる)には、あらゆる種類のリリース管理やソフトウェア配信タスクを、おそらく知らない誰かまたは何か(貧弱なSEエージェント)が実行する必要があります。ライセンスされたソフトウェアが行うことになっているすべてのこと...保証された楽しみ! 私の質問: 上記のように、DevOpsはソフトウェアエスクロー手順の改善にどのように役立ちますか?どのようなツールチェーン-SE契約のどの部分の履行に使用することをお勧めしますか?そして、適切な場合、そのための(できればオープンソースの)ソフトウェアソリューションを使用しますか? 注: 事態をさらに複雑にしないために、関係するすべての当事者間で合意され、SEエージェントは実行されているデポジットについていかなる種類の「検証」も行う必要がないと仮定します。つまり、デポジットされたものはすべて、完全、最新、文書化されているなどと見なされます。 「メジャーな新しいリリース」について:毎年1〜3の間であると想定します。つまり、ライセンスを取得した顧客は、それらのリリースに(SEエージェント経由で)アクセスできることだけを期待します。ライセンスされた顧客への中間配信(フィックスやベータ版など)があったとしても、それらのタイプの配信は範囲外と見なされます。それが理由であったとしても: SEエージェントは、「SEエージェントが処理するデポジットごとに」課金します。 ライセンスを取得した顧客がリリースを変更することはめったになく、問題が発生した場合にのみSE契約を使用できることにのみ関心があり、問題が発生した瞬間にリリースが実行されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.