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 service category in which the customer can use different cloud capabilities types without the customer having to provision, deploy and manage either hardware or software resources, other than providing customer application code or providing customer data. Serverless computing represents a form of virtualized computing." according to ISO/IEC 22123-2 Function as a service and serverless database are two forms of serverless computing.

Serverless is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. The definition of serverless computing has evolved over time, leading to varied interpretations. According to Ben Kehoe, serverless represents a spectrum rather than a rigid definition. Emphasis should shift from strict definitions and specific technologies to adopting a serverless mindset, focusing on leveraging serverless solutions to address business challenges.

Serverless computing can simplify the process of deploying code into production. According to Gregor Hohpe, using serverless 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).

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 ##