デプロイメントとは
デプロイメント (英: Deployment) とは、アプリケーションやサービスなどの開発工程でシステムをユーザーが利用できる状態にする活動です。
デプロイやソフトウェアデプロイメントとも呼ばれ、ソフトウェアシステムを利用可能にするための活動全般を示す言葉です。
デプロイメントには構成するプログラムをパッケージ化、使用する環境に導入できる状態にするビルドやリリース、実際にプログラムを導入するインストール、プログラムの設定やライセンス認証をするアクティベートなどの操作が含まれます。
デプロイメントの使用用途
開発したアプリケーションやサービス、そのアップデートをユーザーが利用できる状態にするためにデプロイメントを行います。通常は、その際にアプリケーションの停止やサーバーの再起動が必要です。
デバッグによってソースコードをコンパイルし、1つの実行ファイルにまとめます。アプリケーションを停止した後に作成したファイルを実行して環境にプログラムを導入し、サーバーの再起動をして動作確認を行います。異常がなければデプロイメントは完了です。
デプロイメントの原理
デプロイメントの種類によって原理が異なります。具体的には、ブルーグリーンデプロイメント (英: Blue/Green Deployment) 、イミュータブルデプロイメント (英: Immutable Deployment) 、シンボリックリンクデプロイメント (英: Symbolic Deployment) 、ローリングデプロイメント (英: Rolling Deployment) などがあります。
1. ブルーグリーンデプロイメント
ブルーグリーンデプロイメントでは現在の本番環境のブルーと開発する新環境のグリーンの2種類を用意します。新環境のデプロイメントが完了したらブルーとグリーンを入れ替えてアップデートします。
2. イミュータブルデプロイメント
イミュータブルデプロイメントでは新環境に切り替えて問題がなければその都度元の環境を破棄します。ブルーグリーンデプロイメントと似ていますが、旧サーバーを残さない点が大きく違います。
3. シンボリックデプロイメント
シンボリックデプロイメントでは現在のプログラムとは違う場所に新しいプログラムを配置してシンボリックリンクを変更して切り替えます。つまり2つサーバー環境があるブルーグリーンデプロイメントやイミュータブルデプロイメントとは異なり、サーバー環境が1つです。
4. ローリングデプロイメント
ローリングデプロイメントではサーバーを複数用意し、順番にデプロイメントを行います。
デプロイメントの選び方
デプロイメントは実施する要件や環境で選択される方法が違います。
1. ブルーグリーンデプロイメント
ブルーグリーンデプロイメントはグリーン環境の構築中でもブルー環境を引き続き起動でき、継続的にシステムを使用可能です。新環境で問題が起こっても元の環境に簡単に戻れます。システムを停止するダウンタイムはほとんど発生しませんが、両方の環境を維持するコストがかかります。
2. イミュータブルデプロイメント
イミュータブルデプロイメントはグリーン環境に問題なく移行した際にブルー環境を消します。旧サーバーを残すブルーグリーンデプロイメントと比べて環境を維持するコストが低いです。
3. シンボリックデプロイメント
シンボリックデプロイメントはサーバーを増やさないため、低コストで済みます。しかしサーバーが1つしかないため、再起動を求められたりサーバーエラーが起きた場合に複数のシステムが影響を受けるリスクがあります。
4. ローリングデプロイメント
ローリングデプロイメントは高速に実行されます。ただし新旧の環境が混在し分離できないため、リスクがあります。デプロイメントが成功しなかった場合にはロールバックプロセスが複雑です。