Embracing the ‘Serverless First’ Approach through Progressive Decomposition

Daniel Vaughan
2 min readJun 2, 2023

In the evolving landscape of cloud architecture, businesses continually seek ways to optimize their development processes and operational efficiency. Two approaches that have gained significant traction are the ‘Serverless First’ methodology and a concept that we’ll term ‘Progressive Decomposition’. Both strategies complement each other beautifully and provide a practical roadmap for leveraging the robust offerings of cloud providers like Amazon Web Services (AWS) and Google Cloud Platform (GCP).

Understanding ‘Serverless First’

The ‘Serverless First’ approach is a strategic decision to use serverless technologies as the default choice when designing and building new systems or features. Serverless technologies, such as AWS Lambda or Google Cloud Functions, abstract away the underlying infrastructure. They handle server provisioning, maintenance, scaling, and capacity planning, freeing developers to focus on writing application code, thereby accelerating time to market and reducing operational overhead.

Yet, serverless technologies aren’t the panacea for every use case. They come with limitations, like cold start times, execution time limits, and control constraints. Here is where the concept of ‘Progressive Decomposition’ becomes instrumental.

Progressive Decomposition: The What and Why

The term ‘Progressive Decomposition’ is a way of describing an approach where you begin with high-level, abstract services, like serverless computing, and progressively ‘decompose’ or ‘break down’ to more granular, less abstract services when the higher-level ones do not meet your needs.

Why should you consider this approach? Because it ensures that you’re only taking on as much complexity and management overhead as your specific use case requires.

Progressive Decomposition in Action

Imagine you’re starting a new project with a ‘Serverless First’ approach. You begin with AWS Lambda or Google Cloud Functions. However, as you progress, you realize that your application requires long-running processes which exceed the maximum execution time limits of these serverless platforms.

That’s when you start your ‘progressive decomposition’. You might consider moving to a containerised serverless service like AWS Fargate or Google Cloud Run or managed Kubernetes like EKS or GKE. These services still manage a significant portion of the infrastructure but allow longer-running processes and more granular control.

If still more control or lower-level access is needed, the next level of decomposition would be to Infrastructure as a Service (IaaS) platforms like AWS EC2 or Google Compute Engine.

Concluding Thoughts

By following a ‘Serverless First’ approach and utilizing ‘Progressive Decomposition’ as needed, businesses can navigate the vast array of services offered by cloud providers like AWS and GCP. They can start with the most abstract and simple services and gradually move to lower-level services based on their precise requirements, ensuring an efficient balance of control and simplicity.

Remember, the beauty of the cloud is its flexibility. There is no one-size-fits-all solution, but with these strategies, you can ensure you’re making the most out of your cloud journey. Adopting a ‘Serverless First’ approach coupled with ‘Progressive Decomposition’ allows businesses to leverage the best of what cloud computing offers while maintaining adaptability to their unique needs.

Happy Cloud Computing!

--

--