数時間かかる週一リリースを毎日何度も爆速でできるようにするまで

Track A 2021/09/03 18:05-18:45

難易度 初級者
実行フェーズ Dev/QA(開発環境)
Production(本番環境)
想定受講者 architect - システム設計
developer - システム開発
app-developer - アプリケーション開発
operator/sys-admin - 運用管理/システム管理

私が入社したころの弊社のリリースフローは、リリースブランチへの煩雑なcherry-pickの後、長いチェックリストやチケットを手動で更新した後、定期実行テストを待って次の日にデプロイ対象の変更をpushしたら、デプロイ対象のサーバー上で30分に一回実行されるcronでデプロイされるが、ランダムに失敗するので全台デプロイされるまでに数時間かかるというものでした。
あまりにも大変なのでリリースは多くても週一回しか行なわれず、変更粒度が大きくなるため毎度リスクが高いものになり、また何か起きた時もロールバックに時間がかかる厳しい状態でした。

今では、数百あるデプロイ対象の全てが当時とは異なるデプロイ方法に移行し、その他多くの自動化、監視やテストの拡充により、多くのサービスで小さなデプロイを継続的かつ高速に行なえるようになりました。これに関して、本セッションでは以下のような内容をお話しします。

* リリースはなぜ継続的に行なう必要があるか
* 継続的なリリースの妨げとなること、またそれをどう解決するか
* 安全にリリースを行なうために事前に満たすべきこと
* CodeDeploy, Terraform を活用したデプロイ基盤とオートメーション

k0kubun
Treasure Data
Staff Software Engineer

Treasure DataでバックエンドのSWEをしています。以前SREとして現職のデプロイ環境を作り直しており、チームを移った後もパッチやアイデア出しをしています。