最終更新:
【仕組み解説】CI/CDはどうやってコードを自動でデプロイしているのか — パイプラインの裏側を図解
CI/CDってよく聞くけど、コードを書いた後に何が起きてるの?
CIとCDって別々のものなの?
パイプラインって具体的にはどんな流れになってるの?
どんなツールを使うの?
代表的なのはGitHub Actionsだね。GitHubのリポジトリに設定ファイルを置くだけでパイプラインが動く。他にもGitLab CIはGitLabに組み込みで使えるし、Jenkinsはオープンソースで自由度が高い老舗ツール。CircleCIはクラウド型で設定がシンプルなのが特徴だよ。最近はGitHub Actionsのシェアがかなり伸びているね。
テストの自動化ってどこまでやるものなの?
デプロイのときに障害が起きたらどうするの?
そこで活躍するのがブルーグリーンデプロイやカナリアリリースだよ。ブルーグリーンデプロイは、本番環境を2つ用意しておいて、新バージョンを片方にデプロイしてから一気に切り替える方法。問題があればすぐ元に戻せる。カナリアリリースは、まず全体の5%とか10%のユーザーだけに新バージョンを配信して、問題がなければ徐々に割合を増やしていく方法なんだ。
インフラの設定もCI/CDに含められるって本当?
Infrastructure as Code、略してIaCと組み合わせるのが今の主流だよ。TerraformやAWS CloudFormationでインフラ構成をコードとして管理して、それもパイプラインに乗せる。サーバーの台数変更やネットワーク設定の変更もpushするだけで自動反映されるんだ。アプリのコードとインフラのコードを同じパイプラインで管理できるのが大きなメリットだね。
CI/CDを導入するとき、最初に気をつけることってある?