サーバーレスとは​​何ですか?


42

すべてのクラウドプロバイダーは、「サーバーレス」ソリューションをマーケティングしています。約束は、開発者が現在ソフトウェアを開発する方法をサーバーレスで置き換えることであり、運用では運用環境でソフトウェアを管理します。

「サーバーレス」とは何ですか?それについてどこでもっと知ることができ、今日どのようにそれを使用することができますか?


サーバーレスコンピューティングは、「チキンハンバーガー」がビーガンであるため、「サーバーレス」です。あなたが個人的にチキンと出会わなかったためです
Sai Addanki

回答:


43

サーバーレスコンピューティングに関するWikipediaの記事は、このトピックに関するまともな紹介です。

サービスとしての機能(FaaS)としても知られるサーバーレスコンピューティングは、クラウドプロバイダーが要求の処理に必要なサービスとしての機能のコンテナープラットフォーム(PaaS)の開始と停止を完全に管理するクラウドコンピューティングコード実行モデルです1時間あたりの仮想マシンごとではなく、要求を満たすために必要なリソースの抽象的な尺度によって請求されます。

開発者は、サーバーインフラストラクチャをまったく気にする必要はありません。クラウドプロバイダーは、物理サーバー、使用されるオペレーティングシステム、およびサーバーの実行に伴う従来の問題をすべて管理します。

サーバーレスコンピューティングにより、アーキテクチャは、マシンが実行していることを考えることから、機能を実行していることへと変わります。AWS Lambdaは頭に浮かぶ例です。以下で実行されている物理インフラストラクチャの種類については言及せずに、機能に料金を支払って実行します。また、Azure Functionsなどの競合するサーバーレスホストもあります(または、どちらにも興味がない場合は、単純に検索できます)。

サーバーレスにはかなりの利点があります(ただし、アーキテクチャがまったく異なるため、場合によっては以前とは少し異なる方法で記述する必要があります)。

  • スケーラビリティは基本的に無料です。機能を実行するためにお金を払っているだけなので、クラウドプロバイダーはコードを実行するために必要に応じてより多くのハードウェアを簡単に割り当てることができます。また、アプリケーションが1回使用されても100万回使用されても、固定料金を支払うのではなく、需要の増加に応じて拡張することができます。

  • サーバーソフトウェアとハ​​ードウェアを開発者が管理する必要はなくなりました。クラウドプロバイダーが管理します。サーバーでArchのようなものを使用したことがあるなら、重要なパッケージを一掃してすべてを壊すことがどれほど簡単かを知っているでしょう!

  • 開発者がコードの得意なことに集中できるようになります。ほとんどの開発者は、おそらくサーバーインフラストラクチャプログラミングの両方が得意ではありません。サーバーレスは、方程式から1つの問題を取り除くだけです。


「サーバーインフラストラクチャをまったく気にする必要はありません」。私の経験では、あまりにも多くの人がすでに/してはいけない、悲惨な結果をもたらしているので、それは本当に良いことです!
フィルW.

15

マーティンファウラーの概要は、https
//martinfowler.com/articles/serverless.htmlで確認できます。

TL; DR
「サーバーレス」は、インフラストラクチャが一時的であるアプリケーションを設計するアプリケーション開発とアーキテクチャを説明します。つまり、それらはコンテナベースであり、動的なスケーリングメカニズムに基づいて「行き来する」傾向があります。これは、分散技術(キー/値ストアなど)に依存するステートレスアーキテクチャの使用を規定しています。


2
一時的なだけでなく、完全に抽象化されます。多くの最新の非サーバーレスセットアップ(AWS EC2 ASGなど)では、インフラストラクチャも一時的です。ASGのEC2インスタンスはいつでも終了できます。
エイドリアン

14

「サーバーレス」は、私たちのスペースにある多くのものと同様、過負荷用語になりつつあります。しかし、一般的には「機能的に、私たちのアーキテクチャはサーバーのプロビジョニングや継続的なメンテナンスに依存しません」

最初に思い浮かぶのは、ローカルストレージを使用し、Amazon S#やGithub Pages(または任意の静的サイト-これらは単なる一般的な例です)のような場所に保存される単一ページのjavascriptアプリです。ブラウザで完全に実行される「todo」または「getting things done」スタイルのアプリケーションのようなものを想像してください。ブラウザーはS3などのサービスにアクセスしてコードをダウンロードし、保存するアイテムはすべてブラウザーのローカルストレージに保存されます。このために管理するサーバーはありません。

2番目のインスタンスは、もう少し複雑です(また、「サーバーレス」という用語を普及させたもの)、AWS Lambdaなどのサービスを使用します。これを解決する問題を提示することでこれを説明させてください。

私のキャリアの中で何度も、定期的な抽出、変換、読み込みを実行するルビーコード(通常はレーキタスクとして記述されている)を少しだけ使用して、クライアントのビジネス上の問題を解決しました。解決したら、通常はcronで自動化します。次に、問題は「1時間に1回実行されるこのものをどこでホストするのか」になります。一部のクライアントについては、既存のインフラストラクチャにサーバーをセットアップしました。他の人のために、99%のアイドル状態であったにもかかわらず、EC2インスタンスをセットアップしました。これらのいずれの状況でも、プロビジョニング、パッチ適用、監視、更新などを必要とするサーバーがあります。

Amazon Lambdaを使用すると、その熊手タスクを取得して、純粋な「関数」としてサービスで実行できます。スケジュールすることもできます。そのようなクライアントは、このような単純な1時間に1回の処理のためにインフラストラクチャを必要としなくなりました。

「サーバーレス」でもまだサーバーがあり、「クラウド」でコンピューターがまだあるように。その上には、環境に対する責任の一部を担う抽象化レベルがあります。


通常EC2を必要とする1時間に1回のジョブの実生活の例に対する私の賛成票。これで、Lambda関数が必要になりました!
HopeKing

10

すべての素晴らしい答えはすでに。私はブログ記事「サーバーレス思考-新しいアプローチが高スケーラビリティにおける現代のデータ処理ニーズどのように対処するか」を経験していました。

「サーバーレス」というフレーズは、サーバーがもはや関与しないことを意味しません。それは単に、開発者がもはや彼らについてそれほど考える必要がないことを意味します。コンピューティングリソースは、物理的な容量や制限を管理する必要なく、サービスとして使用されます。サービスプロバイダーは、サーバー、データストア、その他のインフラストラクチャリソースの管理をますます引き受けるようになります。サーバーレスになると、開発者はサーバーレベルからタスクレベルに焦点を移すことができます。サーバーレスソリューションにより、開発者は、バックエンドインフラストラクチャの複雑さを取り除くことにより、アプリケーションまたはシステムが何をする必要があるかに集中できます。

また、サーバーレスインフラストラクチャの構築における私の個人的な経験から学んだもう1つのことは次のとおりです。

  • サーバーレスデータパイプラインは、リアルタイムのみである必要はありません。AWSのCloudWatchアラートメカニズムを使用して、効率的なバッチ処理サーバーレスパイプラインを構築できます。これにより、ツールを監視し、計算する(AWS)Lambdaのアラートを生成できます。

例:AWS SQSキューにファイルを保存します。キュー内のメッセージの数が10に達すると、Lambdaにイベントを発生させます。


6

サーバーレスという用語の定義を単に説明するだけでなく、この用語の起源とその歴史から、その意味についての洞察も得られます。コンセプトはで始まっJAWSの フレームワークにより、オースティン・コリンズしまった、 後で名前を変更しサーバレス。私は最初にAWS re:Invent 2015 セッションでこのことを学びましたが、これはコンセプトの作成に役立ちます。これが実際にサーバーレスという用語を作り出したもので、他のクラウドシステムに急速に広まりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.