6月18日のServerless Daysのオンラインイベントでは、UCバークレー、serverless.com、TencentCloud、Google Cloudの専門家を含むクラウドコンピューティング業界のリーダーが集まり、サーバーレスコンピューティングの最新のイノベーション、使用例、および将来の方向性について話し合った。
1500人のITプロフェッショナルに対する2019年のO'Reillyが行った調査では、回答者の40%がサーバーレスアーキテクチャを採用している組織で働いていた。2020年のDataDogの調査では、AWSユーザーの50%以上がサーバーレスAWS Lambda Function as a Service(FaaS)を使用していることが示されている。サーバーレステクノロジーが主流になりつつある。
このServerless Daysのエディションは、サーバーレステクノロジーに関する主要な国際イベントで、6月18日に中国で開催された。業界や学界の主要な専門家が、サーバーレスが大流行する理由、および企業が注意を払うべき理由についての事実、ヒント、および意見を共有した。
Johann Schleier-Smith氏がサーバーレスコンピューティングの歴史と将来について講演した。彼は、ステートレスFaaS(AWS LambdaなどのFunction as a Service)とステートフルストレージBaaS(AWS S3などのBackend as a Service)を定義した、"Cloud Programming Simplified: A Berkeley View on Serverless Computing"レポートの共著者である。
私たちの定義では、サービスがサーバーレスと見なされるためには、明示的なプロビジョニングを必要とせずに自動的にスケーリングし、使用量に基づいて課金される必要があります。— A Berkeley View on Serverless Computing
Schleier-Smith氏によると、サーバーレスコンピューティングはシステムまたはインフラストラクチャの管理が大幅に簡素化されており、簡素化されたアプリケーション開発の新しい段階に入っている。サーバーレスFaaSインフラストラクチャには3つの主要なアプローチがある。これらはすべて、ユーザーが作成したコードを実行するための分離と安全なサンドボックスを提供することを目的としている。
FaaSインフラストラクチャへの最初のアプローチは、AWS FirecrackerなどのシステムまたはハードウェアレベルのVMを使用することである。このアプローチは、アプリケーションに最高の分離とセキュリティを提供するが、管理が遅く、複雑になる場合もある。クラウドプロバイダーは、オペレーティングシステムとランタイムソフトウェアスタック(Node.jsやPythonなど)をインストールしてブートストラップし、ユーザーコードを実行する。AWS Lambdaの成功は、このアプローチのスケーラビリティを証明している。
2番目のアプローチは、Dockerなどのコンテナを使用することである。コンテナは、Kubernetesなどのソリューションによって管理される。このアプローチは安全性は低くなるが、システムレベルのVMよりもはるかにパフォーマンスが高くなる可能性がある。クラウドプロバイダーは、ユーザーコードが実行される前に、オペレーティングシステムとランタイムスタックでコンテナイメージを読み込み起動する。
3番目の新しいアプローチは、WebAssemblyなどのアプリケーション固有のVMを使用することである。このアプローチは、高度な抽象化を提供する。WebAssembly VMは、独自のオペレーティングシステムやソフトウェアスタックをブートストラップする必要はない。コンパイルされたバイトコードアプリケーションを実行するだけである。WebAssemblyは、大まかなオペレーティングシステムレベルの分離ではなく、システムリソースにアクセスするための高レベルの「機能ベース」のセキュリティモデルを(たとえば、WASI仕様を介して)提供する。ただし、欠点は、オペレーティングシステムコンテナとは異なり、WebAssemblyはWebAssemblyバイトコードにコンパイルされたアプリケーションしかサポートできないことである。現在、C/C++、Rust、およびAssemblyScript(TypeScriptのサブセット)のみが適切にサポートされている。
分離には複数のアプローチの余地があり、アプリケーションはニーズに応じて異なるアプローチを選択する場合があります。— Johann Schleier-Smith氏
これらの3つのアプローチは、パフォーマンス、セキュリティ、および使いやすさのバランスをとる幅広いソリューションを提供する。テクノロジーが進化するにつれ、アプローチ間の線がぼやけている。たとえば、システムレベルのVMとコンテナをつなぐLightVMアプローチは、関連するオペレーティングシステム機能をVMに直接コンパイルして、より高速なパフォーマンスを実現しようとする。
サーバーレスインフラストラクチャの革新のもう1つの例は、Google CloudのgVisorである。GoogleのWenlei He氏は、カンファレンスでCloud Runについて優れたプレゼンテーションを行った。内部では、Google gVisorテクノロジーは、コンテナを実行するように設計されたシステムレベルのサンドボックスを提供する。Dockerよりも安全で、システムレベルのVMよりも高速である。現在、Googleの3つの最も重要なサーバーレスサービスであるCloud Run、Cloud Functions、App EngineはすべてgVisorの上に構築されている。
FaaSのコンテキストでのサーバーレスの一般的な(ただし、あまり評価されていない)ディメンションの1つは、パブリッククラウドインフラストラクチャに「プログラマビリティ」のディメンションを追加する機能です。— Jason Polites氏、リードプロダクトマネージャー、Google Cloud Serverless
Schleier-Smith氏とPolites氏の両者がほのめかしているように、サーバーレスインフラストラクチャの革新は目的を達成するための手段である。サーバーレスコンピューティングの最終目標は、開発者のためにインターネットアプリケーション開発を簡素化することである。それでも、最近、「サーバーレスTwitter」は、多くの質問が寄せられたアーキテクチャ図で大騒ぎした。これは、私たちが置き換えることになっている「サーバーフル」テクノロジーよりも簡単であるのか。
serverless.comのCEOであるAusten Collins氏が、最先端のサーバーレスツールとアプリケーションアーキテクチャについて素晴らしい講演を行った。彼は「サーバーレスアーキテクトの台頭」という言葉を作り、経験豊富なサーバーレステクノロジーの才能に対する急速に変化する要求を説明した。サーバーレスの採用が拡大するにつれて、開発者は単純なウェブサービスやAWSサービス間のステートレスコネクタではなく、本格的なエンタープライズアプリケーションを構築するためにそれを使用している。たとえば、開発者はサーバーレスFaaSとBaaSの間の境界線に限界を押し広げている。AWSは最近、Lambda関数をステートフルにするElastic File System for Lambdaを発表した。一方、WebAssemblyソリューションは、WASIまたはデータベースアクセス用のカスタム拡張機能を介した安全なファイルシステムアクセスを推進している。
上の図に示すように、FaaSアプリケーションのアーキテクチャの複雑さは爆発的に増加している。今日、開発者はサーバーレスソリューションを構築するためにソフトウェアアーキテクトのスキルを必要としているようである。serverless.comは、中国で最初のServerless Daysイベントとして、TencentCloudとのパートナーシップを発表し、TencentCloud ServerlessプラットフォームでのNode.js + Express.jsアプリ、静的Webサイト、RESTful APIエンドポイントのデプロイメントを簡素化するソフトウェアツールを提供している。
西洋のインターネット大手と同様、アジア最大のインターネット企業の1つであるTencentは、高度なデータセンター運営を行ってアプリケーションを強化しており、データセンターの一部をクラウドサービスとして提供するのは当然である。サーバーレスのTencentCloudのゼネラルマネージャーであるYunong Xiao氏が会議で講演し、SCFにデプロイされたアプリケーション向けのServerless Cloud Function(SCF)やServerless Frameworkなど、TencentCloudの主要なサーバーレス製品について話し合った。
Serverless Days Chinaイベントは、Tencent Cloudが主催および後援した。この仮想イベントには、4万人以上のオンライン参加者が集まった。これは、サーバーレスコンピューティングにおける「東と西の出会い」の瞬間である。テクノロジーが中国の開発者の間で大きな関心を呼んでいるからである。