Function as a Service(FaaS)は、マイクロサービス・アプリケーションの構築と起動に通常伴う複雑なインフラストラクチャーを管理することなく、イベントに応じてコードを実行できるクラウド・コンピューティング・サービスです。
インターネット上でソフトウェア・アプリケーションをホストするには、通常、仮想サーバーまたは物理サーバーのプロビジョニングと管理、およびオペレーティング・システムとWebサーバーのホスティング・プロセスを管理する必要があります。FaaSでは、物理ハードウェア、仮想マシンのオペレーティング・システム、Webサーバー・ソフトウェアの管理はすべて、クラウド・サービス・プロバイダーによって自動的に処理されます。この機能により、開発者はアプリケーション・コード内の個々の機能にのみ集中できます。
サーバーレスと Functions-as-a-Service (FaaS) はよく混同されますが、実際のところ、FaaS は実際にはサーバーレスのサブセットです。
サーバーレスは、コンピューティング、ストレージ、データベース、メッセージング、APIゲートウェイなど、サーバーの構成、管理、課金がユーザーには見えないあらゆるサービス・カテゴリーに重点を置いています。
一方、FaaSはサーバーレス・アーキテクチャーで最も中心的なテクノロジーであるかもしれませんが、アプリケーション・コードまたはコンテナがイベントまたはリクエストに応答してのみ実行されるイベント駆動型コンピューティング・パラダイムに焦点を当てています。
一方、FaaSは、アプリケーションを効率的かつコスト効率よくクラウドに移行するための貴重なツールです。その他のメリットには以下のようなものがあります。
FaaSの導入を容易にし、より効果的に使用するために従うことができるベスト・プラクティスがいくつかあります。
FaaSはトランザクションを簡単に分離して拡張できるため、大量の並列ワークロードに適しています。バックエンド・システムの作成や、データ処理、形式変換、エンコード、データ集約などのアクティビティにも使用できます。
FaaSは、Webアプリ、バックエンド、データ/ストリーム処理、またはオンライン・チャットボットやIoTデバイス用のバックエンド作成のための優れたツールでもあります。FaaSは、サード・パーティー・サービスの管理と使用に役立ちます。例えばAndroidアプリの開発を検討している場合、FaaSアプローチを採用することでコストを抑えることができます。アプリがバッチ処理などの特定の機能のためにクラウドに接続する場合にのみ料金が発生するため、従来のアプローチを使用する場合よりもコストを大幅に下げることができます。
FaaSはコンピューティング・パフォーマンスを劇的に向上させることもできます。例えば、2人の学生は最近、IBMのエンジニアと協力して、 IBM Cloud Functionsを使用してモンテカルロ・シミュレーション(予測困難な特定の事象の将来の結果を推定するために使用される数学的手法)を行い、株価を推定する方法を探りました。モンテカルロ・シミュレーションは、重要なハイパフォーマンス・コンピューティング・ワークロードとみなされます。
モンテカルロとIBM Cloud Functionsの組み合わせにより、チームは大規模な計算を実行できるようになり、ビジネスロジックに集中できるようになりました。FaaSを使用して、チームは1,000回の同時呼び出しによるモンテカルロ・シミュレーション全体を約90秒で完了しました。比較すると、4つのCPUコアを搭載したノートPCで同じフローを実行すると247分かかり、CPU使用率はほぼ100%になりました。
FaaS、PaaS(Platform-as-a-Service)、コンテナ、仮想マシン(VM)はすべて、サーバーレス・エコシステムで重要な役割を果たします。FaaSはサーバーレス・スタックの最も中心的かつ最も定義的な要素であるため、主要な属性に関して、FaaSが現在市場にある他の一般的なコンピューティング・モデルとどのように異なるかを調べる価値があります。
KubernetesとKnativeは、FaaSの背後にある「配管」の1つです。Kubernetesは、クラウド・アプリケーションの管理に不可欠なオープンソースのコンテナ・オーケストレーション・ツールです。Knativeを使用すると、Kubernetesクラスター内でサーバーレスを実行できます。
KnativeとKubernetesの組み合わせは、モニタリング、セキュリティー、ロギング、認証といったKubernetesの機能を活用し、自動コンテナビルド、完全なポータビリティー、 ハイブリッド環境での作業といったKnativeのメリットと組み合わせることができることを意味します。
このテクノロジーの作成者は、開発者がクラウド・アプリを構築するときにサーバーレスとコンテナのどちらかを選択する必要はないと考えていました。目標は、サーバーレスの強力なスケーリングとオンデマンド・アクセスにより、コンテナの可用性と一貫性を強化することでした。
IBM Cloud Virtual Server for VPCは、IBM Cloud Virtual Private Cloud上に構築されたIntel x86、IBM Z、IBM LinuxONEの仮想マシンのファミリーです。
IBM Cloud 専用サーバーは、無制限の無料バックホール・トラフィックと広範なカスタマイズ・オプションを備えたスケーラブルなWebホスティング・ソリューションを提供します。
IBMのクラウド・コンサルティング・サービスで新しい機能にアクセスし、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略や専門家とのパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。