• 会員限定
  • 2022/03/01 掲載

CI/CDとは何かをわかりやすく図解、具体的なツールや取り組み方とともに紹介する

記事をお気に入りリストに登録することができます。
デジタルトランスフォーメーション(DX)を推進する中で、最も具体的な取り組みがアプリケーション開発だろう。先駆けとなったUberやAirbnbなどではアプリケーションそのものが「革新」だからだ。こうしたDXアプリケーションの特徴の1つがアジャイル開発によるものであることだ。そして、それを実現する手段として開発と運用を一体として考えるDevOpsが普及。そこからさらにそのためのツールとして、CI/CD(継続的インテグレーション/継続的デリバリー)が注目を集めている。ここでは、自動化の考え方を取り入れて、リリース頻度を高めるCI/CDについて、基礎から主要ツール、活用事例まで、わかりやすく解説する。

執筆:友永 慎哉

執筆:友永 慎哉

製造業向け基幹系システムの開発を経験後、企業ITの編集、ライター業に従事。ファイナンス、サプライチェーンなど、企業経営の知識を軸にした執筆に強みを持つ。インダストリー4.0など新たな技術による製造業の世界的な変革や、Systems of Records(SoR)からSystems of Engagement(SoE)への移行、情報システムのクラウドシフトなどに注目する。GAFAなど巨大IT企業が金融、流通小売り、サービスといった既存の枠組みを塗り替えるなど、テクノロジーが主導する産業の変化について情報を収集・発信している。

photo
CI/CD パイプラインのイメージ(あとで詳しく解説します)

CI/CDとは何か

 CI/CDとは「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称。CI/CDは、何か特定の技術を指すものではなく、ソフトウェアの変更を常にテストし、自動で本番環境に適用できるような状態にしておく開発手法のことをいう。CIとCDそれぞれについて見ていこう。

・CI
 CIとは継続的インテグレーションという名の通り、開発者にとっては自動化のプロセスを指す。

 アプリケーション開発で言えば、バラバラに稼働している複数エンジニアのソースコードを継続的に統合(インテグレーション)し、正常に動作することを確認するために検証する取り組みのことである。

 新たなソースコードの変更を、定期的に、あるいは毎日でもビルドおよびテストし、共通のリポジトリに統合する。

 CIは、アプリケーションに問題がないかを調べるために、クラスや各種のモジュールなど構成するすべての要素に対して実施するテストを自動化できる。そのため、プログラムの不具合をより早く見つけ、すぐに修復できるのである。

 なお、CIを用いない場合は、通常、手作業で実施しなくてはならないとされる。

・CD
 CDとは継続的デリバリーという名の通り、ユーザーに継続的にアプリケーションを提供することを指す。提供とはすなわち、本番環境にアプリケーションを載せ、顧客がいつでも新たなアプリケーションを利用できるようにすることである。

 CDでは、検証済みコードのリポジトリへのリリースを自動化する。コード変更のマージから本番環境に対応するためのビルドのデリバリーまで、すべての段階でテストとコードリリースを自動化する。これにより、運用チームは本番環境にアプリケーションをすぐにデプロイできる。

photo
CI/CDとはDevOpsを実現するツールでもある

なぜCI/CDが必要なのか?背景にあるアジャイル型開発へのシフト

 では、なぜCI/CDが必要なのか。ビジネス環境は常に変化しており、それに合わせてアプリケーションには変更、差し替え、新規作成、あるいは削除など変化が求められることが背景にある。

 従来、多くの企業が、ウォーターフォールモデルでアプリケーションを開発してきた。これは要件定義、基本設計、詳細設計、テストといった開発工程を、滝のように上から下へと一方向に流すものである。

 検収やスケジュール、計画、工数見積もりなどがしやすいなどの利点があり、金融業界など品質を重視する現場で採用されてきた。

 だが、ウォーターフォールモデルには、要件を固めて工程を進めるため、途中での変更が難しいという欠点がある。ビジネス面やシステム面などの事情で仕様変更が発生した場合、大きな手戻りが発生してしまう。

 一方で、DXとはいわば、“ビジネスを革新する何か”を模索する取り組みと言っていい。そのため、開発するアプリケーションの仕様が明確になっていないケースがあったり、開発を進めながら明らかにしていくことがあったりするため、要件を事前に漏れなく定義することが難しい。

 そこで、アジャイル開発、DevOps、そしてCI/CDという新たな開発手法が採用されるようになったのである。

 競合他社の動きなどに合わせて、すばやくアプリケーションを開発し、統合、デリバリーすることにより、市場が求めるニーズを満たすアプリケーションを維持し、競争力を保つことになる。

CI/CDへの取り組みの全体像

 CI/CDの実践のために必要なステップを自動化したものを「CI/CD パイプライン」と呼ぶ(以下図)。

画像
CI/CD パイプラインのイメージ
(出典:NRI digitalの資料を参考に筆者が作成)

【次ページ】CI/CD関連ツール13選

関連タグ

あなたの投稿

関連コンテンツ

PR

処理に失敗しました

トレンドタグ

おすすめユーザー

会員登録で動画、資料に使えるホワイトペーパー、オンラインセミナー年間500本など、会員限定記事が​閲覧できる!​

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます