マイクロソフトはTeamsインフラをKubernetesに移行する計画でService Fabricを無視

Table of Contents

マイクロソフトはTeamsインフラをKubernetesに移行する計画でService Fabricを無視

Microsoft の Azure 担当 CTO が、COVID-19 パンデミック中の Teams のスケーリング問題への同社の対応と、「Azure Kubernetes Service を使用したコンテナベースの展開」に切り替える将来の計画について語りました。

パンデミックによりマイクロソフトのクラウド容量が圧迫され、チーフテックのマーク・ルシノビッチ氏は記事と動画で、人々がロックダウンに耐える中でTeams、Windows Virtual Desktop、Xboxなどのサービスの需要が急増した経緯を説明。これは英国やその他の地域で報告された問題の原因であることは間違いない。

ルシノビッチ氏によると、Teamsの1日あたりのアクティブユーザー数は、今年初めの3,200万人から4月には7,500万人に増加しました。Windows Virtual Desktopサービスの利用は4週間で3倍に増加しましたが、比較的新しいサービスであるため、これは比較的小規模なベースからの増加と言えるでしょう。Xboxゲームでは、マルチプレイヤーが50%増加し、1日あたりのピークボリュームが30%増加し、1日あたりの新規アカウント数が50%増加しました。

Microsoft は、需要に応えるために Azure の拡張に力を注いでいます。

新しいデータセンターの構築や既存データセンターへの新規サーバーのプロビジョニングには時間がかかりすぎるため、Microsoftは容量増強のために様々な対策を講じました。これらの対策の中には、重要なマイクロサービスをより多くのリージョンに展開するなど、負荷分散のための柔軟性を高めることが含まれていました。そして、「マイクロサービスの一部を再展開し、より小規模なコンピューティングクラスターを多数配置することで、クラスターごとのスケーリングに関する考慮事項を回避できる」という結論に至りました。

さらに、Microsoft はキャッシュの分散を最適化し、テキストベースの JSON (JavaScript Object Notation) から Protocol Buffers バイナリ形式に切り替え、データ圧縮も行った結果、「ペイロード サイズの 65% 削減、デシリアル化時間の 40% 削減、シリアル化時間の 20% 削減」を達成しました。

これらのアニメーションを無効にすると、サーバーのコアCPU時間が驚異の30%節約されたとルシノビッチ氏は主張している。

これらのアニメーションを無効にすると、サーバーのコアCPU時間が30パーセントも節約できたとルシノビッチ氏は主張している。

ルシノビッチ氏が「意図的な機能低下」と呼ぶ、不要な機能のキルスイッチもいくつかありました。MicrosoftはTeamsの入力インジケーター(誰かが入力中であることを示す小さなアニメーションの点)をオフにし、既読通知のアニメーションも削除しました。これにより、ピーク時のコアCPU時間を驚異的な30%も節約できました。

これらのアニメーションにうんざりしているユーザーは、なぜこんなにコストがかかるのかと疑問に思うかもしれません。もう一つの最適化は、モバイル版Teamsアプリが翌週のカレンダーを自動的に取得しないようにすることで、「リクエスト数を80%削減しました」と彼は述べています。

一部の Xbox サービスは、負荷の低い地域 (ダブリンなど) から米国東部などの場所に移動され、最も必要とされる場所で容量が解放されました。

Microsoft Teams のアーキテクチャ

Microsoft Teams のアーキテクチャ

Russinovich氏はTeamsのアーキテクチャについて説明しました。同氏はTeamsをマイクロサービスベースと表現しましたが、ExchangeやSharePointといった巨大な機能が含まれているため、製品の一部では「マイクロサービス」という概念が限界に達していると指摘しました。同氏の図では、スタックの最下部に仮想マシンとService Fabricという2つの要素が示されています。Service FabricはMicrosoftが自社開発したマイクロサービスプラットフォームであり、Azureのコアサービスの一つです。

ルシノビッチ氏によると、同社は現在、コンテナとGoogle発のマイクロサービスプラットフォームであるKubernetesへの移行を計画しているという。Service FabricとKubernetesのどちらが優れているかはさておき、同氏が指摘するように、この移行は「Kubernetesを事実上の標準として選択した業界の潮流に沿うもの」となるだろう。

また、この決定により「運営コストが削減され」、当社の機敏性も向上すると期待されていると付け加えた。

Microsoftはまた、「RESTの使用を最小限に抑え、gRPCなどのより効率的なバイナリプロトコルを優先する」意向です。Kubernetesと同様に、gRPCもGoogleから生まれました。Azureにおけるこれらの動きと、EdgeにおけるChromiumブラウザエンジンへの移行を併せて考えると、Microsoftには今やGoogle由来の技術が数多く存在していると言えるでしょう。

Teams を Kubernetes 上でうまくスケーリングするのは難しいように思えますが、Microsoft は少し余分なカオスも注入していることに留意してください。「システムの信頼性を高めるために導入したすべてのメカニズムが常に完全に機能することを保証するために、カオス エンジニアリングのプラクティスを体系的に採用しています」と Russinovich 氏は述べています。

マイクロソフトのデトネーションサービスは、サンドボックス化されたクラウドVM内の疑わしいリンクやファイルをアクティブ化する。

マイクロソフトのデトネーションサービスは、サンドボックス化されたクラウドVM内の疑わしいリンクやファイルをアクティブ化する。

最後に、Azure の CTO は Detonation サービスを紹介しました。これは、リンク、ファイル、添付ファイルを処理し、それらをサンドボックス化された「Detonation VM」にコピーしてアクティブ化 (開くまたは実行) し、結果を検査するマルウェア対策サービスです。®

Discover More