Serverless

Serverless computing is a cloud-computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity.[1] It can be a form of utility computing. https://en.wikipedia.org/wiki/Serverless_computing

Serverless computing can simplify the process of deploying code into production. Scaling, capacity planning and maintenance operations may be hidden from the developer or operator. Serverless code can be used in conjunction with code deployed in traditional styles, such as microservices. Alternatively, applications can be written to be purely serverless and use no provisioned servers at all.[2]

This should not be confused with computing or networking models that do not require an actual server to function, like peer-to-peer (P2P).

Servers.LOL | Serverless Cost Calculator for AWS Lambda -IOpipe

Jul21'2021: Zack Kanter: The most common misconception about serverless is thinking it means using Lambda as a first resort. Serverless means using Lambda as a last resort, after you’ve done everything you can with managed services (Step Functions, APIG, etc). 10x up front effort, 1/100th ongoing toil.

  • Lambda/AWS-Lambda
  • APIG = API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. APIs act as the "front door" for applications to access data, business logic, or functionality from your backend services. Using API Gateway, you can create RESTful APIs and WebSocket APIs that enable real-time two-way communication applications. API Gateway supports containerized and serverless workloads, as well as web applications.
  • Step Function: a low-code, visual workflow service that developers use to build distributed applications, automate IT and business processes, and build data and machine learning pipelines using AWS services. Workflows manage failures, retries, parallelization, service integrations, and observability so developers can focus on higher-value business logic. (orchestration)
  • pondering that "10x up front effort" comment, it seems like a startup should probably start with an AWS-hosted monolith, and anticipate splitting off some pieces into serverless components later. Are there pragmatic design patterns for this?

Edited:    |       |    Search Twitter for discussion