BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース サーバレスアーキテクチャとCDNを使用した2.5倍のトラフィックへのKhan Academyのスケーリングストーリー

サーバレスアーキテクチャとCDNを使用した2.5倍のトラフィックへのKhan Academyのスケーリングストーリー

原文(投稿日:2020/05/24)へのリンク

Khan Academyのエンジニアリングチームは、Google App Engineと静的コンテンツ配信プロバイダであるFastlyとYoutubeのサーバレスアーキテクチャを活用して、通常のトラフィックの2.5倍にスケーリングするというストーリーを公開した。

オンライン学習プラットフォームであるKhan Academyの使用量は、昨年3月と比較して2.5倍に増加し、減少していない。COVID-19のパンデミックにより、多くの学習がオンラインに移行し、その結果、4月の使用量は3,000万に達した。Khan Academyのエンジニアリング担当副社長であるMarta Kosarchyn氏は、インフラストラクチャの2つの主要コンポーネントであるGoogle App EngineとFastly CDNが、高まる需要に応じてプラットフォームを拡張できるようにするのに役立ったと述べている。

Khan Academyのアーキテクチャは、サーバレスコンポーネントに基づいており、静的コンテンツを提供する。Khan AcademyのプリンシパルソフトウェアアーキテクトであるKevin Dangoor氏によると、彼らはGoogle App Engineでサーバーレスを選択し、「運用チームが使用量の増加に合わせて拡張する必要なしに、使用量の増加に応じて拡張する」としている。データストアはGoogle Cloud Datastoreに基づいており、プラットフォームはインメモリストレージとキャッシュにMemcachedを使用する。内部的には、Khan Academyは、バージョン管理されたコンテンツストアを使用してカスタムコンテンツ管理システム (CMS) を実行している。

もう1つの重要なコンポーネントは、コンテンツ配信ネットワーク (CDN) のFastlyである。Fastlyは、すべてのリクエストの最初のコンタクトとして機能し、動画はYouTubeとFastlyの両方から読み込まれる。主要なビデオサービスはたまたまYoutubeであるが、Youtubeがブロックされている機関向けにAmazon S3からFastly経由でビデオを提供するフォールバックサービスがある。この場合、S3はデータストアとして機能し、後続に提供するためにビデオをFastlyでキャッシュするが、コストのかかる代替手段である。Kosarchyn氏は、頻繁に使用するクエリ、設定、セッションデータもMemcacheにキャッシュすると述べている。

Khan AcademyのトラフィックのほとんどはFastlyとGoogle App Engineから提供されているが、「静的コンテンツの周囲に多くの動的な動作があります」とDangoor氏は述べている。これには、個々の学習者の学習の進捗状況の追跡、進捗レポート、コースの次のステップの推奨事項、教師と保護者による課題の作成、通知、および外部のテストプロバイダとの統合が含まれる。これらの計算コストが、全体的なコストの大部分を占めると、Dangoor氏は述べている。彼らは現在、CPU負荷を減らすことを目的として、このコードベースをGoに移行することに重点を置いている。スケーリング部分のほとんどをオフロードすることで、教育コンテンツの提供という主要な目標に集中できるようになった。

Khan Academyには、Kubernetesで実行されるいくつかのコンポーネントもある。彼らのデータマネジメント (分析パイプライン) は、GKEのKubernetesで実行される。

この記事に星をつける

おすすめ度
スタイル

BT