流れ8の4語目 / 10

CI/CD

開発
プルリクエストを出したら、画面に赤い×がついていて
「CIが落ちてるよ。ログ見て直してね」
「CI/CD」って、何のことだろう…?

CIは、変更を上げるたびに、決めておいたチェックを自動で行うしくみです。

CDは、チェックに通った変更を、本番に出せる状態(または本番)まで自動で進めるしくみです。「CIが落ちる」は、自動チェックのどれかが失敗したという意味です。

このページで分かること読む 約3分・問題 3問
  • CI(継続的インテグレーション)は、変更を上げるたびに、決めておいたチェック(書き方のチェック、テストなど)を自動で行うしくみ
  • 「CIが落ちる」は、自動チェックのどれかが失敗したということ
  • CD(継続的デリバリー/継続的デプロイ)は、チェックに通った変更を、本番に出せる状態まで(または本番まで)自動で進めるしくみ
  • 機械で分かることは機械に任せ、人のレビューは中身の判断に集中できる

身近な例えで理解する

チェーン店のセントラルキッチンでは、作ったソースを袋に詰めるたびに、異物が入っていないかを検査機で毎回同じ基準で調べます。合格したものだけが箱に詰められて各店に配送され、お店で使われ始めます。不合格のものはそこで止まります。

  • 詰めるたびに検査機で調べるpush のたびに自動でチェックする(CI)
  • 毎回同じ基準決めておいたチェックの内容
  • 不合格のものはそこで止まるCIが落ちた変更は先へ進まない
  • 合格したものが各店に届き、使われ始めるチェックに通った変更が本番に出ていく(CD)

不合格になったら、原因を調べて作り直し、もう一度検査に通します。CIが落ちたら、ログで原因を見て直し、もう一度 push するのと同じです。

ちょっと確認

Q1先輩のひとこと
先輩「そのプルリク、CIが落ちてるよ」

どういう意味?

例えを外して、実際のしくみ

ここからは実際のしくみ
CI(継続的インテグレーション)

変更を共有のリポジトリにこまめに取り込み、そのたびに自動でチェックやテストを行うやり方です。インフラのチームでは、設定ファイルの書き方(→78 YAML など)のチェックや、インフラのコードの確認をよく入れます

「CIが落ちる」

チェックのどれかが失敗した状態です。プルリクエストの画面に失敗の印がつき、どのチェックがなぜ失敗したかはログに出ます。ログを見て直し、もう一度 push すると、チェックがやり直されます

CD(継続的デリバリー/継続的デプロイ)

CDには2つの意味があります。継続的デリバリーは、本番に出せる状態まで自動で用意し、本番に出すかどうかは人が判断します。継続的デプロイは、チェックに通った変更を人の判断なしに本番まで自動で出します

人のレビューとの分担

書き方の間違いのように機械で分かることはCIに任せます。人のレビューでは、「この変更はそもそも必要か」「影響はないか」といった判断に集中できます

このページのまとめ

CI(継続的インテグレーション)
変更のたびに、決めたチェックを自動で行うしくみ
CIが落ちる
自動チェックのどれかが失敗した状態
継続的デリバリー
本番に出せる状態まで自動で進め、本番に出すのは人が判断
継続的デプロイ
チェックに通った変更を、本番まで自動で出す

先輩のひとことの意味

先輩「CIが落ちてるよ。ログ見て直してね」

「プルリクエストに対して自動で行われたチェックのどれかが失敗しているよ。どのチェックがなぜ失敗したかをログで確かめて、直してもう一度 push してね」という意味です。

練習問題で確かめる

Q24択

継続的デリバリーと継続的デプロイの違いとして正しいものは?

Q34択

CIで自動にするのにいちばん向いているものは?

参考資料

ご意見・「これで例えて!」を募集しています

ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。

  • 説明してほしいITの言葉
  • 例えてほしい場面(部活・アルバイト・家事など)
  • 分かりにくかったところ・間違いのご指摘

意見箱は準備中です。

解説・例え・練習問題はすべてオリジナルです。参考にしているのは公式ドキュメントのみです。ご意見・ご感想・間違いのご指摘など、何でもお寄せください。確認してすぐに直します。

LinuCはLPI-Japanの登録商標です。当サイトはLPI-Japanおよび他の企業・団体とは関係ありません。

運営:core