エンジニアの @suemoc です。
社内勉強会にて、イエウール事業におけるリリース手法について話しました。
トークテーマ
安心リリース in イエウール
キーワード
- カナリアリリース
- ブルーグリーン・デプロイメント
発表スライド
質疑応答
カナリア環境で問題が発生したとき、どのようにロールバックするのか。LBの設定を切り替えているのか。
ロールバック時はソースコードをデプロイし直す。
カナリア環境での検証で、問題なしと判断する基準は何か?
事業として許容できる数値の変動を事前に決めておく。
イエウールの場合はCVRなど。
kageのようなシャドウプロキシとカナリアリリースのメリット・デメリットは?
kageは外部公開せずにサービスのテストができる。
カナリアリリースは外部公開するリスクを負う代わりに
公開しないと発見できない問題を見つけられる。
スキーマ変更を伴うリリースの場合はどうするのか?
スキーマ変更がある場合はこのリリースフローに乗せられないため、別のフローを使う。
所感
どんなサービスであれ、規模の拡大に伴いリリースのリスクは増大していきます。
カナリアリリースはどんな種類のサービスでも採用できるわけではありませんが、
サービス規模が大きくなっても開発スピードを落とさないための
一つの方法として覚えておくとよさそうです。