注目★★★★★Hacker News
Kubernetesなしでもゼロダウンタイムデプロイは実現できる — Docker Compose + HAProxyの実践構成
30秒で把握
- 1Docker Compose + HAProxyでKubernetesなしのゼロダウンタイムデプロイを実現
- 2Traefikは同一ラベル競合・ルーティング遅延・リトライ同一バックエンド固定の3点で脱落
- 3HAProxyのoption redispatchが必須要件か、自チームの構成で確認を
要約
StatusDudeは、Kubernetesを使わずDocker ComposeとHAProxyだけで、1日複数回のゼロダウンタイムデプロイを本番環境で実現している。当初はTraefikを採用したが、同一ラベルの複数サービス定義で404が発生し、スケールダウン時のルーティング遅延で502が頻発、さらにリトライが同一バックエンドにしか飛ばない致命的な欠陥が判明し4時間で廃棄した。HAProxyの`option redispatch`を採用することで、シャットダウン中のコンテナへのリクエストを生きたバックエンドに再送できるようになった。ゼロダウンタイムに必要なのは「複数レプリカ」「異なるバックエンドへのリトライ」「1台ずつ入れ替えるデプロイスクリプト」の3要素だけだと論じている。
あなたへの影響
Docker Composeで本番運用を検討しているチームは。
推奨:Traefik採用時のリトライ挙動(同一バックエンド固定)を事前に確認し、HAProxyの`option redispatch`設定を組み合わせるかどうかを構成選定の判断軸に加えるとよい。