- 吉羽さん
- あらゆる環境へのコードやバイナリ、アセットなどの配布
- インフラの構築はプロビジョニング
- amazon.com
- 平日のデプロイ感覚 11.6s
- 1,000~ times / 1h
- 10,000 ~ 30,000 hosts
- Two pizza ルール
- 作った人が運用もやる
- you build it, you run it
- クロスファンクショナルチーム
- 人間とスキルセットの表
- API によるチーム疎結合
- デプロイ自動化と全チームでの利用
- 手順書 (xlsx) がメンテナンスされない
- 手作業で間違う
- 職人芸への依存
- リリース、ロールバック失敗
- 長時間作業
- コスト増大
- 清水の舞台から飛び下りる心構え
- プロダクトの本質に集中したい
- いつ、誰が、要件は、プロセスは
- 完全自動化
- 変更量最小化
- 高速完了
- 不可逆変更回避
- 成功・失敗自動判定
- 失敗時ロールバック
- デプロイパターン集約
- 常にリリース可能に保つ
- 自動化コスト
- 本番環境以外のデプロイもトータルで考える
- 新人教育コスト、手作業で失敗した時のコスト
- OpsWorks
- カスタム構成 (Chef) + デプロイ
- CodeDeploy
- agent
- 1 EC2 + 1 RDS
- 手作業, rsync, cap, CodeDeploy, EBS
- DNS フェイルオーバ or ELB + Sorry サーバでメンテナンスモード
- 2 AZ
- cap, CodeDeploy, EBS
- 1台ずつ反映するか全部一気に反映するか
- ELB Connection Draining
- 処理中のリクエストが終わるまで一定時間待つ
- 複数バージョンが共存してしまう
- dev と prod の相違
- ちゃんと管理する
- 環境変数
- AMI に埋め込まない
- Auto Scaling
- 稼働中インスタンスへのデプロイ
- AMI の作り込み
- 全部入り, Golden image (App 以外), 最小限 (Chef)
- cloud-init 活用
- Auto Scaling + cloud-init, EBS, CodeDeploy
- AMI 自動作成
- Jenkins -> Packer -> EC2 -> Serverspec -> AMI
- blue-green
- コンテナ
- ポートマッピング変更
- マイクロサービス
- 各チームバラバラにデプロイ
- API バージョニング
- スロットリング
- デプロイツール
- 各個人間でのバージョン差異
- CI, ChatOps に集約化