フューチャー技術ブログ

CI/CD連載を始めます

※図は Gemini 2.5 Proで生成しました

はじめに

入梅のみぎり、いかがお過ごしでしょうか。

フューチャーは月に1回、何かしらの技術テーマを元にブログリレー(ブログ連載)を行っています。6月はCI/CDについて取り上げます。本来は5月予定でしたが、春の入門祭りが総勢26名参加され、スケジュールがスライドしたため1ヶ月ズレての開催です。

CI/CDについて

インテグレーション (Continuous Integration) と継続的デリバリー/デプロイメント (Continuous Delivery/Deployment) の略で、開発手続きを自動化し、より早く確実にリリースするための開発手法です。

  • CI (継続的インテグレーション): コード変更をリモートリポジトリにプッシュ・マージされたことを起点に、ビルドやテストを自動的に実行し、不具合を検知し手戻りを防ぐ
  • CD (継続的デリバリー/デプロイメント): CI後、自動的にデプロイメント環境にリリースする方法。手動の作業を減らし、誤操作を防ぐことができる

CI/CDの略歴を説明すると以下かなと思います。

  1. 1990年代後半 ~ 2000年代初頭
    • XP(エクストリーム・プログラミング)やテスト駆動開発(TDD) で有名なKent Beckさんや、マーチン・ファウラーさんなど、CIを書籍やブログなどで具体的な開発手法として紹介・提唱して広める
  2. 2000年代初頭
    • Hudson (後のJenkins) などのツールが登場し、オンプレミスでのCIが活発に行われる
  3. 2010年代前半
    • Travis CIやCircleCIといったクラウドベースのCI/CDサービスが登場し、急速に普及(特にスタートアップ系)
  4. 2010年代後半
    • GitHub Actions(2018年提供開始)やGitLab CI/CDが登場。Gitホスティングサービスがネイティブに提供するCI/CD機能が主要な選択肢に
  5. CI/CDを中心として概念の広がり
    • CI/CD普及に従い、自動テストとの相性の良さからTDD(テスト駆動開発)を取り入れたり、TerraformなどのIaC(Infrastructure as Code)もCI/CDへの組み込み、GitOps(Gitを唯一の情報源として、コミットをトリガーにインフラ・アプリへの自動デプロイを行う手法)、SRE、Four Keysを元にして定量的な開発生産性の計測など様々な広がりがあり、CI/CDはその基盤として位置づけられています

フューチャーにおけるCI/CD

私の知る限り、HudsonからCIは私が入社した2009年時点ではすでに当たり前のように行われていました。その後、Jenkinsにツールは変わりつつ、CircleCIやGitHub Actionsなどにツールも加わり、時代に合わせて進化しています。

社内標準ツールとしては、自社チームがホスティングしているGitLabがあるため、GitLab CI/CDの利用率も高いのが特徴でしょうか。以下のような記事もあります。

連載スケジュール

7名、以下のスケジュールです。

日付 氏名 タイトル
6/3(火) 澁川喜規 Dokployで自宅PaaSを構築する
6/4(水) 武田大輝 GitHub 標準の Annotation を活用してレビューを可視化する
6/5(木) 真野隼記 nektos/act をタスクランナーとして使う可能性があるのか
6/6(金) 松本朝香 GitHub Actions のCI/CD pipelineに静的解析SonarQubeを組み込んでみた
6/9(月) 橋本竜我 Xcode CloudのCI/CD
6/10(火) 山本竜玄 未定
6/11(水) 金澤祐輔 未定

澁川さんは担当分の記事を執筆するための調査で判明した事項を、別途FastAPI on Dockerがかなりシンプルになった(2025年版)の記事にまとめてもくれました。こちらも面白い記事だと思いますので、Pythonを扱う方はぜひご一読ください。

さいごに

初めてCI/CDをテーマに技術ブログ連載を始めます。

現代のソフトウェア開発の基盤・前提となる内容ですので、比較的広いテーマかなと思います。私個人としても他のメンバーがどのようなCI/CDナレッジを公開するか楽しみです。

引き続きよろしくお願いします