根本から生産性を向上させるCICD
ここ最近はCICDへの取り組みが自分の中でマイブームです。
CI/CDとは
継続的インテグレーション(Continuous Integration)と継続的デリバリ(Continuous Delivery)または継続的デプロイ(Continuous Deployment)の略で、この2つを組み合わせたものを「CI/CD」と呼びます。
CIはソースコードをリポジトリで管理し、ビルドからテストまでを自動化することです。ソースコードをリポジトリに登録するたびにビルドからテストまで自動的に行うことで問題を即座に発見できるため、大きな手戻りの発生を抑えることができます。
CDはテストを完了したソフトウェアの開発環境や本番環境へのリリースを自動化することです。これによりテスト完了からリリースまでの時間を短縮することができます。
ビルド・テスト・リリースを自動化することで、担当者による品質のばらつきや人的ミスを排除することも可能となります。
要するに、開発からデプロイまで、どれだけ素早く正確にできるかっていうことですね。
何かプラスでサービスを組み込むより、ミスを最大限まで減らすことの方が生産性が高いと思います。
そういうわけで、私の関わるプロジェクトではGitLab Runnerを使った自動デプロイをできるだけ採用しています。
mainブランチへのマージをフックに、自動でデプロイしてくれるっていう仕組みです。
開発者はデプロイの作業がほぼゼロになるので、時間的にも精神的にも楽ができます。
人力でのデプロイがなくなるので人為的ミスもなくすことができますね。
もちろん、サーバー側の変更やライブラリのアップデート等がありますので、CICDフローのメンテナンスは欠かせません。