CI/CD
プルリクエストを出したら、画面に赤い×がついていて
「CIが落ちてるよ。ログ見て直してね」
「CI/CD」って、何のことだろう…?
CIは、変更を上げるたびに、決めておいたチェックを自動で行うしくみです。
CDは、チェックに通った変更を、本番に出せる状態(または本番)まで自動で進めるしくみです。「CIが落ちる」は、自動チェックのどれかが失敗したという意味です。
このページで分かること
- CI(継続的インテグレーション)は、変更を上げるたびに、決めておいたチェック(書き方のチェック、テストなど)を自動で行うしくみ
- 「CIが落ちる」は、自動チェックのどれかが失敗したということ
- CD(継続的デリバリー/継続的デプロイ)は、チェックに通った変更を、本番に出せる状態まで(または本番まで)自動で進めるしくみ
- 機械で分かることは機械に任せ、人のレビューは中身の判断に集中できる
身近な例えで理解する
チェーン店のセントラルキッチンでは、作ったソースを袋に詰めるたびに、異物が入っていないかを検査機で毎回同じ基準で調べます。合格したものだけが箱に詰められて各店に配送され、お店で使われ始めます。不合格のものはそこで止まります。
- 詰めるたびに検査機で調べるpush のたびに自動でチェックする(CI)
- 毎回同じ基準決めておいたチェックの内容
- 不合格のものはそこで止まるCIが落ちた変更は先へ進まない
- 合格したものが各店に届き、使われ始めるチェックに通った変更が本番に出ていく(CD)
不合格になったら、原因を調べて作り直し、もう一度検査に通します。CIが落ちたら、ログで原因を見て直し、もう一度 push するのと同じです。
ちょっと確認
Q1先輩のひとこと
先輩「そのプルリク、CIが落ちてるよ」
どういう意味?
例えを外して、実際のしくみ
ここからは実際のしくみ
CI(継続的インテグレーション)
「CIが落ちる」
CD(継続的デリバリー/継続的デプロイ)
CDには2つの意味があります。継続的デリバリーは、本番に出せる状態まで自動で用意し、本番に出すかどうかは人が判断します。継続的デプロイは、チェックに通った変更を人の判断なしに本番まで自動で出します
人のレビューとの分担
書き方の間違いのように機械で分かることはCIに任せます。人のレビューでは、「この変更はそもそも必要か」「影響はないか」といった判断に集中できます
このページのまとめ
- CI(継続的インテグレーション)
- 変更のたびに、決めたチェックを自動で行うしくみ
- CIが落ちる
- 自動チェックのどれかが失敗した状態
- 継続的デリバリー
- 本番に出せる状態まで自動で進め、本番に出すのは人が判断
- 継続的デプロイ
- チェックに通った変更を、本番まで自動で出す
先輩のひとことの意味
先輩「CIが落ちてるよ。ログ見て直してね」
「プルリクエストに対して自動で行われたチェックのどれかが失敗しているよ。どのチェックがなぜ失敗したかをログで確かめて、直してもう一度 push してね」という意味です。
練習問題で確かめる
Q24択
継続的デリバリーと継続的デプロイの違いとして正しいものは?
Q34択
CIで自動にするのにいちばん向いているものは?
参考資料
ご意見・「これで例えて!」を募集しています
ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。
- 説明してほしいITの言葉
- 例えてほしい場面(部活・アルバイト・家事など)
- 分かりにくかったところ・間違いのご指摘
意見箱は準備中です。