前提
一般的に開発・運用しているコードは書いただけで完了ではありません。
- 作成・改修したコードを本番の環境に適用してエラーが出ないか確認する
テスト
という工程 - 実際に本番環境にコードを適用する
デプロイ
という工程
を実施する必要があります。
テストを行わないと本番環境に誤ったコードをデプロイしてしまい大変な目に遭ってしまう
デプロイを行わないとせっかく書いたコードが反映されない
terraformでいうと
テストは terraform plan
デプロイはterraform apply
CI/CDとは?
しかし、いちいちコマンドを打つのはめんどくさい
適用する環境がたくさんあったらなおさら。。。
そこでテスト
とデプロイ
をいちいちコマンドなんか使わずに自動化しようぜ!
というのがCI/CDです。
ちなみに
CI…テストの自動化
CD…デプロイの自動化
です。
CI/CDを組むと何がいいのか
1.めんどくさくない
terraform を git で管理しているプロジェクトで手動テストする場合
- コードを書く
- git push
- PRを作る
- terraform planを実施する準備(作業環境へのログインやgit clone)
- terraform plan
という工程を踏まないといけないが
git でPRが作られた時にterraform planを実施するCIを組んでいる場合
- コードを書く
- git push
- PRを作る
わざわざPlanする必要がないのでめっちゃ楽!
git でPR mergeされたらterraform apply
を実施するCDを組んでおけば楽できる
2.ミスが減る
手動でテスト、デプロイをしていると
「テストしてないやばいコードをデプロイしちゃった!」
「テストしたけどデプロイ忘れっちゃった!」
みたいなことが100%なくなります。
CI/CDが組めるツール
実際にCI/CDを組む
※近日公開予定
コメント