Serverless has evolved beyond function-as-a-service-only approaches to now include any cloud-native software development platform that abstracts underlying cloud infrastructure, complex server configurations, runtime characteristics, and deployment patterns from the development process. While function as a service (FaaS) is still the most common implementation of serverless development and forms the core of serverless architecture, the key characteristics of serverless development platforms support the deployment of arbitrary business logic, decoupled state from the underlying compute, autonomous scale by demand (often back to zero), flexible consumption-based billing, abstraction of the underlying cloud infrastructure, and event-driven communication.
