サーバーレスの使用例:開発者にイノベーションを起こさせるために、企業はどのようにこのテクノロジーを使っているか?

コンピューターで学習する新入社員

サーバーレス、またはサーバーレス・コンピューティングとは、ソフトウェア更新のインストール、セキュリティ、監視などのメンテナンスタスクを気にすることなく、開発者がアプリケーションコードを構築および実行できるようにするソフトウェア開発のアプローチです。クラウド・コンピューティングの台頭により、開発者がコードの作成とデプロイに費やす時間を増やしたいと考えている組織にとって、サーバーレスは人気のツールになりました。

サーバーレス・フレームワークは、その名前とは裏腹に、サーバーを使わないコンピューティングを意味するものではありません。サーバーレス・アーキテクチャーでは、クラウド・サービス・プロバイダー(CSP)が、サーバー管理やバックエンド・インフラストラクチャー、サーバーのプロビジョニング、バックアップの作成などのタスクを処理します。サーバーレス・テクノロジーのもう一つの利点は、クラウド・プロバイダーがオンデマンド・モデルでリソースをプロビジョニングできることです。サーバーレスでは、コードの実行が開始されたときにのみ課金が開始され、終了したときに課金が終了します。

サーバーレスが企業にもたらすメリット

クラウド・コンピューティングの成長に伴い、個人や企業は、以前とは異なる方法でデータを使用および保管する必要があります。これを実現するために、企業はこれまで以上にクラウド機能へ依存し、オンプレミスへの依存を減らしています。現在、Amazon Web Services(AWS Lambda)、Microsoft Azure(Azure Functions)、IBM(IBM Cloud Code Engine)など、すべての主要なCSPはサーバーレス・プラットフォームを提供しています。

IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、FaaS(Function as a Service)のような他の重要なインフラ技術とともに、サーバーレスは、次のようないくつかの重要な方法で組織を支援します。

  • ビジネス・ロジックへの集中を高める:サーバーレス機能により、開発者はコードを書くことに集中でき、基盤となるインフラストラクチャの管理を軽減できます。
  • スタック実装の削減:サーバーレス環境では、スタックの実装、つまりコードを書いてデプロイする際に舞台裏で行われるオペレーションをサードパーティのプロバイダーにアウトソースします。
  • レイテンシの短縮:サーバーレス環境では、 コードはエンドユーザーの近くで実行されるため、レイテンシー (データがネットワーク上のあるポイントから別のポイントに移動するのにかかる時間) が短縮されます。
  • DevOpsサイクルの短縮:サーバーレスでは、開発者がコードのデプロイに必要なインフラストラクチャの定義に費やす時間を短縮できるため、DevOpsが簡素化されます

サーバーレスはどのように機能するのか?

サーバーレスは、プログラマーが最も得意とするコードの記述とデプロイにより集中できるように進化してきたコーディング環境向けの一連のアーキテクチャーの最新版です。サーバーレスの開発に関連する他の3つのアーキテクチャは、Bare Metal Server、仮想マシン、コンテナです。ここでは、それぞれについて詳しく見ていきます。

  • ベアメタルサーバー:ベアメタル・アーキテクチャーでは、開発者が各サーバー(およびコードをデプロイする環境)を手動で構成および管理する必要があります。ベアメタル環境では、開発者はオペレーティング・システム(OS)のインストールやパッチ適用の管理に加え、その他の日常的で時間のかかる作業も行わなければなりません。
  • 仮想マシン: 仮想マシン(VM)は、ベアメタルサーバーよりもリソースの最適化に優れており、アイドル時間の処理にも優れています。しかし、VMの場合、開発者は自分の環境をセットアップし、OSをインストールし、パッチを適用する責任があります。
  • コンテナ:Docker によって普及したコンテナを使用すると、デプロイメントとアプリケーションのコードをパッケージ化して、基盤となるあらゆるインフラストラクチャ上で実行できるようにすることができます。デプロイメントに関しては、コンテナはベアメタルやVMよりもはるかにシンプルなアーキテクチャーですが、Webアプリのスケーリングに関しては理想的ではありません。

サーバーレスとFunction as a service(FaaS)

サーバーレス環境では、開発者が基盤となるインフラストラクチャを管理する手間を省くために、ファンクション・アズ・ア・サービス (FaaS) (顧客がイベントに応じてコードを実行できるようにするサービス) が非常に重要となります。FaaSとサーバーレス・コンピューティングにより、開発者はアプリケーション開発に専念できます。

ベアメタル、VM、コンテナで見たように、アプリをホストするには通常、サーバーのプロビジョニングと管理、およびOSのインストールと管理が必要になります。FaaSでは、物理ハードウェア、VM OS、ウェブサーバー・ソフトウェアの管理はすべてCSPが行います。FaaSによって、開発者はサーバーレスアプリケーションとワークフローをシームレスにデプロイできるようになります。FaaSとサーバーレスという用語はしばしば同じ意味で使われます。

サーバーレスとPlatform as a service(PaaS)

サービスとしてのプラットフォーム(PaaS)は、オンプレミスでプラットフォームを構築・保守するよりもコスト効率が高く、かつ複雑でない完全なクラウド・プラットフォームを顧客に提供するクラウド・コンピューティング・モデルです。サーバーレス・アーキテクチャーとPaaSアーキテクチャーはどちらもバックエンドを開発者に見えないようにしますが、類似点はそれだけです。PaaS環境は、デプロイメントをより細かく制御できますが、より多くの管理も必要になります。PaaSのアプリケーションは、拡張するように手動で設定する必要があり、サーバーレスに比べてスピンアップに時間がかかることがあります。

サーバーレスとInfrastructure as a service(IaaS)

サービスとしてのインフラストラクチャー(IaaS)は、コンピューティングやサーバー、VMなどのリソースを、インターネット経由で従量課金制により提供するクラウド・サービスです。IaaSの導入により、ユーザーは迅速に拡張できるため、オンプレミス・インフラストラクチャーの購入、セットアップ、保守に伴う高額な先行投資の必要性が低減されます。IaaSモデルでは、ユーザーは容量を前払いで購入します。サーバーレス・モデルでは、イベントがアプリのコードを実行するトリガーとなります。基本的に、IaaSではユーザーにリソースの前払いの料金が請求されるのに対し、サーバーレスではコードが実際に実行された時間に対してのみ料金が請求されます。

サーバーレスのエンタープライズ・ユースケース

クラウド・コンピューティングが拡大し続け、企業がテクノロジーを活用して新たなビジネス価値を生み出す新しい方法を模索する中、サーバーレスのユースケースは急速に増加しています。

人工知能(AI)と機械学習(ML)

ここ数年、 人工知能(AI)機械学習 (ML)のアプリケーション、特に生成AIのビジネス・ユースケースが大幅に増加しています。具体的には、サーバーレスはイベント駆動型AIと呼ばれるものを実現するのに役立ち、そこではインテリジェンスの絶え間ない流れが、リアルタイムの意思決定に反映されます。さらに、サーバーレスは、開発者が基盤となるインフラストラクチャーの代わりにトレーニングに集中できるようにすることで、新しいAIやMLソリューションを構築する際の拡張性の課題を解決するのに役立ちます。

マイクロサービス

マイクロサービス・アーキテクチャーは、サーバーレスの最も一般的なユースケースの1つです。マイクロサービス・モデルは、単一のアプリケーションを、疎結合で独立してデプロイできる多数の小さなコンポーネントまたはサービスで構成される、クラウドネイティブ のアーキテクチャー・アプローチです。サーバーレス・コンピューティングは、小規模コード、自動スケーリング、迅速なプロビジョニング、オンデマンド料金体系モデルに関するサーバーレス・コンピューティングの機能を有し、マイクロサービス・アーキテクチャーに最適です。

ハイブリッドクラウド

ハイブリッドクラウドは、パブリッククラウドプライベートクラウド、およびオンプレミスのインフラストラクチャを組み合わせて統合し、柔軟でコスト的に最適な単一の IT インフラストラクチーャを作成します。サーバーレスは、パブリック、プライベート、エッジを含むさまざまなクラウド環境にわたって変動するワークロードに対応するために必要な俊敏性、柔軟性、拡張性を提供することで、ハイブリッドクラウド戦略を採用する企業をサポートします。

ビッグデータ分析

サーバーレスは、ビッグデータ・アプリケーションのコードの作成とデプロイのコストと複雑さを大幅に軽減します。サーバーレス環境では、開発者はインフラストラクチャー管理のすべての日常的なタスクではなく、コードとビジネス・ロジックに集中できます。さらに、サーバーレスの常時稼働機能により、データ・パイプラインは、データのリアルタイムの変化に対応し、それに応じてアプリケーション・ロジックを変更するように設計できます。サーバーレスは、開発者が基盤となるインフラストラクチャーを管理することなく、スケーラブルなビッグデータ・パイプラインを構築するのに役立ちます。

モノのインターネット(IoT)

サーバーレスはそのイベント・ドリブン機能、オートメーション、高い拡張性により、モノのインターネット(IoT)のアプリケーションに必要なデータ処理に最適です。自動化されたサーバーレス機能はステートレスであり、個々のイベントを処理するように設計されています。さらに、サーバーレスの柔軟な計算能力により、IoTアプリケーションを構築する開発者は、広範囲に分散したノードで作業する場合に、幅広い接続およびデータ処理のニーズに適応することができます。IoTデバイスの数が増加する中、サーバーレスは、IoTのアプリケーションにクリティカルなイベント駆動型データ分析の強力な基盤を開発者が提供できるよう支援する独自の仕組みを備えています。

APIゲートウェイ

API ゲートウェイは、アプリケーション・ユーザーのリクエストを受け取り、それを 1 つ以上のバックエンド・サービスにルーティングし、適切なデータを収集して、単一の結合パッケージでユーザーに配信するソフトウェアです。サーバーレス・モデルは、Webアプリケーション・アクションのプロキシーとして使用され、HTTPメソッド・ルーティング、クライアントIDとシークレット、レート制限、CORS、API使用状況の表示、応答ログの表示、API共有ポリシーを提供します。

サーバーレスモデルでは、APIゲートウェイを使用してREST APIサービスを構築し、各イベントに関連付けられたコードをトリガーできます。サーバーレス環境におけるイベントや関数は、HTTPエンドポイントに変換することができます。これらのアクションは「ウェブアクション」として知られ、セキュリティとカスタマイズされたサポートを追加レイヤーとして追加するAPI gatewayを使って、フル機能のAPIに集めることができます。さらに、API Gatewayを使用すると、開発者は認証用にカスタマイズされたさまざまな統合にアクセスできるようになり、市場投入までの時間を短縮しながら開発者の生産性を向上させることができます。

チャットボット

IBM watsonx Assistant や Microsoft の ChatGPT などのチャットボットは、ユーザーが使用していないリソースに対してユーザーが料金を支払う必要のない従量課金制の価格モデルであるため、サーバーレス環境に適しています。サーバーレスは、あらゆる規模の組織が、顧客エンゲージメントの向上や、これまで人間による入力が必要だったサービスの自動化など、さまざまなタスクにチャットボットを利用できるようにします。

独立した並行処理のできるタスク群

サーバーレス・ランタイムは、独立した並列処理のできるタスク群に最適です。これは、コンピューティング・タスクを容易に小さなタスクに分割し並列実行できることを意味します。サーバーレス・アーキテクチャーでは、並列化可能な各タスクがアクションの呼び出しにつながるためです。サーバーレス環境では、独立した並列処理のできるワークロードは多くのサブタスクに分割され、すべてが互いに独立して実行されます。

サーバーレス・ランタイムでの並列タスクの例としては、モンテカルロ・シミュレーションバッチ処理、ビデオ・トランスコーディング、オブジェクト・ストレージ上のオブジェクト処理、モデル・スコアリング、Webスクレイピング、ビジネス・データ・ストリームなどが挙げられます。

詳細はこちら

あらゆる規模の組織が、幅広い業界にわたってクラウド・コンピューティングを活用してデジタル・トランスフォーメーションの目標を達成しようとしている中、サーバーレス・コンピューティングは極めて重要な役割を果たしています。OSのインストールやアップデート、サーバーのプロビジョニング、インフラのスケーリングといった日常的なタスクから開発者を解放することで、サーバーレス環境は開発者がビジネス・ロジックやコードの記述とデプロイに集中できるようにします。

 

著者

Mesh Flinders

Staff Writer

IBM Think

ベンチに座ってスマートフォンを使用している男性の空撮

見逃せない知見AIニュースレターを購読する

AI、量子コンピューティング、クラウド、セキュリティーなどに関する専門ニュースをチェックして、知識を自分のものにしましょう。

今すぐ購読する