As AWS Lambda turns 10, serverless computing has evolved a lot. It is not just about running functions anymore, like it used to be. There have been big changes beyond the usual way of doing things, especially with the Function as a Service (FaaS) model. This evolution is not just about executing functions in response to events. It extends to encompass cloud services that eliminate manual provisioning, offer on-demand auto-scaling and operate on consumption-based pricing.
In the earlier days of cloud computing, services like AWS EC2 provided scalable Virtual Machines (VMs), laying the groundwork for microservices architecture. The emergence of FaaS, with AWS Lambda leading the way, allowed developers to decompose monolithic applications into independently deployable microservice units.
Now, instead of just using functions, we are moving towards using customizable cloud building blocks. These building blocks act like programming tools—things like conditionals, loops and exception handling. With these, developers can do things like directing requests, changing data and triggering events, all without writing the usual function code.
In the post-serverless cloud era, scalability alone is no longer the sole criterion for success. Cloud services must now offer rich developer constructs and advanced functionalities to cater to diverse user needs.
Major hyperscalers like AWS, Azure and GCP provide a wide range of services, but vertical multi-cloud services excel in specific areas. Think of Confluent Cloud for handling data with Kafka and Vercel for making websites look great. This trend of getting really good at one thing is not just for big companies – startups are doing it too. They are offering special and unique benefits in areas like computing, storing data and connecting networks.
In the future, competition in the cloud will be about using the basic cloud tools and adding special features for developers. These extra-special services are crucial for giving users exactly what they want, especially since they are looking for more than just making things bigger – they want services that are custom-made for them.
The boundary between application and infrastructure responsibilities is blurring in the post-serverless era, leading to the evolution of Composition as Code (CaC). While Infrastructure as Code (IaC) simplified the provisioning of infrastructure, the demand for a more dynamic approach has arisen.
General-purpose programming languages like TypeScript, Python and Java are now being used to define cloud constructs. Tools such as Pulumi and AWS Cloud Development Kit (CDK) empower developers to implement business logic and compose cloud applications seamlessly.
As we transition from static configurations to a code-driven approach, developer-focused constructs and cloud automation languages will empower developers, making self-service in the cloud a reality.