Cookie設定とニュースレター購読
- このWebサイトは、パフォーマンス、パーソナライズ、マーケティングを目的として、Cookie、ピクセルタグ、ローカルストレージを使用する。
- 必須Cookieのみがデフォルトで有効化されている。
- ニュースレターを購読できる。
FigmaのKubernetesへの移行
- 著者: Ian VonSeggern、Figma ソフトウェアエンジニアリングマネージャー
- テーマ: Figmaが12か月以内にKubernetesへ移行した過程とその理由
Figmaのコンピューティングプラットフォーム
- 2023年初頭、すべてのサービスをコンテナで実行する作業を完了した。
- AWSのElastic Container Service(ECS)を使用して、コンテナ化されたワークロードを迅速に立ち上げた。
- 長期的な観点から、コンピューティングプラットフォームの次世代版を検討するようになった。
Kubernetes機能の不足
- ECSのいくつかの制限により、多くのエンジニアリング時間が必要になった。
- KubernetesのStatefulSets機能がECSにはなく、etcdクラスターを実行するのが難しかった。
- Helmチャートによるサービス定義のサポートが不足していた。
- ECSでEC2を実行する際、単一のEC2マシンを終了させるのが難しかった。
Cloud Native Computing Foundationエコシステムへのアクセス
- ECSを使うと、CNCFエコシステムのオープンソース技術を活用できなかった。
- Kubernetesエコシステムは自動スケーリング機能に優れている。
- サービスメッシュ導入の可能性も検討した。
人気のあるプラットフォームの利点
- Kubernetesは多くの大企業で使われており、安定性が検証されている。
- ベンダーロックインを避けられる。
- Kubernetes経験のあるエンジニアを採用しやすい。
移行範囲の設定
- 安全な移行のため、コアシステムの変更を最小限に抑えた。
- EKSへの移行を目標とした。
- 一部の改善事項を移行範囲に含めた。
移行に含まれた改善事項
- 開発者体験: サービス定義とデプロイプロセスを簡素化した。
- 信頼性向上: 3つのEKSクラスターを使用してサービスの信頼性を高めた。
- コスト効率: ノードの自動スケーリングをサポートし、コストを削減した。
範囲外とした作業
- ログパイプラインの複雑さを解消する作業は除外した。
- Podレベルの自動スケーリング作業は除外した。
安全な移行の実施
- 負荷テスト: クラスターの性能を把握するために負荷テストを実施した。
- 段階的ロールアウトの仕組み: 重み付きDNSエントリを使って、段階的にトラフィックを移行した。
- 実サービスの実行: ステージング環境で実際のサービスを動かし、問題を早期に発見した。
- カスタムYAMLの最小化: ユーザーを混乱させる可能性のあるYAML定義を最小限に抑えた。
- サービスオーナーとの緊密な協力: サービスオーナーと協力して監視とアラートを更新した。
- 適切な人員配置: 予期しない問題に対応できるチームを編成した。
移行結果
- 2024年1月までに主要サービスをEKSクラスターへ移行した。
- コスト削減、信頼性向上、開発者体験の改善といった利点を得た。
リリース後の期間
- クラスターとロールの自動推論により、ユーザーアクセスツールを改善した。
- ログパイプラインの簡素化、Horizontal Pod Autoscalingのサポート、Gravitonプロセッサへの移行などを計画している。
GN⁺のまとめ
- FigmaはECSからKubernetesへの移行を通じて、コスト削減、信頼性向上、開発者体験の改善を実現した。
- CNCFエコシステムのオープンソース技術を活用し、自動スケーリングやサービスメッシュ導入の可能性を高めた。
- 移行プロセスでは、負荷テスト、段階的ロールアウト、実サービスの実行といった安全な方法を用いた。
- リリース後はユーザーアクセスツールを改善し、追加の最適化作業を計画している。
1件のコメント
Hacker Newsの意見
k8sを好むユーザーがいる
インフラ改善のためのマイグレーションは良い
HNでk8s反対の意見が多いのは意外だ
TerraformとECSを使ったデプロイ管理は過度に複雑だ
Kubernetesへのマイグレーションに何年もかかるという意見には疑問を感じる
大規模組織の決定は、ユーザーや会社の必要に基づいていないように見える
現代のシステムやサービスで、1年以内のマイグレーションを誇れるようなものがあるのか気になる
現場レポートを読むのが好きだ
この記事はKubernetesの利点を明確に説明している
マイグレーションをやめるまでにどれくらいかかるのか気になる