IT用語として、デプロイと初めて聞いた時は、想像が全く付きませんでした。。。
英単語としてデプロイ(deploy)は、「展開する、配置する」といった意味がありますが、これだけでも抽象的でよく分かりません(汗)
今回はシステムやアプリケーションを使うために必要な作業である、このデプロイに関して解説します!
デプロイとは?
デプロイを一言で表すと「システムをリリースする作業」のことです。
リリースなので、特定の環境下でシステムやアプリケーションなどを使えるようにする一連の作業となります。
「アプリケーションをデプロイする」なんて使い方をしますね。
デプロイの流れをもうちょっと具体的に表すと以下のようになります。
デプロイの流れ
- ソースコードをコンパイルなどでビルドし、実行ファイルを生成する
- リリースするためのサーバのアプリケーションを停止する
- サーバ上に実行ファイルを反映させる(ここがデプロイ!)
- サーバを再起動して、動作確認する
デプロイの流れを図にすると以下のようになります。
サービスを止めずに行うデプロイとは?
ここまでの説明において、デプロイを実施するには、「サービスを停止する」と思われたかもしれません。
実際、デプロイを行う時にはデプロイする環境(サーバ)を一時的に止める必要がありますが、デプロイする度にサービスを止めることになると、利用者からの不満が上がってきます。
サービス影響を避けるために、利用者がサービスを利用しない、深夜や休日にデプロイすることになると、不具合の場合、問題を直ぐ解決できないだけでなく、運用コストが大きく掛かってきてしまいますし、
そのため、サービスを止めずに行うデプロイの手法があります。
代表的なデプロイ方法としては、「ブルーグリーンデプロイメント」と「ローリングデプロイメント」がありますので、その二つを詳しく解説します。
ブルーグリーンデプロイメント
このデプロイ方式は先ず、ブルーとグリーンという二つの環境を準備しておきます。
現在の本番環境をブルーとしサービスを提供しながら、新環境をグリーンにデプロイします。そして、デプロイが完了したらグリーンに切り替えることで本番環境を新環境にシームレスにアップデートすることができます。
グリーンへのリリースが終わるまでは、環境を切替えないので、リリース時間もシビアに気にする必要もなくなります。
更に、グリーン(新環境)にリリースしたことで障害等が発生した場合は、再びブルー(旧環境)に切り替えることで、ロールバックができます。これにより、サービス停止を無くすことができることもメリットです。
そして、今までのグリーンがブルー、ブルーがグリーン環境となります。ただし、グリーン環境を維持し続ける必要があるので、その分コストは掛かりますね。
ローリングデプロイメント
ローリングデプロイメントは複数あるサーバに対して利用者のアクセスを順番にロードバランサーから切り離して、アクセスが無くなったサーバからデプロイを行っていく手法です。
こちらもサービス停止を無くしてデプロイすることができる手法ですが、順番にデプロイしている時は新旧のシステム環境が混在することになるので、気を付ける必要があります。
また、ロードバランサーで負荷分散しているサーバをデプロイのために切り離していくので、残っているサーバに負荷が集中してしまいます。そのため、残ったサーバが耐えられるだけのパワー(リソース)を確保しておく必要はありますね。
まとめ
今回はデプロイに関して解説してみました。
デプロイのまとめ
- システムをリリースする作業のこと
- サービスを止めずに行うデプロイがある
- ブルーグリーンデプロイメントはブルーとグリーンという二つの環境を準備して、片ずつデプロイしていく
- ローリングデプロイメントはアクセスを順番にロードバランサーから切り離して、順番にデプロイしていく
システムを使い易くする、不具合を直すためにはアプリケーションやシステムのバージョンアップはかかせません。
このバージョンアップの作業の流れがデプロイですが、デプロイにも極力サービス停止を無くすための仕組みがありますね。
デプロイと言う言葉は覚えてしまえばそれほど難しくない用語なので、しっかり覚えてしまいましょう。
以上です!