What is serverless computing? | Serverless definition

サーバーレスコンピューティングは、使用ベースでバックエンドサービスを提供する方法です。サーバーは引き続き使用されますが、サーバーレスベンダーからバックエンドサービスを取得する会社は、固定量の帯域幅やサーバーの数ではなく、使用量に基づいて課金されます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • サーバーレスコンピューティングを定義する
  • サーバーレスアーキテクチャを使用する利点を概説する

記事のリンクをコピーする

サーバーレスコンピューティングとは?

Serverless computing is a method of providing backend services on an as-used basis. A serverless provider allows users to write and deploy code without the hassle of worrying about the underlying infrastructure. A company that gets backend services from a serverless vendor is charged based on their computation and do not have to reserve and pay for a fixed amount of bandwidth or number of servers, as the service is auto-scaling. Note that despite the name serverless, physical servers are still used but developers do not need to be aware of them.

Webの黎明期には、Webアプリケーションを構築したい人は誰でも、サーバーの実行に必要な物理ハードウェアを所有する必要がありましたが、これは面倒で費用のかかる作業です。

Then came cloud computing, where fixed numbers of servers or amounts of server space could be rented remotely. Developers and companies who rent these fixed units of server space generally over-purchase to ensure that a spike in traffic or activity will not exceed their monthly limits and break their applications. This means that much of the server space that gets paid for can go to waste. Cloud vendors have introduced auto-scaling models to address the issue, but even with auto-scaling an unwanted spike in activity, such as a DDoS Attack, could end up being very expensive.

サーバーレスのメリット

サーバーレスコンピューティングにより、開発者はバックエンドサービスを柔軟な「従量課金」ベースで購入できます。つまり、開発者は使用したサービスに対してのみ料金を支払う必要があります。これは、毎月固定の制限がある携帯電話のデータプランから、実際に使用されるデータの各バイトに対してのみ課金するプランに切り替えるようなものです。

これらのバックエンドサービスを提供するサーバーがまだ存在するため、「サーバーレス」という用語はやや誤解を招く可能性がありますが、サーバースペースとインフラストラクチャの懸念はすべてベンダーが対応します。サーバーレスとは、開発者がサーバーについてまったく心配することなく作業を行えることを意味します。

バックエンドサービスとは?フロントエンドとバックエンドの違いとは?

通常、アプリケーション開発はフロントエンドとバックエンドの2つの領域に分割されます。フロントエンドは、視覚的なレイアウトなど、ユーザーが表示および操作するアプリケーションの一部です。バックエンドは、ユーザーには見えない部分です。これには、アプリケーションのファイルが存在するサーバーと、ユーザーデータとビジネスロジックが保持されるデータベースが含まれます。

アプリケーションのフロントエンドとバックエンド

For example, let’s imagine a website that sells concert tickets. When a user types a website address into the browser window, the browser sends a request to the backend server, which responds with the website data. The user will then see the frontend of the website, which can include content such as text, images, and form fields for the user to fill out. The user can then interact with one of the form fields on the frontend to search for their favorite musical act. When the user clicks on ‘submit’, this will trigger another request to the backend. The backend code checks its database to see if a performer with this name exists, and if so, when they will be playing next, and how many tickets are available. The backend will then pass that data back to the frontend, and the frontend will display the results in a way that makes sense to the user. Similarly, when the user creates an account and enters financial information to buy the tickets, another back-and-forth communication between the frontend and backend will occur.

サーバーレスコンピューティングにより提供できるバックエンドサービスとは?

Most serverless providers offer database and storage services to their customers, and many also have Function-as-a-Service (FaaS) platforms, like Cloudflare Workers. FaaS allows developers to execute small pieces of code on the network edge. With FaaS, developers can build a modular architecture, making a codebase that is more scalable without having to spend resources on maintaining the underlying backend. Learn more about FaaS >>

サーバーレスコンピューティングの利点とは?

  • コスト削減 - 通常、サーバーレスコンピューティングは非常に費用対効果が高いです。従来のクラウドプロバイダーのバックエンドサービス(サーバー割り当て)は、ユーザーが未使用のスペースまたはCPUのアイドル時間に対して料金を支払うことになることが多いからです。
  • スケーラビリティの簡素化 - サーバーレスアーキテクチャを使用する開発者は、コードをスケールアップするためのポリシーの管理について心配する必要がありません。サーバーレスベンダーが、オンデマンドですべてのスケーリングを処理します。
  • バックエンドコードの簡素化 - FaaSを使用すると、開発者はAPI呼び出しを行うなど、単一目的を独立して実行する単純な関数を作成できます。
  • 所要時間の短縮 - サーバーレスアーキテクチャにより、市場投入までの時間を大幅に短縮できます。開発者は、バグ修正や新機能をリリースする際の複雑なデプロイプロセスを必要とせず、コードを少しずつ追加および変更できます。

Learn more about the benefits of serverless computing.

How does serverless compare to other cloud backend models?

A couple of technologies that are often conflated with serverless computing are Backend-as-a-Service and Platform-as-a-Service. Although they share similarities, these models do not necessarily meet the requirements of serverless.

Backend-as-a-service (BaaS) is a service model where a cloud provider offers backend services such as data storage, so that developers can focus on writing front-end code. But while serverless applications are event-driven and run on the edge, BaaS applications may not meet either of these requirements. Learn more about BaaS >>

Platform-as-a-service (PaaS) is a model where developers essentially rent all the necessary tools to develop and deploy applications from a cloud provider, including things like operating systems and middleware. However PaaS applications are not as easily scalable as serverless applications. PaaS also don’t necessarily run on the edge and often have a noticeable startup delay that isn’t present in serverless applications. Learn more about PaaS >>

Infrastructure-as-a-service (IaaS) is a catchall term for cloud vendors hosting infrastructure on behalf of their customers. IaaS providers may offer serverless functionality, but the terms are not synonymous. Learn more about IaaS >>

What is next for serverless?

Serverless computing continues to evolve as serverless providers come up with solutions to overcome some of its drawbacks. One of these drawbacks is cold starts.

Typically when a particular serverless function has not been called in a while, the provider shuts down the function to save energy and avoid over-provisioning. The next time a user runs an application that calls that function, the serverless provider will have to spin it up fresh and start hosting that function again. This startup time adds significant latency, which is known as a ‘cold start’.

Once the function is up and running it will be served much more rapidly on subsequent requests (warm starts), but if the function is not requested again for a while, the function will once again go dormant. This means the next user to request that function will experience a cold start. Up until fairly recently, cold starts were considered a necessary trade-off of using serverless functions.

Cloudflare Workers has addressed this problem by spinning up serverless functions in advance, during the TLS handshake. Since Workers functions spin up at the edge in a very short amount of time, even shorter than the time required to complete the handshake, the result is an FaaS platform with zero cold starts. To get started with Cloudflare Workers, see our Developer documentation.

As more and more of the drawbacks of using serverless get addressed and the popularity of edge computing grows, we can expect to see serverless architecture becoming more widespread.