アプリ基盤編 第10章 / 全13章
CI/CD(自動テストと自動デプロイ)とは
Continuous Integration / Continuous Delivery
作る・確かめる・届けるを自動化工場の自動ライン。部品を置けば、検査・組み立て・出荷までベルトコンベアが運んでくれる。検査で不良が見つかれば、その場でラインが止まる。
図とさわれるデモで確かめる →
ポイント
- ソースコードを Git に登録すると、自動でテストと組み立て(ビルド)が走る
- テストに通ったものだけが、確認用の環境、そして本番へと自動で届けられる
- 人の手作業が減るので、ミスが減り、修正を素早く何度も出せる
名前の由来
continuous途切れないintegration統合delivery配達
変更を途切れなく取り込み(CI)、途切れなく届ける(CD)。
仕事の現場では
「リリースは月1回、夜間に担当者が手作業で」という運用は、ミスと属人化の原因になりがちです。CI/CDを整えると、小さな修正を昼間に安全に出せるようになります。
くわしく(正確な話)
- 変更を本体に取り込む前に、他の人に確認を頼む仕組みをプルリクエストと呼ぶ。
- 本番の前に、本番そっくりの確認用の環境(ステージング)で試す。
- 新しい版を一部の利用者にだけ先に出して様子を見るのがカナリアリリース、新旧2つの環境を切り替えるのがブルーグリーン。
- サーバーやネットワークの構成もコードで書いて自動で作る考え方を IaC と呼ぶ。
この章の用語(意味と語源)
- CI/CD シーアイ / シーディー
テストやリリースを自動化して、素早く何度も届ける仕組み。
覚えておく:push → テスト → ビルド → デプロイ
語源Continuous Integration(継続的な統合)/ Continuous Delivery(継続的な提供)の頭文字。
- Git / GitHub ギット / ギットハブ
ソースコードの変更履歴を管理する仕組みと、それを共有するサービス。
GitHub Actions は、GitHub 上で CI/CD を動かす機能です。
語源git はイギリス英語の俗語で「ばか者」。作者リーナス・トーバルズの冗談の命名です。
- プルリクエスト Pull Request
自分の変更を本体に取り込んでもらうよう、確認を頼む仕組み。
語源pull(引き込む)+ request(頼む)。
- デプロイ Deploy
作ったアプリを、サーバーに配置して使える状態にすること。
語源もとは軍事用語で「部隊を配置する」。フランス語 déployer(広げる)から。
- ステージング / 本番環境 Staging / Production
本番そっくりの確認用の環境/利用者が実際に使う環境。
語源stage(舞台)。本番前の舞台稽古の場所。
- カナリアリリース / ブルーグリーン Canary Release / Blue-Green
新しい版を一部の人にだけ先に出す方法/新旧2つの環境を切り替える方法。
語源炭鉱でカナリアを先に入れて有毒ガスを察知したことから。ブルーとグリーンは2つの環境の呼び名です。
- IaC(Infrastructure as Code) アイエーシー
サーバーやネットワークの構成をコードで書き、自動で作ること。
Terraform・Bicep・CloudFormation などが使われます。
語源Infrastructure as Code(コードとしての基盤)の頭文字。