CI/CDについて

エキサイト株式会社 新規事業の開発を担当している森脇です。

エキサイトでは2、3年前からオンプレからクラウドへの移行を行っています。 移行したサービス中心にCI/CDを導入するケースが増えてきています。

私が担当している新規のサービスに関しても開発当初から導入をしています。

CI/CDとは

改めてCI/CDとは、Continuous Integration / Continuous Delivery の略で、日本語だと継続的インティグレーション/ 継続的デリバリー、意味としては自動的にテストをして本番へリリースをする、もしくはリリース可能な状態にしておくことですね

CI/CDを導入すると、バグが減ったり、変更を自動的にリリースしたりすることができとても便利です。

CI/CD構成

f:id:moriwaki111:20210402095607p:plain

GitHub ActionとAWSのCodePipelineを使ってCI/CDを構築しています。 プルリクをフックにして、GitHub Actionでlinttestを実行します、テストがOKだったものに関してコードレビューをするようにしています。 (図では省略していますが、GitHub Actionとマージの間に人為的なレビューがあります)

コードレビューでLGTMになれば、mainブランチにマージされ、AWSのCodePipelineが動いて、本番環境へデプロイされるようになっています。

よかった事

  • バグが減った事
  • 仕様に注力してコードレビューが行える事 (インデントとか使ってない変数があるとかを見なくて良くなった事)
  • 自動で網羅的にテストが行える事

課題

  • フロントのテストでは、apiの通信をmock化しており、レスポンスをjsonで保存し使用している、apiの改修があった時にjsonの更新を手動で行わないといけない

課題はありつつ、CI/CDを導入すると、自分たちも楽できるし、ユーザさんにとっても質の高いサービスを提供できるので、導入がまだ行われていないサービスは是非やる良いと思います