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 (FaaS) and serverless databases are examples of serverless computing. However, serverless computing is considered to be broader than these components. Sheen Brisals suggests that serverless technology should be viewed as an ecosystem that includes the cloud provider, FaaS, managed services, as well as tools, frameworks, engineers, stakeholders, and other interconnected elements.

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 does not eliminate complexity but shifts much of it from the operations team to the development team. However, this shift is not absolute, as operations teams continue to manage aspects such as identity and access management (IAM), networking, security policies, and cost optimization. Additionally, while breaking down applications into finer-grained components can increase management complexity, the relationship between granularity and management difficulty is not strictly linear. There is often an optimal level of modularization where the benefits outweigh the added management overhead.

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

  • 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