サーバーレス テクノロジーは、テクノロジーコミュニティで多くの誇大宣伝を生み出し、多くの好奇心を呼び起こし、ある程度の反発を受けています。 これは、の発売から始まったテクノロジーです。 AWS Lamba 2014年に、すぐに続いた AzureFunctions 2016年後半。
グーグル その後、のリリースでそれに続いた Google Cloud 2018年7月に機能します。 では、サーバーレステクノロジーとは何ですか? この質問に最もよく答えるために、従来のサーバーベースのコンピューティングに戻りましょう。
従来のITモデルでは、基本的にすべてを担当していました。 ビジネスオーナーは、サーバーや、ルーターやスイッチなどの他のネットワーク機器、およびサーバーを悼むためのラックの予算を立てる必要があります。
また、手付かずの安全なデータセンターを取得することを心配し、冷却と冗長電源およびインターネットサービスを十分に提供できることを確認する必要があります。 セットアップが完了したら、オペレーティングシステムをインストールし、後でアプリケーションを展開する必要があります。 さらに、あなたはする必要があります 監視システムを設定する 次のようなセキュリティ機能を実装します ファイアウォール 侵入防止、および検出システム。
ご想像のとおり、これはリソースを大量に消費し、コストがかかり、無駄になります。
それで クラウドコンピューティング テクノロジーの世界に侵入し、サーバーとアプリケーションの展開と管理の方法に完全に革命をもたらしました。 これは、開発者がクラウドサーバーとデータベースをすぐに作成してアプリケーションの作業を開始する新しい時代の到来を告げるものでした。 ダウンタイム、高価な機器、データセンターのレンタルなど、従来のITコンピューティングに関連する問題について心配する必要はありません。
クラウドコンピューティングは、ITリソースを展開する際の利便性と規模の経済をもたらしましたが、一部の企業は過剰購入していました 圧倒される可能性のあるネットワークトラフィックまたはアクティビティの急増を見越して、サーバースペースとRAMやCPUなどのリソースの単位 アプリケーション。
慎重な動きですが、意図しない結果として、サーバーリソースが十分に活用されておらず、無駄になることがよくあります。 自動スケーリングを使用しても、予期しない突然のスパイクはコストがかかる可能性があります。 また、ロードバランサーの設定など、運用コストも増加する可能性のある他のタスクを実行する必要があります。
クラウドへの移行にもかかわらず、一部のボトルネックは依然として残っており、コストを増大させ、リソースの浪費を引き起こす可能性があることは明らかです。 そして、これはどこです サーバーレスコンピューティング 入って来る。
サーバーレスコンピューティング は、従量制でユーザーにバックエンドサービスを提供するクラウドモデルです。 簡単に言うと、クラウドプロバイダーは、アプリケーションの実行時間に対してのみコンピューティングリソースと料金を割り当てます。 これは、ケーブル支払いの月額プランから、テレビ番組を見ているときにのみ支払うプランに切り替えるのと同じです。
用語 'サーバーレス’は少し誤解を招く可能性があります。 サーバーは関係していますか? ただし、この場合、サーバーと基盤となるインフラストラクチャは、クラウドプロバイダーによって純粋に処理および保守されます。 そのため、それらについて心配する必要はありません。 開発者としてのあなたの焦点は、純粋にアプリケーションの開発にあり、アプリケーションが満足のいくように機能していることを確認します。
そうすることで、サーバーレスコンピューティングはサーバー管理の頭痛の種を取り除き、アプリケーションで作業するための貴重な時間を節約します。
サーバーレスバックエンドサービスの完璧な例は サービスとしての機能 (FaaS) プラットホーム。 FaaS は、開発者がイベントに応じてコードを開発、実行、管理できるようにするクラウドコンピューティングモデルです。 基盤となるインフラストラクチャの構築と管理の複雑さは、通常、 マイクロサービス。
ファース はサーバーレスコンピューティングのサブカテゴリですが、微妙な違いがあります。 サーバーレスコンピューティングには、コンピューティング、データベース、ストレージ、APIなどの幅広いサービスが含まれます。 FaaSは、アプリケーションがオンデマンドで、つまり要求に応じて実行されるイベント駆動型コンピューティングモデルにのみ焦点を当てています。
の例 FaaS コンピューティングモデルには次のものが含まれます。
要約すると、私たちはそれを見てきました FaaS、アプリケーションの実行時間に対してのみ料金を支払い、クラウドプロバイダーは、基盤となるインフラストラクチャの処理を含め、ほとんどすべてを行います。 サーバーの管理はあなたの心配の最小です。
これで、サーバーレスコンピューティングがもたらすメリットのいくつかを理解できました。 テクノロジーを採用することの利点について詳しく見ていきましょう。
これはおそらく、サーバーレスコンピューティングモデルを採用することの最大の利点の1つです。 用語「サーバーレス’は、サーバーが関与していないことを意味すると誤解される可能性があります。実際、アプリケーションは引き続きサーバー上で実行されます。 問題の核心は、サーバー管理が完全にクラウドベンダーのビジネスであり、これにより、アプリケーションで作業するためのより多くの時間が与えられます。
サーバーレスインフラストラクチャは、ユーザーベースの使用、需要、または増加の急増に応じて、アプリケーションの自動スケーリングを提供します。 アプリケーションが複数のインスタンスで実行されている場合、サーバーは必要に応じて起動および停止します。 従来のクラウドコンピューティングのセットアップでは、トラフィックまたはアクティビティの急増により、サーバーリソースが簡単に過負荷になり、実行中のアプリケーションとの不整合が発生する可能性があります。
開発者は、アプリケーションの高可用性を実現するために特別なインフラストラクチャを構築する必要はありません。 サーバーレスコンピューティングは、必要なときにアプリケーションが稼働していることを保証するための組み込みの高可用性を提供します。
サーバーレスコンピューティングは、従量制でリソースを割り当てます。 アプリケーションは、コードの実行時にのみバックエンド関数を必要とし、ワークロードの量に基づいて自動的にスケーリングします。
これにより、アプリケーションの実行時間に対してのみ請求されるため、規模の経済が実現します。 従来のサーバーモデルでは、アプリケーションが実行中かアイドル状態かに関係なく、サーバースペース、データベースなどのリソースに対して料金を支払う必要があります。
サーバーレスアーキテクチャにより、従来のセットアップのようにバックエンドを構成したり、サーバーにコードを手動でアップロードしたりする必要がなくなります。 開発者は、コードの小さなスタックを効率的な方法でアップロードして、優れた製品を立ち上げるのは簡単です。
展開が容易なため、開発者はアプリケーション全体を変更することなく、コードの特定の機能に簡単にパッチを適用して更新できます。
サーバーレスモデルに関連する欠点はありますか? 確認してみましょう。
不適切に構成されたアプリケーションは、サーバーレスコンピューティングに関連する最大のリスクの1つをもたらします。 あなたが選ぶなら AWSたとえば、アプリケーションにさまざまな権限を設定して、AWS内の他のサービスとどのようにやり取りするかを決定するのが賢明です。 権限があいまいな場合、関数またはサービスは必要以上の権限を持つことができ、セキュリティ違反の余地が十分に残されます。
サーバーレスモデルを選択すると、別のベンダーに移行するときに課題が発生する可能性があります。 これは主に、各ベンダーが他のベンダーとはわずかに異なる独自の機能とワークフローを持っているためです。
サーバーレスモデルがもたらすもう1つの課題は、稼働前にコードのパフォーマンスをテストおよび監視するためのサーバーレス環境を再現することの難しさです。 これは主に、開発者がクラウドプロバイダーの保護であるバックエンドサービスへのアクセシビリティを欠いているためです。
サーバーレスアプリケーションの監視は、デバッグとテストが困難な作業であるのと同じ理由で、複雑な作業です。 これは、次のようなバックエンドサービスに統合されたツールが利用できないことによってさらに悪化しています。 AWS Lamba.
サーバーレスコンピューティングは、3つの主な理由から、企業や開発者の間で引き続き注目を集めています。 1つは、運用コストの削減を意味する手頃な価格です。 次に、サーバーレスコンピューティングにより、自動で高速なスケーリングが容易になります。最後に、開発者は、ベンダーが処理する基盤となるインフラストラクチャについて心配する必要がありません。
一方、クラウドプロバイダーは、アプリケーションのデバッグや監視の難しさなど、サーバーレスコンピューティングに関連するいくつかの落とし穴に対処するために24時間体制で取り組んでいます。