Cloud-Computing In The Post-Serverless Era: Current Trends And Beyond
The article explores the future of cloud computing beyond the serverless era and discusses three key trends shaping this evolution.
From Primitives to Constructs as a Service
Serverless computing is evolving beyond its original scope, with functions being replaced by cloud constructs. This shift is transforming the way developers handle tasks like routing, filtering, and event-triggering. Cloud services are becoming more efficient and user-friendly, allowing developers to use familiar programming languages for configuration. Microservices are also being redefined in the cloud landscape, integrating various cloud constructs under a unified developer language.
AWS Lambda played a significant role in popularizing the serverless computing paradigm. It provided an easy deployment process for developers, allowing them to transform microservices into smaller, scalable, event-driven operations. Now, cloud constructs are replacing functions in various cloud services, enabling developers to perform operations like request routing, validation, and data transformation more effectively.
These cloud constructs eliminate the need for custom functions by providing pre-configured solutions. For example, API Gateway can handle request routing and validation, while DynamoDB Streams can emit data changes without the need for dual write from application code. The shift from functions to cloud constructs reduces code size and eliminates the need for maintenance.
From Hyperscale to Hyperspecialization
The cloud market is moving towards hyperspecialized vertical multi-cloud services. These services offer unique, fine-grained features that cater specifically to developers' needs. While major hyperscalers like AWS, Azure, and GCP still provide a wide range of services, there is a rise in hyperspecialized services dedicated to providing a comprehensive set of programmable constructs and an enhanced developer experience.
These hyperspecialized services focus on a single multi-cloud primitive, such as specialized compute, storage, or networking services, and enrich them with developer constructs. They compete by offering advanced features and a better developer experience compared to generic cloud services. Examples of such services include Confluent Cloud for Kafka, MongoDB Atlas for document databases, and GitLab for code management.
This shift towards hyperspecialization is driven by the need for more granular developer constructs and increased complexity of cloud services. Vertical multi-cloud services excel in one area, offering a product that surpasses what major hyperscalers provide in terms of developer experience and constructs.
From Infrastructure to Composition as Code (CaC)
The evolution of cloud computing is leading to a shift from Infrastructure as Code (IaC) to Composition as Code (CaC). IaC emerged to simplify the provisioning and management of infrastructure, but as cloud services become more programmable, there is a trend towards using existing general-purpose programming languages for defining cloud constructs.
New tools like Pulumi and AWS Cloud Development Kit (CDK) support languages like Python, TypeScript, and Java for defining cloud constructs. This shift to general-purpose languages allows developers to define dynamic, logic-driven constructs that align more closely with application code. It enables a closer integration of application and automation code and shifts the responsibility of configuring cloud constructs from operations to developers.
Composition as Code blurs the boundaries between application and infrastructure responsibilities, leading to more efficient and developer-friendly practices. It allows developers to seamlessly merge their applications using their preferred programming language and simplifies the orchestration of cloud resources.