【レポート】A-5 Amazon/AWSの安全で自動化されたContinuous Deploymentsへの道 / devsumi 2020 summer
2020/07/21 A-5 Amazon/AWSの安全で自動化されたContinuous Deploymentsへの道
変更をマージしたら、あとのことは忘れる
人間が手を止めて見守ったりしない
実現するために本当に大事なこと
パイプラインを信頼する。任せられること。
デプロイパイプラインを信頼するには
各フェーズで、メトリクスを積極的に監視する。自動的にロールバックする仕組みを用意する。
エラーレート、レイテンシ、システムメトリクスetc..
オンコールも自動化
重要な考え方がある。
Bake Time
デプロイが多段式になっている場合に、前段は長めに、後段は短めにするらしい。前段でガンガンテストしてエラー出すみたい。
前段でロールバックするのが良いみたいだ。
前段にはUnitTestのようなものだろうか。
中段は、IntegrationTestやブラウザテスト
後段は本番環境のメトリクスを利用したテスト
マージ前は人で安全性を確保する
つまりレビューをしっかりすること。
* 破壊的な変更がないか(非可逆的な)
* エラーが起こった場合にメトリクスで検知可能か。
チームによってはチェックリストがあるらしい。
DBのスキーマ変更などが含まれる場合は複数段階に分けてデプロイすることで担保する。
安全にデプロイするための指針
夜間、休日、金曜日、夕方以降はデプロイしない。
実現までの道のり
* パイロットチーム
-> デプロイモデルを再定義
-> シンプルなデプロイプロセスを作って適用していく。
-> 段階的に自動の部分を増やしていく。
*他のチーム
成功事例をみて主体的に採用する。
オーナーシップを持って取り組むことが重要
結果として、「成功事例のあるデプロイモデルでプロセスが標準化されていった。」
実現のための具体的なツール(サービス)
CodeDeployを使うと良いみたい。紹介されていたBakeTimeも使えるようだ。
AWS CodeDeploy は、Amazon EC2、AWS Fargate、AWS Lambda、オンプレミスで実行されるサーバーなど、さまざまなコンピューティングサービスへのソフトウェアのデプロイを自動化する、フルマネージド型のサービスです。
所感
kubernetesへのデプロイも使えるのかな🤔
今、結構辛くなってきてるんだよね。そろそろテコ入れの時期か。今度調べてみよう。
この記事が気に入ったらサポートをしてみませんか?