近年、クラウドネイティブ技術の進化により、サービスの更新プロセスをより安全かつ効率的に実行するための「漸進的デリバリー(Progressive Delivery)」が注目されています。このアプローチは、新機能や変更を生産環境に導入する際、リスクを最小限に抑えながら徐々にユーザーに提供する手法であり、特に高可用性やスケーラビリティが求められる現代のシステムにおいて重要です。本記事では、金融テック企業EarnInが、Linkerdを活用して漸進的デリバリーを規模化した実踐を紹介します。
漸進的デリバリーは、ソフトウェアの更新を「Canary Release(キャニスタリースリース)」「Blue Green Deployment(ブルーグリーンデプロイメント)」などの戦略を用いて、生産環境に徐々に展開する手法です。このアプローチの主な特徴は以下の通りです:
これらの特徴により、特に大規模なマイクロサービスアーキテクチャにおいて、漸進的デリバリーは不可欠な技術です。
EarnInでは、Kubernetes環境での漸進的デリバリーを実現するため、LinkerdとGateway APIを採用しました。Linkerdは、サービスメッシュ(Service Mesh)の代表的なツールであり、以下のような機能を提供します:
Gateway APIは、Kubernetesにおけるネットワークの標準化を目的とした仕様であり、Linkerdとの連攜により、サービス間の通信を柔軟に管理できます。これにより、EarnInはスムーズにCanaryデプロイメントを実裝し、サービスの安定性を確保しました。
EarnInでは、Argo Rolloutsを活用してCanaryデプロイメントを実現しました。Argo Rolloutsは、Kubernetes上でCanaryやBlue Greenなどのデプロイメント戦略をサポートするツールであり、以下のような機能を提供します:
Argo Rolloutsは、LinkerdとGateway APIとの連攜により、流量の制御を実現します。具體的には、Helm Chartを用いて流量の割合を設定し、Argo Rolloutsがその設定に従って流量を分割します。これにより、EarnInはスムーズにCanaryデプロイメントを導入し、サービスの安定性を維持しました。
EarnInが直面した主な課題とその解決策は以下の通りです:
これらの取り組みにより、EarnInはスムーズに漸進的デリバリーを実裝し、サービスの安定性を確保しました。
EarnInでは、現在の成果を踏まえ、次のステップを検討しています:
これらの取り組みを通じて、EarnInは漸進的デリバリーの実踐をさらに深化させ、サービスの信頼性と柔軟性を向上させることを目指しています。
漸進的デリバリーは、現代のクラウドネイティブアーキテクチャにおいて不可欠な技術です。EarnInの実踐事例から學ぶことは、LinkerdやArgo Rolloutsなどのツールを活用し、流量管理や自動化を実現することで、サービスの安定性と柔軟性を高めることができるということです。今後も、技術の進化に応じて、漸進的デリバリーの実踐をさらに深化させ、企業の競爭力を高めていくことが重要です。