FE EXAM

CI/CDツール(自動化パイプライン)

ビルド・テスト・デプロイを自動化するパイプラインを提供するツール。

DIAGRAM
ソース取得ビルドテストデプロイ
開発者git pushコード pushCI(継続的インテグレーション)ソース取得コードを取り込む自動ビルド機械語に変換自動自動テスト品質を検査自動成功ならCD(デリバリ/デプロイ)自動デプロイ本番/検証環境へ反映自動テスト失敗なら止めて開発者へ通知(デプロイしない)push のたびに、この一連の流れが自動で実行される
解説

📌
CI/CDツールとは

push すると自動で流れるソースビルドテストデプロイすべて自動・手作業なし

CI/CDツールとは、CI(継続的インテグレーション)と CD(継続的デリバリ・デプロイ)を自動化するツールです。ビルド・テスト・デプロイ(=本番環境へ反映すること)といった作業を、人の手を介さず自動で実行します。

身近な例で考えると、工場のベルトコンベア(生産ライン)に似ています。材料を投入すると、組み立て・検査・出荷が自動で順に進みます。CI/CD も同じように、コードを投入すれば「翻訳して・検査して・届ける」までを自動で流してくれます。

上の図解は、開発者がコードを push すると、ソース取得 → ビルド → 自動テスト → 自動デプロイの一連の流れ(パイプライン)が自動で動く様子を表しています。手作業のミスを減らし、リリースを速くすることが狙いです。

🔧
パイプラインの構成

CI/CDの「パイプライン」とは、複数の作業を一連の流れとして自動で実行する仕組みです。代表的な構成は次のとおりです。
ソース取得:バージョン管理から最新のコードを取り込む
ビルド:ソースコードを実行可能な形(機械語)に変換する
自動テスト:用意したテストを自動実行し、品質を検査する
デプロイ:テストに成功したら、検証環境や本番環境へ自動で反映する

重要なのは、コミットのたびにこのパイプラインを繰り返し回す点です。小さな変更ごとに毎回ビルドとテストを行うため、不具合があってもすぐに気づけます。問題のある状態が長く放置されることを防げるわけです。

図解で赤い点線で示したように、テストに失敗するとパイプラインは止まり、デプロイは行われません。開発者には失敗が通知されます。これにより、検査に通っていない不完全なプログラムが本番に出てしまう事故を防げます。

🗂️
代表的なツール

実際によく使われている代表的なCI/CDツールには、次のものがあります。
Jenkins:オープンソースの定番。自由度が高く、さまざまな環境で使える
GitHub Actions:GitHub に組み込まれた自動化機能。push をきっかけに動かせる
GitLab CI/CD:GitLab に統合されたパイプライン機能
CircleCI:クラウドで手軽に使えるCI/CDサービス

いずれのツールも、目的は同じく「手作業のミスを減らし、リリースを速くする」ことです。人が毎回手でビルドやテスト、デプロイを行うと、抜け漏れや操作ミスが起こりがちですが、自動化すればその心配がなくなります。

バージョン管理システム(Git など)と組み合わせて使う点もおさえておきましょう。コードを push したことをきっかけにパイプラインが動き出す、という連携が CI/CD の基本的な使い方です。レジで会計すると自動でレシートが出る、というように「ある操作をきっかけに後続処理が自動で走る」イメージです。

📌
なぜCI/CDが必要なのか

手作業の場合手作業でビルド手作業でテスト抜け漏れ・ミスが起きるCI/CDの場合pushで自動ビルド自動テスト・自動デプロイ毎回同じ手順で確実に実行人のミスをなくし、リリースを速くする

なぜCI/CDが必要なのか。それは、手作業には「抜け漏れ」と「一貫性のなさ」という2つの問題があるからです。

手作業で毎回ビルド・テスト・デプロイを行うと、こんな問題が起こりやすくなります。
テストを飛ばしてしまった:急いでいたときにうっかり省略してしまう
デプロイの手順を間違えた:担当者が違うと、やり方がバラバラになることがある
問題に気づくのが遅れた:手でテストを実行しないと、バグがしばらく気づかれないことがある

CI/CDはこれを自動化することで、「誰がやっても、いつやっても、同じ手順で正確に実行される」状態を作ります。コードを push すると自動でパイプラインが動くので、人が意識しなくてもテストやデプロイが確実に行われます。これが「継続的」(Continuous)という言葉の意味です。1回だけではなく、毎回コミットのたびに続けて自動で回し続けるということです。

📌
CIとCDの違い

CI(継続的インテグレーション)CD(継続的デリバリ/デプロイ)
正式名称Continuous IntegrationContinuous Delivery / Deployment
意味継続的な統合継続的な配信 / 展開
何をするかビルド・テストを自動実行テスト成功後に自動でデプロイ
いつ動くかコミット・push のたびに毎回CIが成功したあとに続けて
目的不具合を早く発見して止める手動なしで本番環境へ届ける

CI(継続的インテグレーション)は「ビルドとテストを自動で繰り返し行い、問題を早く見つける」仕組みです。一方、CD(継続的デリバリ・デプロイ)は「CIが通ったコードを自動で本番環境に届ける」仕組みです。

2つをまとめてCI/CDと呼ぶことが多く、セットで使われます。料理に例えると、CIが「作るたびに味見して問題がないか確かめる(品質チェック)」で、CDが「合格した料理を自動でお客さんのテーブルに運ぶ(配膳)」です。CI単体でも使えますが、CDまで自動化することで、コードを書いてから本番に届くまでの時間をさらに短くできます。

練習問題

🎯
基本情報技術者 練習問題

Q1.CI/CDツールの説明として最も適切なものはどれか。
A.ビルド・テスト・デプロイを自動化するパイプラインを提供するツール
B.ソースコードの変更履歴を記録するだけのツール
C.プログラムを機械語に翻訳するだけのツール
D.プログラムを止めて変数を確認するツール
Q2.CI(継続的インテグレーション)の説明として正しいものはどれか。
A.コミットのたびに自動でビルドとテストを行い、問題を早期に見つける
B.完成したプログラムを手作業で本番環境にコピーする
C.ソースコードを暗号化して保護する
D.プログラムの実行速度を計測する
Q3.代表的なCI/CDツールに該当するものはどれか。
A.Jenkins
B.Eclipse
C.Subversion
D.IntelliJ IDEA

関連コンテンツ