継続的インテグレーションと継続的配信について学ぶ
学習の目的
この単元を完了すると、次のことができるようになります。
- 継続的インテグレーションと継続配信の説明と比較を行う。
- 継続的配信の利点を挙げる。
「Heroku Enterprise の基本」モジュールを受講していない場合、完了してから、このモジュールを開始することを強くお勧めします。
アプリケーションを継続的に開発する手法
最新の開発用プラクティスを導入すると、チームは、市場の中でも非常に有用で洗練されたアプリケーションを構築およびリリースできるようになります。このようなプラクティスとして、継続的インテグレーションや継続的リリースがあります。こうした手法により、リリースサイクルの短縮、自動化、ソースコードリポジトリへの直接の関連付けが可能になります。また、チームは増分コード更新をすばやく安全に本番にプッシュできます。これらの手法が適切に利用されると、アプリケーションライフサイクルの早い段階でバグや問題を見つけて、短期間で質の高い製品をリリースできるようになります。
継続的インテグレーション
継続的インテグレーションによってチームは問題を早期に検出できます。複雑な製品では、自己完結型で単純に見える変更が、意図しない結果を招くことがあります。開発者が複数の分離したコードブランチに対して並行して作業する場合、共通の main
ブランチへの変更のマージが予期しない結果を生むことがあります。こうした結果が発生すると、多くの場合、回帰テストやバグ修正を何度も行うことになります。
継続的インテグレーション (CI) では、開発者があらゆるコミットのあらゆるコード変更を定期的に main
ブランチに統合できます。CI ではテストを破棄可能なアプリケーションに対して実行し、マージされるコードにバグがないことが検証します。
継続的配信
継続的配信では、あらゆる変更を本番と似た環境 (ステージング) に手動でプッシュして、コードをすばやく安全に本番にリリースできます。各変更はステージングに配信されるため、適宜ボタンを操作して、アプリケーションを本番環境にリリースできます。
コードをステージングにプッシュするという追加のステップが、継続的インテグレーションと継続的配信で異なる点です。CI でビルドに問題がなかったとしても、コードが本番対応できているとは限りません。コードは、本番環境と同じステージングアプリケーションにプッシュし、テストして初めて本番への準備ができた状態になります。
上記の概念を把握できたところで、次はこれらをサポートする、Heroku プラットフォームで使用可能な機能について学習しましょう。