Serverless

What is Serverless?

Serverless is a cloud computing execution model where the cloud provider dynamically manages the allocation of machine resources. In this model, developers can build and run applications without having to manage servers. The term “serverless” does not mean that there are no servers involved; rather, it emphasizes that the infrastructure management tasks are fully handled by the cloud provider.

Key features of serverless computing include:

  • Automatic scaling: Serverless platforms automatically scale the application up or down based on demand without any manual intervention from developers.
  • Pay-as-you-go pricing: Users only pay for the actual compute time they consume, avoiding costs associated with idle server time.
  • Event-driven architecture: Serverless applications are often designed to respond to events such as HTTP requests, database changes, or file uploads, allowing for highly dynamic and responsive applications.
  • Simplified deployment: Developers can focus on writing code and deploying their applications without worrying about the underlying infrastructure.

Popular serverless platforms include AWS Lambda, Azure Functions, Google Cloud Functions, and IBM Cloud Functions. Serverless architecture is commonly used for microservices, APIs, and background processing tasks.

Serverless computing allows for greater agility, faster development cycles, and reduced operational overhead for developers.

Snippet from Wikipedia: Serverless computing

Serverless computing is a cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. "Serverless" is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. However, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, virtual machines, or physical servers. When an app is not in use, there are no computing resources allocated to the app. Pricing is based on the actual amount of resources consumed by an application. It can be a form of utility computing.

Serverless computing can simplify the process of deploying code into production. It does not entirely remove the complexity, but mainly shifts it from the operations team to development team. And the more fine grained the application, the harder it is to manage it.

Serverless code can be used in conjunction with code deployed in traditional styles, such as microservices or monoliths. Alternatively, applications can be written to be purely serverless and use no provisioned servers at all. This should not be confused with computing or networking models that do not require an actual server to function, such as peer-to-peer (P2P).

One proposed definition for serverless computing that encompasses these ideas is that serverless computing is a "cloud computing paradigm encompassing a class of cloud computing platforms that allow one to develop, deploy, and run applications (or components thereof) in the cloud without allocating and managing virtualized servers and resources or being concerned about other operational aspects. The responsibility for operational aspects, such as fault tolerance or the elastic scaling of computing, storage, and communication resources to match varying application demands, is offloaded to the cloud provider. Providers apply utilization-based billing: they charge cloud users with fine granularity, in proportion to the resources that applications actually consume from the cloud infrastructure, such as computing time, memory, and storage space."

According to Yan Cui, serverless should be adopted only when it helps to deliver customer value faster. And while adopting, organizations should take small steps and de-risk along the way.

Related:

External links:

Search this topic on ...

## ToDo ##

  • Function as a Service (FaaS)
  • Cloud Native Development
  • Microservices and Serverless
  • Event-Driven Computing
  • Containerization and Portability
  • Distributing Applications with Serverless
  • Scalability in Cloud Computing
  • Cost Optimization in Serverless Environments
  • Security Best Practices for Serverless Applications
  • kb/serverless.txt
  • Last modified: 2024/09/08 12:21
  • by Henrik Yllemo