##CI/CDってなに?
まず調べていく中で参考にしたのは、
こちらの2つのURLです。
https://codezine.jp/article/detail/11083
無料の範囲でもとても分かりやすく記載してくださってます。
https://pfs.nifcloud.com/navi/words/ci_cd.htm
図もあってとても分かりやすいです。
自分用に少しポイントをまとめようと思います。
URL内にも記載がありますが自分用にもメモ。
CI(Continuous Integration) → 継続的インテグレーション
CD (Continuous Delivery) → 継続的デリバリー
上記2つの考え方がメインとなります。
勉強して思ったのがCI/CDって技術を指すのではなくて、
ソフトウェア開発の手法を意味しているということに初学者の私は少し驚きました。
取り入れるメリットとしては、
・自動テスト
・自動ビルドと自動デプロイの2点
つまり、CIはテストを自動化して、CDは本番環境向けのビルドの作成を自動的に行い、
本番環境にデプロイが可能な状態にするということ!
##どうしてCI/CDは導入されるのか
例えば、GitHubへソースコードをコミットすると、
上記であげたようにCIに各種のテストを行い、
CIを行うことでバグを早期に検出し、
リリース用のブランチにバグが入らないようにする。
→
CIによるテストをパスするとCDによってコードがリリース用のブランチにマージされ、
ビルドが行われる。
→
ビルドされたアプリケーションは自動でテスト用のサーバーに「デリバリー」され、
すぐに動作確認が行えるようになる!
つまり、
CI/CDを使うと、コードの変更が発生するたびに自動でテストが行われるので、
テストの実行忘れや、環境依存のテストを失くすことでの品質を向上させることができる!
様々な企業の技術スタックをみる中で、
CI/CDをよく目にしていたので導入されている意味が分かりました。
自分で導入するにはどうすれば良いか、についても
詳しく調べて行こうと思います。