CI/CD(継続的インテグレーション/継続的デリバリ)
Continuous Integration / Continuous Delivery
しーあいしーでぃー
CI(継続的インテグレーション)はコード変更を頻繁にメインブランチに統合し自動テストで品質を確認する手法。CD(継続的デリバリ)はCIの成果物を自動的にステージング・本番環境にデプロイ可能な状態にする手法。開発サイクルの高速化に不可欠。
Related
他の資格での定義
CI(継続的インテグレーション)はコード変更を頻繁に統合し、自動ビルド・テストを行う手法。CD(継続的デリバリー)はCIに加えて、リリースプロセスも自動化し、いつでもデプロイ可能な状態を維持する手法。DevOpsの基盤技術。
ソースコードの変更を頻繁にビルド・テスト(CI)し、デプロイ可能な状態を継続的に維持する(CD)開発プラクティス。自動ビルド、自動テスト、静的解析をパイプラインに組み込む。組込み開発でもクロスコンパイルとHIL/SILテストの自動化が進んでいる。
コード変更を頻繁に統合して自動でビルド・テストする継続的インテグレーションと、検証済みの成果物を自動で配布可能な状態に保つ継続的デリバリを組み合わせた仕組み。小さな変更を高頻度でリリースでき、切り戻しも容易になる。
CI(継続的インテグレーション)はコード変更を頻繁にリポジトリに統合し自動テストを実行する手法、CD(継続的デリバリー)はビルド・テスト・デプロイを自動化し迅速にリリースする手法。セキュリティテストをパイプラインに組み込むことで、脆弱性の早期発見と修正を可能にする。
Related
関連キーワードの用語
開発(Development)と運用(Operations)が協調し、自動化とツールの共有によってサービスの提供速度と品質を同時に高める取組み。組織文化の変革を伴い、CI/CDや構成管理の自動化と組み合わせて実践される。
アプリケーション開発の基盤となる再利用可能なソフトウェア構造。共通的な処理の骨格を提供し、開発者が固有の処理を埋め込む(ハリウッドの原則)。生産性向上と品質の均一化に寄与する。
開発用のホストコンピュータ上でターゲットシステム(組込み機器)向けのソフトウェアを開発する手法。クロスコンパイラ、ICE(In-Circuit Emulator)、JTAGデバッガなどの開発ツールを用いる。
DevOpsの開発ライフサイクル全体にセキュリティを統合するアプローチ。開発の初期段階からセキュリティテストや脆弱性チェックを自動化し、セキュリティをチーム全員の責任とする。シフトレフトの考え方を適用する。
ファイルの変更履歴を記録し、過去の任意の時点の状態に復元できるようにする仕組み。Git、Subversionなどのツールで実現する。ブランチ戦略やマージ手法の選択がチーム開発の効率に影響する。
テストコードを先に書き、そのテストを通過する最小限のコードを実装し、リファクタリングするサイクル(Red-Green-Refactor)を繰り返す開発手法。設計の改善と品質の作り込みを同時に実現する。XPのプラクティスの一つ。
