ソフトウェアのデプロイとは
- 3 分
ソフトウェアの展開には、ソフトウェア システムを使用できるようにするすべてのアクティビティが含まれます。 一般的なデプロイ プロセスは、相互に関連する複数のアクティビティで構成され、それらの間で切り替えられる可能性があります。 すべてのソフトウェア システムは一意であるため、展開は、特定の要件または特性に合わせてカスタマイズする必要がある一般的なプロセスです。
"デプロイ" と "インストール" という用語が同じ意味で使用されることもありますが、ソフトウェアのインストールは、ソフトウェアをデプロイするプロセスの一部にすぎません。 デプロイには、さらに多くの作業が必要です。 デプロイ活動には、以下のようなものがあります。
- サーバーの "ラッキングとスタッキング" を行う。
- 更新されたソフトウェアをそのサーバーに展開する。
- スクリプトやコードとしてのインフラストラクチャなどを使用する。
- USB ドライブを持ってオフィスを歩き回り、コンピューターにソフトウェアを手動でインストールする。
ソフトウェアを手動でデプロイすることは手間がかかり、スケーリングがうまくいきません。 自動化により、組織全体で新しいソフトウェアをロールアウトしたり、既存のソフトウェアを更新したりするときの整合性の保証が、いっそう簡単で、コスト効率が高くなります。
このラーニング パスでは、信頼性のためにソフトウェアを最適に展開する方法に焦点を当てています。 このモジュールでは、ソフトウェアの展開だけでなく、クラウド インフラストラクチャの展開についても取り上げます。 サービスやソリューションをデプロイするということは、ソフトウェア、クラウド インフラストラクチャ、構成、およびソフトウェア システムを確実に使用できるようにするために必要なすべてのものをデプロイすることを意味することがあります。
シナリオ: 大規模展開
"エピック" という言葉には、"壮大な、巨大な、または莫大な" という意味がありますが、この説明の文脈では、これは適切ではありません。 Jez Humble と David Farley は、 本『継続的デリバリー: ビルド、テスト、展開の自動化による信頼性の高いソフトウェア リリース 』という用語を使用しています。これは、大規模な (そして非常に破壊的な) 取り組みを表しているためです。 一般的な動作の例を次に示します。
- ある組織が販売関連のアプリケーションを開発しています。 このアプリケーションは、1 年に厳密に 2 回更新されます。
- これらの更新の間に、すべての新機能、バグ修正 (大小)、および依存関係の更新プログラムが展開されます。
- 今年の最初のデプロイは、レイバー デーの週末に行われる予定で、2 回目は感謝祭の後の週末に行われます。
- 各アップデートは総力戦の状況です。 アプリケーション チーム、サポート チーム、インフラストラクチャ チーム、および管理はすべてデプロイに関与します。
- デプロイの進行中は、サービスが一時的にオフラインになります。
- これまでの経験から、デプロイは常に、さまざまな問題、逼迫した技術的作業、トラブルシューティング、および構成管理の変更作業が伴うことがわかっています。
- それはめったにうまくいき、それが完了すると、一般的に再現不可能な方法で一緒にパッチが適用されていると感じます。
これは適切なデプロイ状況ではありません。 エピック デプロイ方式は、負荷の大きい手作業であり、次のような多くの問題が生じます。
- 複雑である。
- ストレスがたまる。
- リスクが大きい。
- 遅い。
- すべてのステップが複雑なため、再現できない。
- 多くの場合、デプロイを完了するために複数の専門家が必要となる。
このプロセスは長く困難であるため、ユーザーの生産性が最も中断しない時間帯にスケジュールする必要があります。つまり、週末や休日など、展開チームにとって不便な時間が発生する可能性があります。
チーム メンバーには、時間内に大量の作業を完了させなければならないという焦りが生じ、それによって構成ミスをしてしまう可能性があります。 また、展開の間隔が長くなると、動作のしくみを正確に思い出せなくなる可能性があります。
デプロイのジレンマ
ソフトウェアの展開は複雑なタスクであり、複数の主要な変更、修正、および機能の追加を一挙に展開するために "ため込む" と、複雑さが増し、何かがうまくいかなくなる可能性が高くなります。 また、問題が発生した場合、この複雑さによって、問題の原因を正確に突き止めることがさらに難しくなります。
複雑になると、エンド ユーザーにとっても問題が発生する可能性があります。エンド ユーザーは、多くの新機能と変更内容を一度に習得しなければならないだけでなく、エピック デプロイの複雑さによって生じるバグにも対処しなければなりません。
より良い方法が必要であり、あります。 良いニュースは、従来のエピックデプロイ戦略だけが選択肢ではないということです。 次のユニットでは、このプロセスについてより良い方法を学習します。