はじめに
CI/CDについて全く理解できていないので調べつつアウトプットしていきます!!
すでに多くのわかりやすいサイトがたくさんあるので、完全に自分用アウトプットです。。🙏
ゴール
- CI/CDとは何か をざっくり理解する
- CI/CDでできること を具体的にイメージできるようになる
- CI/CDを使うメリット を押さえておく
この記事を読み終わったら、CI/CDの言葉を聞いたときに「なんとなくイメージできる!」状態になるのを目指します。
CI/CDとは
「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称。
CI/CDは、何か特定の技術を指すものではなく、ソフトウェアの変更を常にテストし、自動で本番環境に適用できるような状態にしておく開発手法のこと
まだよくわからないので、CIとCDそれぞれについて調べてみます。
CI(Continuous Integration / 継続的インテグレーション)
※Integration:統合、完成、調整
システム開発におけるコードの変更(ビルド)とテストの頻繁な反復作業を効率的に行う手法
こまめにコードを統合して、自動でテストを実行する仕組みのことです。
これがあることによって
- バグや不具合を早く見つけられる
- チーム開発でも「壊れたコード」が混ざりにくい
というメリットがあります。
CD(Continuous Delivery / 継続的デリバリー)
CIのプロセスを引き継いでビルド段階の後にコードのテストを自動的に行い、テスト環境や本番環境へいつでもデプロイできるように準備。またコード変更が自動的に本番環境に導入されるようにする。
テストに通ったものを、ユーザーに届ける工程を自動化する仕組みです。
GPTに聞いたところ『D』には2種類の意味があるらしいです。
1. Continuous Delivery(継続的デリバリー)
→ いつでも本番に出せる状態まで自動化
- コードをプッシュするとテストやビルドが走って、本番リリース直前まで準備が整う
- 最後に「本番にリリースするかどうか」だけ人間が判断してボタンを押す
👉 安全性重視のチームでよく使われる
2. Continuous Deployment(継続的デプロイ)
→ テストOKならそのまま自動で本番にリリース
- テストを通過したら、そのまま本番環境に自動リリースされる
- 開発者はプッシュするだけでユーザーにすぐ届く
👉 スピード重視のチームでよく使われる
<まとめ>
- CI = 自動でテストして品質を守る
- CD = テストを通過したらリリースに向けて自動で準備し効率を上げる
両方合わせて、「品質の良いコードを素早くユーザーに届ける仕組み」 がCI/CDといえます。
=====
だいぶわかってきました💡
長くなってきたので、次回CI/CDのメリットや具体例をまとめます!
参考