サーバーレスは、開発者がサーバー管理の負担なしにアプリケーションを作成および運営できるようにする クラウドネイティブな開発パラダイムを表しています。
「サーバーレス」という用語にもかかわらず、実際にはサーバーが関与していますが、それらはアプリケーション開発プロセスにカプセル化されています。開発者は、サーバーインフラストラクチャをプロビジョニング、構成、または維持する必要なく、ビジネスロジックの作成に集中できます。必要なサーバーサービスはクラウドベンダーによって提供され、開発者は自分のコアコンピタンスに集中できます。
サーバーレスの提供は消費ベースで設計されており、需要に応じてシームレスにスケールするイベント駆動型の実行モデルを使用します。その結果、サーバーレス機能が使用されていないときはコストが発生せず、変動するワークロードに対してコスト効果の高いソリューションを提供します。
サーバーレスはどのように機能するのか?
サーバーレス製品は通常、次の2つのカテゴリに分けられます:ファンクション・アズ・ア・サービス(FaaS)およびバックエンド・アズ・ア・サービス(BaaS):
- FaaSは、開発者がロジックを書き、それをプラットフォームによって完全に管理されたコンテナにデプロイし、オンデマンドで実行するイベント駆動型のコンピューティング実行モデルです。
- BaaSは、基盤となるインフラストラクチャとミドルウェア環境を管理し、クライアントプログラムによって直接アクセスおよび使用される一連のバックエンドサービスとAPIインターフェイスを提供します。たとえば、認証、データストレージ、およびメッセージプッシュなどです。
開発者がサーバーレスについて言及する際、彼らは実際にはFaaSモデルについて話しています。FaaSの下では、開発者は依然としてカスタムのサーバーサイドロジックを書きますが、それはクラウドサービスプロバイダーによって完全に管理されたコンテナ内で実行されます。
サーバーレスがどのように機能するかの核心は、従来の一回限りの構築モデルを継続的なサブスクリプションサービスモデルに変換することです。アプリケーションを複数の独立したコンポーザブルなサーバーレス機能に分割することで、動的なアプリケーションとリソースの管理が実現され、フロントエンドとバックエンドはイベント駆動型のアプローチを使用して接続されます:具体的には、サーバーレス機能がトリガーされると(APIリクエストなど)、クラウドサービスプラットフォームは実行のために必要なコンピューティングリソースとネットワークリソースを自動的に割り当てます。この機能が実行されると、プラットフォームは他の機能呼び出しのために関連リソースを回収します;この機能が一定期間実行され続ける必要がある場合、管理プラットフォームは予め定められた戦略に従って定期的にリソースを割り当てます。
サーバーレステクニカル機能
1. サーバーレスの利点
- コスト削減:サーバーレスアーキテクチャはクラウドサービスプロバイダーによって完全に管理されているため、サーバーハードウェアやオペレーティングシステムを購入および維持する必要はありません。さらに、事前に割り当てられたリソースではなく、実際に使用したコンピューティングリソースにのみ支払うため、コストを大幅に削減できます。
- 自動スケーリング:サーバーレスアーキテクチャは、ユーザーの負荷要求の増加に応じてアプリケーションの処理能力を自動的にスケールできます。これにより、アプリケーションのパフォーマンスボトルネックやサーバーリソースの手動調整を心配する必要がなくなります。
- 高いスケーラビリティ:サーバーレスアプリケーションは、複数の独立した並列で実行される関数に依存しているため、高いスケーラビリティを持っています。各関数は独立してスケールでき、高い負荷とスループットをサポートします。
- サーバーレスセキュリティ:クラウドサービスプロバイダーは、ファイアウォール、暗号化、アクセス制御など、サーバーレスアプリケーションのセキュリティ対策を維持および更新する責任があります。これにより、アプリケーションのセキュリティを心配することなく、コードの記述にもっと集中できます。
- 迅速な開発と展開:サーバーレスアーキテクチャは迅速な開発と展開をサポートします。さまざまな事前構築されたテンプレートやAPIを使用して、簡単にアプリケーションを構築し、展開できます。さらに、サーバーレスアプリケーションは自動的にデプロイおよび更新できるため、手動介入なしに迅速に新機能を反復しリリースできます。
2. サーバーレスの欠点
サーバーレスアーキテクチャには多くの利点がありますが、一部の欠点もあります。一つの大きな欠点は、アプリケーションがクラウドサービスプロバイダーによって完全に管理されているため、プロバイダーの制限や制約に従わなければならない可能性があることです。さらに、サーバーレスアプリケーションのパフォーマンスは、コールドスタートの問題やリクエスト制限など、いくつかの制約を受ける可能性があります。そのため、サーバーレスアーキテクチャを使用することを検討する際には、アプリケーションの要件とパフォーマンスニーズを慎重に考慮する必要があります。
サーバーレスの適用シナリオ
- ウェブアプリケーション:サーバーレスアーキテクチャは、さまざまな静的および動的ウェブアプリケーションをサポートできます。たとえば、RESTful APIのさまざまなリクエストアクションは、FaaS関数にマッピングできます。FaaSの自動弾力的拡張機能を通じて、サーバーレスウェブアプリケーションは高トラフィックサイトを迅速にホストできます。
- マルチメディア処理:動画や画像のウェブサイトは、ユーザーがアップロードした画像や動画情報を処理および変換する必要があります。しかし、このマルチメディア変換作業は常時行われるわけではありません。特定のイベントが発生したとき、たとえばユーザーが画像や動画をアップロードまたは編集したときにのみ実行する必要があります。サーバーレスのイベント駆動メカニズムを利用すると、特定のイベントが発生したときにユーザーが処理ロジックをトリガーでき、アイドル状態の間のコンピューティングリソースのコストを節約し、最終的に運用および保守コストを削減できます。
- モノのインターネット: モノのインターネット(IoT)アプリケーションは、多くの異なるデバイスとインターフェースする必要があります。異なるデバイスは、サーバーにデータを継続的に収集および送信する必要があります。サーバーレスアーキテクチャは、IoTアプリケーションが異なるデータ入力とインターフェースするのを助けることができます。
- データおよびイベントストリーム処理:サーバーレスは、リアルタイムでの継続的なイベントストリームやデータストリームの分析および処理に使用でき、リアルタイムでイベントやデータをフィルタリング、変換、分析し、次の処理ステップをトリガーします。たとえば、さまざまなシステムからのログやソーシャルメディア情報のリアルタイム分析が行われ、特定の特徴を満たす重要な情報が記録され、警告されます。
- システム統合:サーバーレスアプリケーションの機能アーキテクチャは、システム統合に非常に適しています。ユーザーは、以前のように完全なアプリケーションを開発して運営する必要なく、いくつかのシンプルな統合ロジックのために必要な統合ロジックにより集中することができます。ユーザーは、必要な統合ロジックを重視し、完全なアプリケーションではなく、関連するコードロジックのみを記述して統合できます。関数アプリケーションの分散アーキテクチャは、統合ロジックの追加や変更をより柔軟にします。
Tencent EdgeOne エッジ関数
Tencent EdgeOne エッジ 関数 は、Tencent EdgeOne のエッジノード向けのサーバーレスコード実行プラットフォームを提供し、Tencent EdgeOne のグローバルネットワークを介してアプリケーションをデプロイできるようにします。サーバーレスアーキテクチャを採用することで、開発とユーザーエクスペリエンスの向上により集中できます。
ここでは、Tencent Edge Functions を利用する利点を示します:
- 超低遅延:世界中に戦略的に配置された Tencent EdgeOne エッジノードでコードを実行することで、リクエストは最寄りのエッジノードにインテリジェントにルーティングされます。この近接により、エッジ関数が迅速にリクエストを処理し、その結果をユーザーに返します。シームレスでレスポンシブな体験を確保します。
- 弾力的拡張:特定のノードでクライアントリクエストが急増した場合、リクエストは十分なコンピューティングリソースを持つ他の Tencent EdgeOne グローバルエッジノードにインテリジェントに再配信され、最適なパフォーマンスを確保するために近接性が優先されます。
- コスト削減:コードをエッジに配布することで、オリジンサーバーへの戻りリクエストの必要性が最小限に抑えられ、オリジンサーバーの使用に伴う費用が削減されます。
- 迅速なデプロイ:グローバルエッジノードへのコードのデプロイは数秒で実行され、ビジネス要件に迅速かつ効率的に対応できます。
- 優れたパフォーマンス:コールドスタート速度は最大0.5msであり、高精度かつ低ロスのCPU隔離により、50usレベルのCPUタイミング精度と、パフォーマンス劣化が0.1%未満の時間スライススケジューリングを保証します。
- 効率的な開発:JavaScriptと標準のWeb Service Worker APIを活用することで、Tencent EdgeOneはビジネス開発を加速するための豊富なシナリオテンプレートを提供します。さらに、CLI (コマンドラインインターフェース)およびローカル開発ツールは、効率的な関数エンジニアリング管理を促進します。
詳細情報については、公式ウェブサイトをご覧いただき、自由に探索してください。私たちは常に ここにいますので、あなたのニーズや質問にお答えいたします。