クラウド コンピューティングの普及に伴い、サーバーレス コンピューティングは IT 業界で徐々に重要なトレンドになってきました。ユーザーがハードウェアやソフトウェアのリソースを管理する必要がないクラウド サービスを指します。ユーザーは、対応するサービスを実行するためにアプリケーション コードまたはデータを提供するだけで済みます。名前に「サーバーレス」とありますが、このテクノロジーは開発者のコードを実行するために依然としてサーバーに依存しています。
サーバーレス コンピューティングとは、コンピューティングの抽象化を指し、開発者は基盤となるインフラストラクチャではなく、アプリケーションのロジックに集中できるようになります。
サーバーレスの定義は時間の経過とともに進化しており、業界全体でさまざまな解釈があります。専門家は、技術仕様から考え方、つまりサーバーレスをどのように活用してビジネス上の課題を解決できるかに重点を移すことを提案しています。
ただし、サーバーレス テクノロジーの普及は、すべてがシンプルになったことを意味するものではありません。これを使用することで、もともと運用チームに属していた複雑さが徐々に開発チームに移行しました。それでも、運用チームは認証、ネットワーク、セキュリティ ポリシー、コストの最適化などの問題を管理する必要があります。
サーバーレス コンピューティングの世界では、開発者はいくつかの課題に直面する可能性があります。その 1 つは、分散コンピューティングでアプリケーションがエラーの影響を受けやすいことです。
「バージョン管理は簡単、補償トランザクションは常に機能、可観測性はオプション。」これらは分散コンピューティングに関するよくある誤解です。
さらに、サーバーレス アプリケーションは分散型でイベント駆動型であるため、追跡が困難な場合が多く、監視とデバッグが困難です。従来の監視ツールには限界があるかもしれませんが、分散トレース ツールや集中ログなどの最新テクノロジーにより、これらの問題を効果的に改善できます。
OWASP レポートによると、サーバーレス アプリケーションは、従来の攻撃や、サーバーレスを特に標的としたサイバー攻撃 (「ウォレット サービス拒否」攻撃など) に対して依然として脆弱です。これにより、開発者は考え方を変え、新しい方法でこれらのリスクを防ぐ必要に迫られます。
サーバーレス コンピューティングは、多くの場合、サードパーティのサービスによって提供されるため、アプリケーションとソフトウェアは特定のクラウド プロバイダーにロックされます。クラウド プロバイダーは通常、顧客がプラットフォームにコードをアップロードすることしか許可せず、基本的な環境をセットアップできないため、より複雑なワークフローを考慮すると、ベンダー ロックインの問題がより顕著になります。これにより、サーバーレス ワークロードの移行はほぼ不可能になります。そのため、マルチクラウドの観点からサーバーレス ワークフローを設計および展開することが、徐々に実行可能なソリューションになりつつあります。
サーバーレス コンピューティングは多くのシナリオで柔軟性とスケーラビリティを提供しますが、特定の高性能コンピューティング (HPC) ワークロードに対しては、ターゲットを絞ったリソース割り当てほど効果的ではない場合があります。ワークロードで継続的または予測可能なリソース使用が必要な場合、従量課金モデルよりも従来のサーバーのバッチプロビジョニングの方がコスト効率が高くなることがあります。
「特定の HPC ワークロードでは、サーバーレス コンピューティングはますます複雑化する要件に適応できるようになっているようです。」
サーバーレスの利点は、その幅広い範囲だけでなく、柔軟性とさまざまなニーズに対応できる能力にあります。開発者は、トレンドに盲目的に従うのではなく、これらのテクノロジーを適用する最善の方法を見つける必要があります。
サーバーレス アーキテクチャでは、開発者は「サンド アンチパターン」などのアンチパターンに注意する必要があります。サンド アンチパターンとは、システムの機能が細分化されすぎて、管理が複雑になり、パフォーマンス効率が低下することを指します。 「Lambda Pinball」と呼ばれるもう 1 つのアンチパターンでは、関数呼び出しが過剰になり、レイテンシと観測性の問題が発生します。
これらの問題を解決するために、企業は、パブリック インターフェースと公開されたインターフェースを区別するための明確なドメイン境界を確立し、依存関係の複雑さを軽減することを検討できます。
「サーバーレス テクノロジーの導入は、効率性とセキュリティの向上に役立つ DevSecOps の適用など、セキュリティ対策と組み合わせる必要があります。」
全体として、サーバーレス コンピューティングによってもたらされる柔軟性とスケーラビリティは、開発者と企業の両方に多くのビジネス チャンスをもたらします。しかし、このような環境では、潜在的な課題やリスクについても認識しておく必要があります。サーバーレス コンピューティングは将来的に主流の選択肢になるのでしょうか、それともその制限により他のアーキテクチャに移行することになるのでしょうか?