Skip to content
Latchkey

CI/CDとは? 平易な言葉での入門

CI/CDは「自分のマシンでは動く」を「あらゆるpushで、自動的に動く」へと変える - 各変更をbuild・テストし、自動化されたpipelineを通して出荷することで。

CI/CDは継続的インテグレーションと継続的デリバリー(またはdeployment)を意味する。コード変更からテスト済みでリリース可能な - そしてしばしばリリース済みの - artifactに至る道のりを自動化するプラクティスだ。

それが解決する問題

自動化がないと、全員の作業を統合するのは周期的で苦痛なイベントになる: branchが乖離し、バグが遅れて表面化し、リリースは手作業でリスキーだ。CI/CDは、あらゆる変更で同じチェックを実行することでそのループを数分に縮め、問題を小さいうちに捕まえる。

pipelineが行うこと

  • テスト対象の変更のコードをcheckoutする。
  • クリーンな環境で、毎回同じ方法でbuildする。
  • テスト、linter、セキュリティ/品質のgateを実行する。
  • artifact(バイナリ、イメージ、パッケージ)を生成し、CDではそれをdeployする。

CI vs CD を一行で

継続的インテグレーションは、変更を頻繁かつ自動的にmergeして検証することだ。継続的デリバリーはそれを拡張し、ソフトウェアを常にリリース可能な状態に保つ; 継続的deploymentはさらに一歩進み、合格したあらゆる変更を自動で本番へ出荷する。

チームが採用する理由

見返りは、より速いフィードバック、より小さく安全なリリース、手作業の削減、そして全員が信頼できるbuildだ。コストは、pipeline自体が速く信頼できる状態を保つべきインフラになることで - ここでrunner、cache、flake管理が関わってくる。

重要なポイント

  • CI/CDは変更のたびにbuild・テスト・出荷を自動化する。
  • CI = 頻繁に統合・検証する; CD = 常にリリース可能または自動deploy。
  • 中核的な利点は、速いフィードバックとより小さく安全なリリースだ。
  • pipelineは、速く信頼できる状態を保つ必要のある実際のインフラだ。

関連ガイド