RSS Etsy Engineering | 技術としての芸術

EtsyのKafkaクラスターにゾナル・レジリエンシーを追加する:パート1

2018年、EtsyはKafkaブローカーをGoogle Cloud PlatformのKubernetes Engineに移行しました。初めは単一のゾーンで運営していたが、ゾーンのレジリエンスを高めるために、ブローカーを複数のゾーンに分散し、パーティションレプリカを均等に配分するようにアーキテクチャーを再設計しました。 ダウンタイムゼロでの移行を達成するために、ブローカーはまずディスクのスナップショットを取得し、次に正しいゾーンでそれらを再作成しました。パーティションの再配置は、影響を最小化するためにスクリプトとツールを使用して手動で処理されました。 生産環境でのテスト結果は、ゾーンの停止が起こった際の影響が最小限度であったことを示し、多ゾーンデザインの効果を証明しました。ゾーン間のネットワークコストが予想通り増加しましたが、ゾーンレジリエンスの自動化された利点がコストを上回りました。 チームは、Kafkaのフォロワーフェッチング機能を活用し、ゾーン間のトラフィックを減らすための追加的なアプローチを探検中です。ゾーンレジリエンスの利点が顕著であるため、コスト上昇も正当化されます。 移行プロセスには、ディスクとPodの移動、パーティションの再配置、設定の調整など複雑なステップが含まれました。チームの慎重な計画と実行が、プロセス全体でダウンタイムゼロとデータの完全性を維持することを保証しました。 Etsyの経験は、クリティカルサービスのレジリエンスデザインの重要性を強調します。ゾーンの冗長性を採用することで、単一ゾーンの障害に関するリスクを軽減し、Kafkaクラスターの安定性と可用性を向上させました。 多ゾーンアーキテクチャーがEtsyに、生産トラフィックの増加と、検索インデックスングなどのクリティカルなユーザーフェイシング機能を自信を持って処理することを可能にしています。 会社のコスト最適化の継続的な努力は、レジリエンスと財務的な考慮のバランスを維持するというコミットメントを示しています。 このケーススタディーは、多ゾーンのクラウド環境で高可用のKafkaクラスターを運営する上での課題と戦略に関する貴重な洞察を提供します。
favicon
etsy.com
Adding Zonal Resiliency to Etsy’s Kafka Cluster: Part 1