Day 1(11月18日) 13:10 - 13:40 C(Boardroom)
公募
CI / CD 初級者
信頼性を犠牲にせず、PR マージからデプロイまで人の介入を完全にゼロにするまでの道のり
カウシェでは、この1年でマージされるPRの数が10倍以上になりました。以前はリリースごとに、リリース内容や依存関係の確認、可否の判断、動作確認、リリース後の監視を人が行っていました。短い期間に積まれる変更が増えるほど、1回のリリースにのる変更も依存も増え、何が入っていて何と一緒に出してよいのかを、人が把握しきれなくなっていきました。
この発表では、PRのマージからデプロイまでを完全に自動化するためにやったことを話します。ただ自動化するだけでは、プロダクト開発メンバーは安心してリリースを任せられません。どうすれば安心して任せられるのか。そのために行ってきたことを順に紹介します。
まずデプロイとリリースを分けました。デプロイは振る舞いを変えないコードを本番に出すこと、リリースは機能を公開することと定義し直しました。この分離を起点に、トランクベース開発への移行、サービス横断で使えるfeature flagシステムの構築、SLI/SLOの制定と運用、ロールアウト条件の定義、カナリアリリースの自動化、と積み重ねてきました。それぞれが何を解決し、どこまで人の判断を置き換えたのかを解説します。