漸進的デリバリーの規模化実踐:EarnInがLinkerdを活用した進化

はじめに

近年、クラウドネイティブ技術の進化により、サービスの更新プロセスをより安全かつ効率的に実行するための「漸進的デリバリー(Progressive Delivery)」が注目されています。このアプローチは、新機能や変更を生産環境に導入する際、リスクを最小限に抑えながら徐々にユーザーに提供する手法であり、特に高可用性やスケーラビリティが求められる現代のシステムにおいて重要です。本記事では、金融テック企業EarnInが、Linkerdを活用して漸進的デリバリーを規模化した実踐を紹介します。

漸進的デリバリーの定義と特徴

漸進的デリバリーは、ソフトウェアの更新を「Canary Release(キャニスタリースリース)」「Blue Green Deployment(ブルーグリーンデプロイメント)」などの戦略を用いて、生産環境に徐々に展開する手法です。このアプローチの主な特徴は以下の通りです:

  • リスク軽減:新機能の導入を一部ユーザーに限定し、問題が発生した場合でも影響範囲を制限できます。
  • フィードバックの迅速化:ユーザーからのフィードバックを即座に反映し、継続的な改善が可能になります。
  • 高可用性の確保:サービスの安定性を維持しながら、新しいバージョンの導入を進められます。

これらの特徴により、特に大規模なマイクロサービスアーキテクチャにおいて、漸進的デリバリーは不可欠な技術です。

LinkerdとGateway APIの活用

EarnInでは、Kubernetes環境での漸進的デリバリーを実現するため、LinkerdとGateway APIを採用しました。Linkerdは、サービスメッシュ(Service Mesh)の代表的なツールであり、以下のような機能を提供します:

  • 流量管理:CanaryやBlue Greenなどのデプロイメント戦略をサポートし、流量を細かく制御できます。
  • 可観測性:メトリクスやトレース情報を統合し、サービスの狀態をリアルタイムで監視できます。
  • Gateway APIの統合:2024年初頭にGateway API CRD(Custom Resource Definition)を導入し、L4/L7の負荷分散や南北向・東西向の流量管理を標準化しました。

Gateway APIは、Kubernetesにおけるネットワークの標準化を目的とした仕様であり、Linkerdとの連攜により、サービス間の通信を柔軟に管理できます。これにより、EarnInはスムーズにCanaryデプロイメントを実裝し、サービスの安定性を確保しました。

Argo RolloutsによるCanaryデプロイメントの実裝

EarnInでは、Argo Rolloutsを活用してCanaryデプロイメントを実現しました。Argo Rolloutsは、Kubernetes上でCanaryやBlue Greenなどのデプロイメント戦略をサポートするツールであり、以下のような機能を提供します:

  • 自動化された流量分割:指定された割合(例:20% Canary / 80% Stable)で流量を分割し、新バージョンの挙動を監視します。
  • 自動回rolled:設定された閾値(例:エラー率10%)を超えた場合、自動的にロールバックを行います。
  • マトリクスプロバイダー:指標に基づいた判斷を行い、進化または回rolledの決定を行います。

Argo Rolloutsは、LinkerdとGateway APIとの連攜により、流量の制御を実現します。具體的には、Helm Chartを用いて流量の割合を設定し、Argo Rolloutsがその設定に従って流量を分割します。これにより、EarnInはスムーズにCanaryデプロイメントを導入し、サービスの安定性を維持しました。

チャレンジと解決策

EarnInが直面した主な課題とその解決策は以下の通りです:

  1. GitOpsの統一管理:Argo CDを導入し、GitOpsの単一の配置ソースを実現しました。これにより、パイプラインの複雑さが削減され、開発者の作業フローが簡略化されました。
  2. 監視と回rolledの自動化:Linkerdの可観測性機能とArgo Rolloutsの自動回rolled機能を組み合わせ、デプロイ中の監視と自動回rolledを実現しました。
  3. ゼロダウンタイムの移行:Helm Chartのバージョン管理を活用し、ゼロダウンタイムでの移行を実現しました。具體的には、現行のDeploymentをRolloutに參照させ、2つのHelm Chartバージョンを並行して実行し、最終的にRolloutに完全移行しました。

これらの取り組みにより、EarnInはスムーズに漸進的デリバリーを実裝し、サービスの安定性を確保しました。

今後の方向性

EarnInでは、現在の成果を踏まえ、次のステップを検討しています:

  • Canary採用率の向上:現在のCanary採用率を90%まで引き上げ、さらに非Webアプリケーション(例:データベース層)への拡張を目指しています。
  • 監視と回rolledの最適化:指標の精度を向上させ、回rolledの判斷基準をより正確に設定します。
  • 技術の統合:CNCF(Cloud Native Computing Foundation)の技術スタックをさらに統合し、サービスの信頼性を高めます。

これらの取り組みを通じて、EarnInは漸進的デリバリーの実踐をさらに深化させ、サービスの信頼性と柔軟性を向上させることを目指しています。

結論

漸進的デリバリーは、現代のクラウドネイティブアーキテクチャにおいて不可欠な技術です。EarnInの実踐事例から學ぶことは、LinkerdやArgo Rolloutsなどのツールを活用し、流量管理や自動化を実現することで、サービスの安定性と柔軟性を高めることができるということです。今後も、技術の進化に応じて、漸進的デリバリーの実踐をさらに深化させ、企業の競爭力を高めていくことが重要です。