インフラエンジニアの求人票や勉強会でよく出てくるのに、未経験のうちは実感が持ちにくい言葉のひとつが「CI/CD」です。略語が2つ重なっているうえに、開発と運用の両方に関わる言葉のため、何を指しているのか掴みにくいと感じる人も多いのではないでしょうか。結論から言うと、CI/CDとは、コードの変更を自動でテストし、問題が無ければ自動で本番環境まで反映する仕組みだと捉えると理解しやすくなります。この記事では、未経験者向けにCI/CDの全体像を、現役インフラエンジニアがつまずきやすい順に整理して解説します。
CI/CDとは?開発と運用をつなぐ仕組み
CI/CDは「Continuous Integration(継続的インテグレーション)」と「Continuous Delivery / Deployment(継続的デリバリー・デプロイ)」という2つの考え方を合わせた呼び方です。CIはコードの変更を頻繁に取り込んで自動でテストする仕組み、CDはテストを通過したコードを自動で本番環境まで届ける仕組みを指します。2つは別の工程ですが、セットで語られることが多いため、まとめてCI/CDと呼ばれています。
従来は、開発者が書いたコードを人の手で動作確認し、担当者が手順書を見ながら本番サーバーへ反映するという流れが一般的でした。CI/CDは、この一連の作業を仕組み化して、人の手作業を減らすことを目的にしています。
なぜCI/CDが必要なのか
開発と運用をつなぐ場所でよく起きるのが、「開発者が書いたコードを、誰がどう本番に反映するか」という工程の曖昧さです。手作業での反映は、担当者によって手順がぶれたり、確認漏れが起きたりしやすく、人が介在する工程が増えるほど、ミスが起きる余地も増えるという問題があります。
Gitとは?で触れたように、コードの変更履歴はGitなどのバージョン管理システムで管理されています。CI/CDは、このGitへの変更(コミットやプルリクエスト)をきっかけに、テストと反映の作業を自動で始める仕組みだと考えると、開発の流れの中での位置づけがつかみやすくなります。
CI/CDの基本的な流れ
CI/CDの処理は、おおむね次のような順番で進みます。
- コードの変更: 開発者がコードを変更し、バージョン管理システムに変更を送る
- 自動テスト: 変更をきっかけに、決まった環境でテストが自動的に実行される(CIの部分)
- ビルド: テストを通過したコードを、実行できる形に組み立てる
- 自動デプロイ: 問題が無ければ、本番環境やそれに近い環境へ自動で反映する(CDの部分)
この流れを図で整理すると、コードの変更から本番反映までが一本の線でつながっていることが分かります。
すべての工程を自動デプロイまで任せる場合もあれば、最終的な本番反映だけは人が承認するという運用もあり、どこまで自動化するかは、サービスの重要度やチームの運用方針によって幅があるのが実情です。
CI/CDを支える主なツール
CI/CDの仕組みを実現するためのツールはいくつかありますが、代表的なものの役割を整理すると次のようになります。
| ツールの種類 | 代表例 | 主な役割 |
|---|---|---|
| CI/CDの実行環境 | GitHub Actions、Jenkins | コードの変更をきっかけにテスト・デプロイを実行する |
| コンテナ技術 | Docker | 実行環境をまとめて、どこでも同じ条件でテスト・実行できるようにする |
| 構成管理ツール | Ansible | サーバー側の設定を自動で揃える |
Dockerとは?で解説したように、コンテナ技術はCI/CDの中でもよく使われます。テストを実行する環境を毎回同じ状態で用意できるため、「自分の環境では動いたのに本番では動かない」という問題を防ぎやすくなるためです。
CI/CDはいつ、どこまで学ぶべきか
現役でインフラの現場にいる立場から言うと、未経験の転職段階でCI/CDの仕組みを1人で構築できるレベルまで求められることはほとんどありません。面接や最初の現場で期待されるのは、「コードの変更が、どういう流れで本番環境まで届くのか」を自分の言葉で説明できることで十分です。
CI/CDはLinuxの基本操作やGit、ネットワークの知識が土台になっている分野のため、これらの基礎が無いまま仕組みだけを覚えようとすると、エラーの原因が追えず丸暗記になりがちです。焦らず、Linux学習ロードマップの内容から順番に固めていくほうが、結果的にCI/CDの理解も早くなります。
InfraDojoで学ぶ
InfraDojoでは、ブラウザ上の演習環境でLinuxやGitの基礎を手を動かしながら学べるため、CI/CDの前提になる知識を一つずつ積み上げていけます。クラウド上にアプリを反映する仕組みまで学びたい場合は、AWS学習ロードマップから全体像を確認しておくと進め方の目安がつかみやすくなります。
よくある質問
Q. CI/CDは未経験のうちから学んでおくべきですか?
必須ではありません。CI/CDはLinuxやGit、ネットワークの基礎が土台になっている分野のため、これらを先に固めてから触れたほうが理解が早くなります。未経験の段階では、CIとCDがそれぞれ何をしているかをざっくり説明できる程度で十分です。
Q. CIとCDの違いは何ですか?
CIはコードの変更を自動でテストする仕組み、CDはテストを通過したコードを本番環境まで自動で届ける仕組みです。テストまでを指す場合と、本番への反映までを含める場合があるため、文脈によって指す範囲が変わる言葉だと理解しておくとよいでしょう。
Q. CI/CDを学ぶのに資格は必要ですか?
資格が無いと学べないわけではありません。まずはコードの変更から本番反映までの流れを図で理解し、全体像をつかむところから始めるほうが定着しやすい傾向があります。資格は理解を整理する手段の一つとして考える程度でよいでしょう。