Ep 1: 継続的デリバリー - デプロイ可能とはどういう意味か?
ようこそ、OpsBR Magazine へ!このニュースレターでは、ソフトウェアシステムや組織に関する様々なトピックを定期的にお届けします。
これは最初のニュースレターで、継続的デリバリーに関する最初のトピックをお話したいと思います。
継続的デリバリーは運用の中心
継続的デリバリー、通称CD は、新しいコードの変更を継続的に本番環境にデプロイ可能にする考え方とその実践です。CD プロセス、つまりCD パイプラインによって、新しい変更を本番環境へデプロイする際に自信をもって行うことができます。
デプロイに対して自信を持てば持つ程、そのデプロイが原因で失敗する可能性が理想的には低くなるので、より良い運用になります。CD パイプラインが無ければ、デプロイ後に何が起こるかが分からないということになります。
デプロイ可能とはどういう意味?
ただ、デプロイ可能とはどういう意味でしょうか?新しいコードが自動的にDocker イメージになったら、それでデプロイ可能でしょうか?いいえ。成果物をデプロイ可能にするには、深く検証されている必要があります。
実際、この様なデプロイ用の成果物を準備するのは、継続的インテグレーション、通称CI のプロセスです。通常、コードマージで発火して成果物を作成し、併せてユニットテストも実行して新しいコードが期待した動作をしていることを確認します。
しかし、それだけで自動的に本番環境にデプロイ可能を意味することにはなりません。ユニットテストはインテグレーションせずにコードを検証することしかできません。ビジネスロジックの実装の検証には有益ですが、他のマイクロサービスといった管理外の依存とのやり取りは省略されてしまいがちです。
本番環境へのデプロイ前には、こうしたインテグレーションが検証され、そのやり取りによって発生する問題を把握する必要があります。そのためCD パイプラインは、例えばステージング等の本番環境前の環境への自動的なデプロイのプロセスを持ち、そこでインテグレーションテストを実行していると良いでしょう。すべてのインテグレーションテストを合格したら、その新しい成果物を本番環境へデプロイする自信を持つことができます。これが新しいコードがデプロイ可能であるという意味です。
まとめ
継続的デリバリー、通称CD は、新しいコードが本番環境へデプロイ可能であることを自動的に確認してくれるので、運用の中心になります。継続的インテグレーション、通称CI だけでは、通常ユニットテストしか実行しないので、新しいコードをデプロイ可能にするには不足しています。デプロイ可能にするためには、CD パイプラインは、CI プロセスが生成した新しい成果物を使ってインテグレーションテストを実行すると良いでしょう。
続くニュースレターでも、継続的デリバリーについてのお話を続ける予定です。以下のボタンからぜひこのニュースレターを購読してください:
English version: