コンテンツに移動
サーバーレス

Nasdaq の Metrio チーム、Cloud Run でサーバーレスのイノベーションを実現

2023年5月31日
https://storage.googleapis.com/gweb-cloudblog-publish/images/finserve_2022_OvLe6x5.max-2500x2500.jpg
Google Cloud Japan Team

※この投稿は米国時間 2023 年 5 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。

Nasdaq は、お客様がサステナビリティのパフォーマンスを効率的に測定、モニタリング、報告できるようサポートに取り組んでいます。2022 年、Nasdaq は、企業が自社の環境、社会、ガバナンス(ESG)のパフォーマンス報告を行うためのプラットフォームを提供する Metrio を買収しました。このプラットフォームは、企業がサステナビリティに関するデータをリアルタイムで収集、測定、分析し、ESG の評価者、ランカー、フレームワーク、規制当局などのステークホルダーと戦略的かつ費用対効率の高い方法で共有できるように設計された投資家向けのレポートを作成するものです。Nasdaq の Metrio のお客様は、環境パフォーマンス(水、エネルギー、排出量)、社会パフォーマンス(多様性、企業慈善活動、ボランティア)、ガバナンス(ガバナンスのプロセスや戦略、倫理トレーニングへの従業員の参加)を含む、サステナビリティに影響するあらゆる側面をモニタリングすることが求められています。このようなデータは、多くの場合、異なるソースや形式で提供されます。Metrio の ESG 報告プラットフォームを利用することで、企業はこれらのデータを正確に収集、定量化し、あらゆるフレームワーク、基準、評価を満たす投資家向けの報告書を作成できます。

課題

当社が Google Cloud に移行する前のスタックでは、別のクラウド ベンダーの VM で Ruby on Rails などが稼働していました。このアーキテクチャは、すべてが同じマシン上に配置されていたため、スケーリングが困難でした。当社は、長期間にわたるスケーリングを可能にしてくれる、信頼できる新しいクラウド プロバイダを探していました。以前のクラウド プロバイダでは、長時間にわたるサービス障害が発生したことがあったため、Google Cloud が提供するグローバル対応、スケーラビリティ、セキュリティ、高可用性が移行への決め手となりました。

当社の Metrio サステナビリティ報告ソフトウェアを最大限に活用するため、Google のサーバーレス コンピューティング プラットフォームである Cloud Run を採用しました。Cloud Run を使用することで、オンデマンドで自動的にスケールアップおよびスケールダウンするステートレス コンテナを実行できます。これにより、リクエストを処理するときのみリソースの料金を支払えばよくなり、自動スケーリング ポリシーやインフラストラクチャの管理について心配する必要がなくなります。

チームとしては、開発者の生産性に重点を置いて運用することを考慮しており、可能な限り運用管理の負担を軽減することを目指しています。Cloud Run はフルマネージドであるため、Kubernetes のバージョンや OS のバージョンにパッチを適用する負担がなく、お客様により迅速に価値を提供することに集中できます。また、その使いやすさとデプロイの速さにより、新しいプロダクトの開発も可能になります。これも、旧来のインフラストラクチャ プロバイダから Cloud Run に移行したおかげです。

チームメンバーの何人かは Kubernetes に関する知識を持っており、ノードやクラスタを管理することなく、Cloud Run 上で Kubernetes の機能を活用できることを高く評価しています。当社は、スタートアップ精神を持ち、野心的な開発期間とプロダクト ビジョンを掲げています。Kubernetes のリソースの管理ではなく、開発に集中できることをとても喜んでいます。同僚のほとんどは、既存のコンテナに関する知識を持っていませんでしたが、Cloud Run のおかげで立ち上げは非常に容易でした。Cloud Run がワークロードに適さない場合は、簡単に GKE に移行し、サービスを解釈可能にできるので安心感があります。Cloud Run に移行する前は、コードのリリースは月に数回でした。現在では、1 日に何度もリリースできるようになり、サンドボックスやデモ用インスタンスを簡単に立ち上げ、プロダクトの迅速なイテレーションが可能になりました。

当社のクラウド トランスフォーメーションのビジョンは、データベースとコンピューティングを分離し、ストレージのパフォーマンスと容量をコンピューティングから独立してスケールできるようにすることでした。このデータベースの分離は、SOC2 認証の取得にも役立っています。金融とテクノロジーの交点の中心にいる Nasdaq は、セキュリティを考慮して構築されたシステムでデータ ストレージを運用する必要がありますが、これは新しいアーキテクチャによってさらに確実なものとなっています。Cloud Run をコンピューティング レイヤとして利用し、MongoDB をレガシーデータに利用しています。さらに、新しいサービスに Cloud SQL や AlloyDB を活用することも検討中です。現在、お客様はそれぞれ独自のコンピューティング リソースを持っています。お客様ごとに 6 つの Cloud Run サービスを利用しており、800 を超える Cloud Run サービスが本番環境で稼働しています。当社の主なサービスには、データ変換ツール、お客様ごとのカスタム指標、お客様がダッシュボードをカスタマイズできるプレゼンテーション ツールなどがあります。

データ取り込みツールの変革

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Nasdaq_Metrio.max-900x900.png

当社のデータ変換ツールは、120 社以上のサービスを支えており、編集履歴やアクティビティ ログにより、企業がデータをクリーンかつ監査可能な状態に保つことを支援しています。テンプレート、スクリプト、API など、さまざまなデータ インポート オプションを利用できます。データは、水消費、廃棄物処理、HR、電力消費など、さまざまなソースから得られます。アプリケーションが成長するにつれて、サイズの大きなファイルのアップロードやダウンロードをサポートするニーズが、当社の最大規模のお客様にとって最大の障害となっていました。お客様は、32 MB 以上のペイロードを持つような大きなデータファイルをアップロードする機能を求めていました。

当社のオリジナルのアーキテクチャは、32 MB のサイズ制限がある HTTP1 を使用しており、コードをリファクタリングすることなく HTTP2 に移行する方法が必要でした。このアプリケーションからの受信リクエストは、JavaScript で記述されたカスタム プロキシ サーバーを経由しており、これは、アプリケーションの他の部分が動的ページを提供するために必要でした。

Cloud Run が複数のコンテナをサポートするようになったことで、当社はフロントエンド サーバー コンポーネントの前に Envoy を使用してサイドカー パターンを実装し、柔軟でスケーラブルな方法でマイクロサービス間のトラフィックを管理できるようになりました。Envoy は、マイクロサービス間のトラフィックの管理に使用できる、高性能なオープンソースのエッジおよびサービス プロキシであり、チャンク エンコードや HTTP/2 が必要なものをフロントエンド サービスにリレーします。当社は、Envoy をメインのアプリケーション コンテナとともにサイドカー コンテナとしてデプロイすることで、マイクロサービスの管理を簡素化できました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Nasdaq_Metrio.max-1500x1500.png

両方のコードベース(フロントエンドとバックエンド)のコード変更を最小限に抑えるため、当社は、Envoy を利用して HTTP2 受信リクエストを HTTP1 に書き換え、バックエンド サービスに直接転送することを試みました。この実験は成功し、HTTP2 受信トラフィックを HTTP1 でバックエンド サービスにリダイレクトできました。この方法により、お客様は 32 MB を超えるペイロードをアップロードできるようになり、当社のプラットフォームに取り込むデータのサイズを柔軟に設定できるようになりました。また、このアーキテクチャは、当社のプレゼンテーション ツールの機能向上にも役立っており、お客様が 32 MB を超えるウェブページを PDF 形式でエクスポートできるようになりました。これにより、当社の最大規模のお客様は、データをアップロードし、インタラクティブなダッシュボードで確認し、データをダウンロードして重要なステークホルダーと共有することが可能になりました。また、この変更により、さらに大規模なお客様のオンボーディングも可能になりました。

今後のユースケース

Cloud Run でサイドカーをサポートすることで、GKE と Cloud Run との間のサービス通信が可能になります。Cloud Run では、サービスごとにサービス アカウントを作成し、そのフロントエンドのサービス アカウントにバックエンド リソースへの起動元権限を付与できる点がとても気に入っています。このパターンによって、サービス間の安全な通信チャネルが確保されるため、金融サービスの厳格なコンプライアンス基準に準拠できます。当社は、サイドカーを活用して、将来的に GKE ワークロードと Cloud Run との間で安全な通信を確立する予定です。

2 つ目のユースケースとして、オープンソースのオブザーバビリティ プラットフォームである Open Telemetry に関するものを計画しています。Open Telemetry をバックエンド サービスとして使用し、コレクタ サイドカーで Cloud Run アプリケーションを計測することを予定しています。このサービスは、GKE への余分なホップなしで、ワークロードから Cloud Trace にデータを直接挿入します。この方法では、サイドカーを使用して Cloud Monitoring にカスタム指標を書き込むことも検討しています。コレクタ・サイドカーは、他のコンテナやサービスから指標、ログ、トレースを収集および転送でき、パフォーマンス分析、トラブルシューティング、キャパシティ プランニングに使用できます。

Metrio は、サステナビリティ報告ソフトウェアに Cloud Run を採用したことで、デプロイの速度向上、マイクロサービスの管理の簡素化、スケーラビリティの向上など、数多くのメリットを得ることができました。Cloud Run を使用することで、インフラストラクチャの管理ではなくお客様への価値提供に注力できるようになり、新しいプロダクトの作成に多くの時間を費やせるようになりました。Graphic Packaging などのお客様は、当社のソフトウェアを利用することでより効率的な作業が可能になり、リアルタイムのデータが入力された動的なレポートを作成できるようになりました。Cloud Run は、その革新的なロードマップによって、お客様のサステナビリティの目標達成を支援すると同時に、当社のサービスにも大きな変革をもたらしました。今後においても、サイドカーのサポートの可能性と Cloud Run のロードマップの進化に期待しています。


- Nasdaq、ソフトウェア エンジニアリング ディレクター Philippe Tremblay 氏
投稿先