Rappi社、Istioで成長の課題を克服

1500 deployments per day, 50+ clusters, 30,000 containers

Rappi社は、ユーザーにより多くの自由な時間をもたらすというミッションのもと、企業、消費者、配送員を繋いでいます。同社のアプリは、ユーザーが幅広い商品やサービスを注文できる機能を提供しています。9カ国250都市以上に展開する、ラテンアメリカ初のスーパーアプリであり、2015年の創業以来、1億回以上のダウンロード数を記録しています。

大きな成功には急速な成長という課題が伴い、Rappi社は常に成長を続けてきました。過去数年で、同社の企業価値は1億ドルから80億ドルに増加しました。そのため、ビジネスのペースに合わせたテクノロジーの進化が必要となり、Kubernetes上にアプリケーションを展開・管理することを選択しました。Kubernetesは、同社のインフラストラクチャの驚異的な成長を可能にするツールであり続けています。

しかし、Kubernetesを導入していても、Rappi社のインフラストラクチャは大きな課題に直面していました。最大2万個以上のコンテナを実行する50以上のKubernetesクラスタへの成長をどのように管理したのでしょうか?

課題:成功による圧力

RappiチームはインフラストラクチャをKubernetesに移行することに成功しましたが、成長の課題に依然として苦戦していました。ビジネスのペースに合わせるためには、テクノロジー企業として進化する必要がありました。拡大するインフラストラクチャの管理を支援するために、社内サービスメッシュを開発しました。しかし、これは過剰なメンテナンスを必要とし、見られる成長に追いつくことができませんでした。

Rappi社のシニアDevOpsエンジニアであるEzequiel Arielli氏は、「Lyft社がEnvoyを使用している話を思い出し、当社環境でテストしてみることにしました」と述べています。

ソリューション:Istioによる救済

Rappiチームは、Envoyサイドカーを使用するIstioの導入を決定しました。これは最適な選択肢でした。新しいプロジェクトに着手した際、ドキュメントが優れたサポートを提供し、Istio APIがクリーンで効率的であることがわかりました。Istioは、成長の課題を管理するためのソリューションとなりました。

Istioの最初の導入成功のニュースが組織全体に広まるにつれて、ますます多くのRappi DevOpsチームがIstioに移行し始めました。当初は30人のチームだけがIstioを使用していましたが、現在では1500人以上の開発者が使用しています。

Istioは、RappiのDevOpsチームに、異なるサービスに異なる仕様を設定する柔軟性を提供しました。レート制限、サーキットブレーカー、接続プール、タイムアウト、その他の重要なパラメーターをカスタマイズすることができました。

Istioは、セキュリティとコンプライアンスにも非常に役立つ機能を提供していることもわかりました。たとえば、サービスメッシュは垂直方向のトラフィックをセグメント化し、異なるエンドポイント間の通信を制限できます。

Rappi社のDevOpsテクニカルリードであるJuan Franco Cusa氏は、「Istioは、異なるサービスに異なる仕様を設定する柔軟性を提供します。また、セキュリティとコンプライアンスに非常に役立つ機能も提供しており、高度なセキュリティ環境では非常に便利です」と述べています。

Arielli氏は、「以前のソリューションが限界に達したとき、Istioを使用してモニタリングスタックをリファクタリングすることができました。Istioにより、当社チームはあらゆる規模でサービスをシームレスに監視できるようになりました」と説明しています。

これは、インフラストラクチャが3万個を超えるコンテナに達した際に不可欠なものとなりました。

成果:インフラストラクチャの継続的な成長

開発チームは、自動化された本番環境対応のKubernetesとIstioクラスタの展開を構築しました。Kubernetesクラスタ上に構築された社内APIにより、各クラスタ全体でマイクロサービスを管理できるようになりました。さらに、各マイクロサービスには、デプロイ時にトラフィックリソースが自動的に作成され、割り当てられます。このシステムのおかげで、1日あたり1500回以上のデプロイを管理できます。

The Rappi Istio deployment covers multiple clusters.

Arielli氏は、「当社の構成により、Kubernetesの使用とインフラストラクチャの継続的な成長が可能になりました。現在、50以上のKubernetesクラスタを管理しており、最大で2万個以上のコンテナを含むクラスタもあります。当社の環境は常に変化しており、Istioはすべてにおいて効率的でスケーラブルで安全な通信を確保するのに役立っています」と述べています。

Istioは、最も重要なクラスタ上の1500を超えるアプリケーション間のトラフィックを管理しており、強力な機能セットのおかげで、必要に応じて異なるデプロイ戦略を選択できます。Istioコントロールプレーンは、トラフィックが増加し続けても、接続を簡単に再調整します。

Rappi社の今後の展望

Istioの導入を支援したDevOpsチームは、引き続きインフラストラクチャの改善に取り組んでいます。

Arielli氏は、「将来的には、メッシュレベルでマルチクラスタサポートを実装したいと考えています。この機能により、アプリケーションがどこで実行されているかは問題ではなくなり、すべてのアプリケーションがクラスタ間で相互にアクセスできるようになります」と述べています。

結論:Istioによる成功したスケーリング

Istioサービスメッシュにより、Rappi社は市場のニーズに合わせて成長することができました。新しいクラスタのデプロイや、より多くの市場や都市でのサービスの開始を容易に処理できます。

Arielli氏は、「Istioのおかげで、Rappi社は成長する需要を満たすために、より多くのサービスとアプリケーションを展開できると確信しています」と述べています。

この情報は役に立ちましたか?
改善点に関するご提案はありますか?

ご意見ありがとうございます!