CI/CDの目的とポイント

 


サトル:「CI/CD? また、難しい言葉が出てきた(泣)」


ディア:「焦らずに少しずつ理解していこうよ! CI/CDについて教えて」


クラフ:「了解! CI/CDとは、ソフトウェアの変更を常にテストして、自動で本番環境にリリース可能な状態にしておくアプリケーション開発の手法だよ」

■CI/CDとは?

CIは「Continuous Integration」の略で、日本語では「継続的インテグレーション」と表現されるよ。CDは「Continuous Delivery/Deployment」の略で、日本語では「継続的デリバリー/デプロイメント」と表現されるんだ。

コンテナを作成する際、1つずつコンテナを手動で展開すると素早くアプリをリリースするのは難しいよね。CI/CDによって、アプリの結合テストや本番環境への反映を自動で実施できるサイクルがあれば、それだけリリースが早くなるんだ。


クラフ:「CI/CDは、アプリの品質を落とさず、高速な開発リリースサイクルを回す重要な役割を担っているよ。その目的は、開発(Dev)と運用(Ops)の壁をなくして、ソフトウェアの開発サイクルを効率化し、質の高いシステムを迅速に継続して届けることなんだ。そこでポイントとなるのが「自動化」なんだ。

従来のアプリ「開発」「運用」の課題

品質を落とさず、高速な開発リリースサイクルを回すのに必要

サトル:「具体的に何を自動化するの?」


クラフ:「CI/CDの一連のプロセスである『CI/CDパイプライン』を構築し、自動化することが推奨されているんだ」


ディア:「CI/CDパイプラインについて詳しく教えて!」

■CI/CDパイプライン

アプリ開発からユーザーへリリースされるまでの過程をシンプルに6つのプロセスに分けて、CIとCDがそれぞれ何をやっているか説明しよう。

まず、CIは、新しいアプリケーションのソースコードの変更があった場合、ビルドしてテストして使える状態にする役割までを担っているんだ。

一方、CDの継続的デリバリーは、CIの延長上に合ってCI(継続的インテグレーション)されたアプリをテスト環境まで配置するんだ。また、CDの継続的デプロイメントでは、本番環境への配置までを担うよ。CI/CDでは、自動化ツールを駆使して日常的にサイクルを回していく運用をすることが多いんだ。

CI/CDを行う一連の流れ(パイプライン)

CI/CDパイプラインを自動で行うことが推奨されている

ネットワールドのコンテナ・Kubernetes関連製品やソリューション