コンテンツに移動
スタートアップ & SMB

Nylas、企業向けのデータ同期とセキュリティのアーキテクチャを構築

2021年11月12日
Google Cloud Japan Team

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

多くの組織が、世界の生産性を向上させるというNylas のミッションをすぐに理解し賛同してくれたことは幸運でした。Nylas は、ビジネスの生産性を高めるためのコミュニケーション API のプラットフォームを提供しています。そこでは、複数のアプリケーションからデータを収集して分析情報をまとめ、エンドツーエンドの自動化ワークフローを作成できます。当社の成長は著しく、デベロッパーが人々の生産性を高める製品の構築において直面する課題を克服するソリューションを提供することで、過去 2 年間において 5 倍の収益向上を記録しました。当社のスケーラブルで安全なインフラストラクチャを通して、組織はビジネス プロセスの自動化を支えるコミュニケーション データを適切に処理することができます。

当社の急速な成長に伴い、大規模な組織、特に規制の厳しい業界の企業から、より複雑な技術要件を求めて声を掛けていただけるようになりました。例えば、いつでも数百万から数億単位のトランザクションに移行できるようにするため、可能な限り迅速かつ費用対効果の高い方法でサービスをスケールアップおよびスケールダウンする必要がある企業などです。

この 1 年間、Nylas チームはアーキテクチャの再構築に取り組んできましたが、これは、双方向のユニバーサル メール同期、企業における最高基準のセキュリティ コンプライアンス、そして業界に特化した機械学習サービスを企業のお客様に提供するためです。

Nylas では、既存のアーキテクチャをスケールして、企業のお客様のニーズをより的確に解決する方法を模索していました。ここでは、毎週何十億ものトランザクションを必要に応じてサポートするようにスケーリングしながら、1 か月足らずでアーキテクチャ全体をゼロから再構築し、P90 のレイテンシを半分にした方法をご紹介します。

GKE で同期スピード、信頼性、レイテンシを向上

Nylas プラットフォームの従来のアーキテクチャは、別のクラウド サービス上に Python Flask で構築されていましたが、これには独自の問題があり、スケールも費用のかかるものでした。費用がかかっていたのは、Nylas が毎日 20TB 以上のデータを処理しており、数百の MySQL シャードに大量の読み取りと書き込みが行われていたためです。

ワークロードは、静的割り当てでファーム全体のメール アカウントとしてパーティショニングされていました。  アカウントごとのメールの容量は予測が難しく、一日中多くのホットスポットが出現し、大きなレイテンシの変動や、ひどいときには信頼性に関わる問題まで起こっていました。

こうしたレイテンシの問題に対処するため、私たちはシステムを大幅にオーバープロビジョニングしていたのです。インフラストラクチャのフットプリントを 2 倍にしたときの同じトラフィックの負荷をシミュレーションすると、P90 のレイテンシを 50% 低減できることがわかりました。

こうした考慮事項に加えて、私たちは厳しいセキュリティ要件を持つグローバルなフィンテック企業のお客様のニーズをどう満たすかということを、再構築のプロセスの間も最優先に考えていました。フィンテック企業のお客様のセキュリティに関する考慮事項として、個人情報を永続的に保持しないこと、インメモリー ハッキングの可能性を避けるために各サーバーの寿命を短くすることなどがありました。

Kubernetes と Go がもたらした新しい世界

私たちは振り出しに戻り、オペレーションを自動化し、運用コストを削減しながら、レイテンシを数桁の規模で改善できる世界を想像してみました。このため、段階的なインフラストラクチャの改善ではなく、最先端のソリューションでこの課題に取り組むことができないかと野心的に考えました。

Go、Kubernetes、分散型クラウド ストレージに関しては、全幅の信頼を寄せていました。  Nylas のコードは非常に多くの接続処理、暗号化、文字列操作を行うため、インタプリタ型言語よりも Go のようなコンパイル言語の方がパフォーマンスが大幅に向上することは最初からわかっていました。

さらに検討を重ねた結果、Nylas のエンジニア チームが出した結論は、 Google Kubernetes Engine(GKE)のセキュリティ、スケーラビリティ、安定性は他に類を見ないものであるということでした。大規模な Kubernetes ワークロードを安全に実行できる容量こそが、Nylas がまったく新しいアーキテクチャに移行した理由です。これは初期インフラストラクチャに費やしてきた長年の苦労を犠牲にするものでしたが、それでも当社のビジネスとお客様にとって、正しい決断であったと考えています。

Nylas はコンテナのオーケストレーションに GKE を使用しています。セキュリティ上の必要性から、ノードは非常に高速に循環させなければなりません。これには、Kubernetes クラスタに 15,000 のノードを確保できることが非常に役立っています。また、 gVisor を使ってコンテナを実行し、アプリケーションとオペレーションシステムの間に強力な隔離を確立しています。これにより、ホスト、メモリ、ストレージ アクセスのロックダウンが可能になり、オペレーション システム レベルでの最小権限の原則を適用できます。

3 回目のアップデートでは、短期的な成果にフォーカスし、素晴らしい結果を得ることができました。私たちの目標は、リソースの制約からオペレーション上の複雑さを上手にマスキングして、水平スケーラビリティを有するデータストアにワークロードを配置することでした。すぐに使用できる信頼性とスケーラビリティを優先し、クラウド サービスを利用することにしました。  

従来の Nylas プラットフォーム アーキテクチャでは、ほとんどのデータは、セルフマネージドの MySQL フリートに保存されていました。Google Cloud への移行後は、 Cloud Spanner をリレーショナル データストアとして使用することにしました。Cloud Spanner では、アプリケーションのコンテキストで状態を維持できます。大量の呼び出しにおいては、高速な読み取りと書き込みのアクセスが非常に重要です。最後に重要な点として、Nylas は個人情報を保持しません。個人情報は可能な限り速やかにお客様のイベントバスに push されます。

Cloud Pub/Sub は、当社のイベント ブリッジであり、もう一つのキー テクノロジーでもあります。現在のピーク時よりも 2 桁も高い負荷テストを行った結果、すぐに私たちの選択が正しかったことがわかりました。大規模で高いパフォーマンスのデータストアを、信頼性を保ったままホスティングすることは非常に難しいことです。Cloud Spanner と Cloud Pub/Sub を組み合わせることで、この困難な問題を解決できました。

コンテナのオーケストレーションには GKE、リレーショナル データ ストレージには Cloud Spanner、メッセージバスには Pub/Sub を採用したことが功を奏しました。わずか 3 か月で再構築された Nylas プラットフォームの新しいアーキテクチャは、2021 年 6 月初旬にリリースされ、その後も効果的にスケールされています。ちなみに、コードスタックを 500 MB からわずか 7 MB に減らすことにも成功しました。

このプラットフォームでは、1 か月足らずの間に、Cloud Spanner 上で 70 億件以上のトランザクションが実行されました。平均レイテンシが 10 ms 未満であることが、Google Cloud サービスの堅牢性を証明しています。毎秒数千の書き込みの急増があっても、パフォーマンスのレイテンシは最小限に抑えられており、Cloud Pub/Sub のエクスペリエンスに非常に満足しています。

堅実なサポートと Google for Startups とのコラボレーション

Google Cloud のスタートアップ チームと密接に連携することで、Google Cloud のサービスや専門知識を利用でき、立ち上げ前にほとんどの問題を解決できました。こうしたスタートアップ チームは、まるで社内の人間であるかのような働きをしてくれました。素晴らしい対応力を持ち、今まで見てきたどのプロバイダのサポート サービスと比較しても際立っています。私たちが、3 か月という短期間で環境全体のプラットフォームを再構築できた大きな理由の一つは、Google Cloud の力強いサポートにあります。

Google Cloud for Startups によるスタートアップ企業向けプログラムに参加したことで、成功への道しるべを手に入れ、今後の成果にも大きな影響を与えると確信しています。今後も、Google Cloud でのスケーリングに伴い、ワークロードの最適化を進めていく予定です。加えて、Google Cloud パートナーである Bespin Global にも感謝しています。同社のチームは重要な負荷テストのサポートやクラウド リソースの最適化を行ってくれました。

スタートアップ企業向けプログラムに参加したことによるもう一つのメリットは、 Google Cloud Marketplace を簡単に活用できるようになったことです。これにより、お客様にプロダクトを素早くお届けすることができるようになりました。当社のプロダクトを Marketplace で提供することは、当社にとっても、必要なツールを迅速に入手できるセルフサービスのチャネルを求めるお客様にとっても、スムーズなエクスペリエンスとなります。

パフォーマンス、スケーラビリティ、セキュリティ、そしてスループットにおける大きな目標達成

新しい Nylas のプラットフォームでは、目指していた目標をすべて達成しました。

  • パフォーマンス: P90 のパフォーマンスは桁違いに向上し、エンドツーエンドのトランザクションが 10 秒未満で完了します。

  • 費用: Google Cloud で環境のプラットフォームを再構築することで、インフラストラクチャの継続的コストを 30 倍も削減できると試算しています。

  • スループット: スループット(クラウドコストに比例)は、同じハードウェア セットで 1 桁分改善されています。

  • スケーラビリティ: 現在のトラフィック ピークの 100 倍まで負荷テストが行われています。プラットフォームの弾力性は完全に自動化されており、どのテクノロジーを選んでもボトルネックになることはありません。

  • セキュリティ: データの有効時間は保存時でもメモリ内でも短く設定されています。保管期間は、お客様のセキュリティ要件に応じて構成可能で、費用に応じて決定されます。

Amazon プライムデー期間中に、その弾力性がしっかりと試されました。メール数が急増し、リクエストに対応するためにサーバーの負荷が数十台から数千台に増えましたが、負荷が 3 桁も急上昇しても、レイテンシは安定していることがわかりました。

Nylas プラットフォームのこれから

Google Cloud と連携して企業のお客様のニーズに応えることで、Nylas は接続ソリューション以外の製品や機能の提供を拡大していくことができます。

メール、カレンダー、SMS などのコミュニケーション チャネルに含まれる貴重なインサイトを抽出して表示するなど、高度な AI/ML のユースケースについて、Google Cloud とのさらなる提携が私たちのロードマップには含まれています。こういった豊富なデータリソースを活用し、自動化されたワークフロー、迅速なセキュリティ レビュー、エンドツーエンドのユーザー エクスペリエンス コンポーネントなどのツールを用いて、開発、エンジニアリング、プロダクト チームが価値の高い機能をより早く立ち上げることができるよう努めてまいります。  

アジャイルかつ大胆にイノベーションをマーケットにもたらそうと努力した結果として、私たちの今日の成功があります。私たちは、新しいことに挑戦し、野心的な結果を達成するという文化を築いてきました。Google Cloud とのパートナーシップにより、高い安全性とスケーラビリティを備えたインフラストラクチャを構築し、世界におけるさらなる生産性の向上に貢献し続けています。

Google Cloud がスタートアップにどのように役立つかをもっと知りたい方は、 こちらのページでプログラムの詳細を確認し、 コミュニケーションに登録することで、コミュニティ活動、デジタル イベント、スペシャル オファーなどの情報をご覧いただけます。

- Nylas エンジニアリング、プロダクト、CISO 担当シニア バイス プレジデント、David Ting 氏

投稿先