先頃公開された一連のブログ投稿で、BBCのリードテクニカルアーキテクトであるJohnathan Ishmael氏が、BBC Onlineがサーバーレスを使用する理由とその最適化方法について説明している。
著者によると、BBC Onlineは、超高速にスケールする能力のため、コア実装のほとんどに AWS Lambda を使用している。BBC Webサイトは、1日あたり6000万のブラウザに到達でき、ユーザは1秒あたり最大2万ページを要求する。ニュース速報が発生すると、トラフィックは1分間に3倍に増加し、その後も増加し続けることがある。Ishmael氏は説明する:
これらのキーとなる瞬間はBBCにとって重要であり、読者が私たちに目を向ける瞬間です。エラーになってはなりません。私たちが選択するテクノロジーは、これらのトラフィックパターンに対応できなければならないのです。
BBCのエンジニアは、予測できないスケーリングを必要とするアプリケーションのCPUを集中的に使用する2つの領域にサーバレスを使用する。1つはサーバ側がHTMLをレンダリングするReactアプリで、「2つ目はさまざまなBBCシステムのデータを共通のデータモデルに変換するビジネスロジックレイヤだ」。これらは1日あたり1億を超えるサーバレス関数呼び出しを実行している。
出典: https://medium.com/bbc-design-engineering/optimising-serverless-for-bbc-online-118fe2c04beb
上記の簡略化されたスタックに示されているように、キャッシュはLambdaレイヤ間で行われる。これは、あるLambdaが別のLambdaを呼び出し、それが完了するのを待つ関数チェーンを減らすために実施される。Lambdaはアイドル状態の場合でも実行時間に比例して課金されるため、このチェーンには追加のコストが発生する。もう1つの理由は、バックエンドのサーバレス関数が、ユーザの要求を待たずにバックグラウンドでキャッシュを更新できるようにするためだ。
Ishmael氏は、サーバレス関数は、クラウドプロバイダがこれらを大規模に運用しているため、予測できないトラフィック量を処理するのに理想的であると述べる。一方、仮想マシン (VM) は、変化が遅い、またはスケーリングの遅延を許容するワークロードに役立つ。彼らの経験から、VMを使用してスケールイベントを管理するのに十分な容量を提供するには、50%オーバープロビジョニングする必要があることがわかった。コンテナはVMよりも迅速にスケールアップまたはスケールダウンできる。ただし、基盤となるコンピューティングハードウェアの容量に依存しているため、急速な需要の増加に直面したときのスケールは遅いままだ。
サーバレスを使用することの追加の利点は、サービスを実行する際の運用の複雑さが軽減されることだ。この負担の多くはサーバが抽象化されているためクラウドベンダにオフロードされる。この複雑さの軽減により、開発チームは製品とそのエクスペリエンスにより集中することができる。
Lambda関数のパフォーマンスを最適化し、コストを削減するために、BBCのエンジニアはいくつかの最適化を実行した。最適化の1つは、正しいメモリプロファイルを選択することだ。彼らのテストによると「メモリをさらに増やしてもパフォーマンスは向上しないが、コストは増えるというクリティカルポイントがある」。もう1つの最適化は、コールドスタート時間の利用だ:
コールドスタートプロセスの利点の1つは、関数の実行時に必要な初期化を処理できることです。これにより、実際の呼び出しを可能な限り効率的にすることができます。また、コールドスタート期間の料金は課金されないため、後で関数呼び出しのパフォーマンスを最適化するために使用できる基本的な少数の無料サイクルがあります。今回は、必要なすべてのAPIへのネットワーク接続を確立するために使用しました (後でSSLネゴシエーションの必要性を排除しました) 。また、後で使用するためにJavaScriptライブラリをメモリにロードしました。これは、実行のたびにこのロジックを実行する必要がないことを意味します。
著者によると、サーバーレスの欠点の1つは、問題をリモートで診断するためのツールがないことだ。下のスクリーンショットで示すように、BBCのエンジニアはX-RayとCloudWatchを組み合わせて使用し、サービスの診断とトラブルシューティングを行っている。
出典: https://medium.com/bbc-design-engineering/optimising-serverless-for-bbc-online-118fe2c04beb
この説明は、BBCがアプリケーションはサーバレスコンピューティングに基づくと発表した、2か月前のBBCの発表に続くものだ。