回答:
サーバーレスコンピューティングに関するWikipediaの記事は、このトピックに関するまともな紹介です。
サービスとしての機能(FaaS)としても知られるサーバーレスコンピューティングは、クラウドプロバイダーが要求の処理に必要なサービスとしての機能のコンテナープラットフォーム(PaaS)の開始と停止を完全に管理するクラウドコンピューティングコード実行モデルです1時間あたりの仮想マシンごとではなく、要求を満たすために必要なリソースの抽象的な尺度によって請求されます。
開発者は、サーバーインフラストラクチャをまったく気にする必要はありません。クラウドプロバイダーは、物理サーバー、使用されるオペレーティングシステム、およびサーバーの実行に伴う従来の問題をすべて管理します。
サーバーレスコンピューティングにより、アーキテクチャは、マシンが実行していることを考えることから、機能を実行していることへと変わります。AWS Lambdaは頭に浮かぶ例です。以下で実行されている物理インフラストラクチャの種類については言及せずに、機能に料金を支払って実行します。また、Azure Functionsなどの競合するサーバーレスホストもあります(または、どちらにも興味がない場合は、単純に検索できます)。
サーバーレスにはかなりの利点があります(ただし、アーキテクチャがまったく異なるため、場合によっては以前とは少し異なる方法で記述する必要があります)。
スケーラビリティは基本的に無料です。機能を実行するためにお金を払っているだけなので、クラウドプロバイダーはコードを実行するために必要に応じてより多くのハードウェアを簡単に割り当てることができます。また、アプリケーションが1回使用されても100万回使用されても、固定料金を支払うのではなく、需要の増加に応じて拡張することができます。
サーバーソフトウェアとハードウェアを開発者が管理する必要はなくなりました。クラウドプロバイダーが管理します。サーバーでArchのようなものを使用したことがあるなら、重要なパッケージを一掃してすべてを壊すことがどれほど簡単かを知っているでしょう!
開発者がコードの得意なことに集中できるようになります。ほとんどの開発者は、おそらくサーバーインフラストラクチャとプログラミングの両方が得意ではありません。サーバーレスは、方程式から1つの問題を取り除くだけです。
マーティンファウラーの概要は、https:
//martinfowler.com/articles/serverless.htmlで確認できます。
TL; DR
「サーバーレス」は、インフラストラクチャが一時的であるアプリケーションを設計するアプリケーション開発とアーキテクチャを説明します。つまり、それらはコンテナベースであり、動的なスケーリングメカニズムに基づいて「行き来する」傾向があります。これは、分散技術(キー/値ストアなど)に依存するステートレスアーキテクチャの使用を規定しています。
「サーバーレス」は、私たちのスペースにある多くのものと同様、過負荷用語になりつつあります。しかし、一般的には「機能的に、私たちのアーキテクチャはサーバーのプロビジョニングや継続的なメンテナンスに依存しません」
最初に思い浮かぶのは、ローカルストレージを使用し、Amazon S#やGithub Pages(または任意の静的サイト-これらは単なる一般的な例です)のような場所に保存される単一ページのjavascriptアプリです。ブラウザで完全に実行される「todo」または「getting things done」スタイルのアプリケーションのようなものを想像してください。ブラウザーはS3などのサービスにアクセスしてコードをダウンロードし、保存するアイテムはすべてブラウザーのローカルストレージに保存されます。このために管理するサーバーはありません。
2番目のインスタンスは、もう少し複雑です(また、「サーバーレス」という用語を普及させたもの)、AWS Lambdaなどのサービスを使用します。これを解決する問題を提示することでこれを説明させてください。
私のキャリアの中で何度も、定期的な抽出、変換、読み込みを実行するルビーコード(通常はレーキタスクとして記述されている)を少しだけ使用して、クライアントのビジネス上の問題を解決しました。解決したら、通常はcronで自動化します。次に、問題は「1時間に1回実行されるこのものをどこでホストするのか」になります。一部のクライアントについては、既存のインフラストラクチャにサーバーをセットアップしました。他の人のために、99%のアイドル状態であったにもかかわらず、EC2インスタンスをセットアップしました。これらのいずれの状況でも、プロビジョニング、パッチ適用、監視、更新などを必要とするサーバーがあります。
Amazon Lambdaを使用すると、その熊手タスクを取得して、純粋な「関数」としてサービスで実行できます。スケジュールすることもできます。そのようなクライアントは、このような単純な1時間に1回の処理のためにインフラストラクチャを必要としなくなりました。
「サーバーレス」でもまだサーバーがあり、「クラウド」でコンピューターがまだあるように。その上には、環境に対する責任の一部を担う抽象化レベルがあります。
すべての素晴らしい答えはすでに。私はブログ記事「サーバーレス思考-新しいアプローチが高スケーラビリティにおける現代のデータ処理ニーズにどのように対処するか」を経験していました。
「サーバーレス」というフレーズは、サーバーがもはや関与しないことを意味しません。それは単に、開発者がもはや彼らについてそれほど考える必要がないことを意味します。コンピューティングリソースは、物理的な容量や制限を管理する必要なく、サービスとして使用されます。サービスプロバイダーは、サーバー、データストア、その他のインフラストラクチャリソースの管理をますます引き受けるようになります。サーバーレスになると、開発者はサーバーレベルからタスクレベルに焦点を移すことができます。サーバーレスソリューションにより、開発者は、バックエンドインフラストラクチャの複雑さを取り除くことにより、アプリケーションまたはシステムが何をする必要があるかに集中できます。
また、サーバーレスインフラストラクチャの構築における私の個人的な経験から学んだもう1つのことは次のとおりです。
例:AWS SQSキューにファイルを保存します。キュー内のメッセージの数が10に達すると、Lambdaにイベントを発生させます。