DEV Community

Cover image for The Future of Cloud Computing is Developer Experience
Pablo Bermejo
Pablo Bermejo

Posted on • Edited on

The Future of Cloud Computing is Developer Experience

What is this?

I have picked the words of this post's title carefully. With it, I don't want to imply what's the future of cloud providers but the future of cloud computing as a whole (as a "discipline" or "paradigm" or whatever you want to call it). Although I will write about both, anyways!

To start off, cloud computing is already legacy. You should have moved to it already in the 2010s, so all the articles you can read from the McKinsey's of the world stating that cloud is a priority for every CIO/CTO this year are simply (and intentionally) missing the point. Today, the success of companies of all kinds relies upon seizing the highest level of computing industrialization: resources as utilities, runtimes as a service or, in other words, serverless. To be honest, by now you should have been way into it already if you don't want to be late (again).

Visually, this industrialization of computing can be represented with a Wardley Map as follows:

Wardley Map: The evolution of computing

In this post, I won't dive deeper than this into serverless. If you want to know more, I talk about it almost everyday in my Twitter account. Also, I have written a book about it called Building Software Platforms where I explore many of these ideas in detail.

Looking at this map, you might be wondering what's beyond serverless. How can computing evolve and become further industrialized?

There are two answers to this question but one truth: the future of cloud computing does not belong to traditional cloud providers anymore. Bear with me.

The future of cloud providers

Serverless is the end of the game for cloud providers, and we started to witness the first signs of this during AWS re:Invent 2021. How? Well, if you paid close attention, there were very few announcements of new services or innovations released to the market. The majority of them focused on iterations of the current primitives. This means that AWS seems to be focusing on adding new features to their MVPs or even pushing some of the existing services through the industrialization pipeline by adding a serverless flavor to them.

While all providers keep industrializing their computing services and turning them into utilities we can subscribe to, they will gradually step into a services war. If they weren't already, they are now competing fully in the service economy and, when this happens, the best distribution always wins. What's distribution like for cloud providers, then? The answer is edge computing: distributed provisioning with centralized control.

Computing at the edge is not about CDNs and caches anymore; this is something else. We are now talking about moving our applications and services to the edge, where actual client requests and business logic can be processed and executed without the need to send that request to a service running on the origin cloud region. Of course, this approach still qualifies as serverless because you don't need to provision or manage any type of runtime. Additionally, this approach comes with further benefits, such as global distribution and automatic multi-region access for your applications out of the box.

Of course, AWS is already playing in this field with the introduction of CloudFront Functions in May 2021. With this service, you can handle simple HTTP(s) request/response manipulations that can be executed by very short-lived functions. For these use cases, CloudFront functions give you a flexible programming experience with the performance, scale, and cost-effectiveness that enable you to execute them on every request.

Additionally, one of the most used technologies these days is CloudFlare Workers, especially for SSR Web Applications with frameworks such as NextJS or Remix.

All in all, this is where cloud providers are going. As I wrote above, serverless as we know it is the end of the game for them, especially as the industrialization of computing enables the co-evolution of other technologies and practices. And here's how the next phase of cloud computing industrialization is unfolding before our eyes.

The future of cloud computing

The cloud development community is very vocal about how cloud providers, especially AWS, neglect developers offering them a poor developer experience. To put a few examples:

  • Lack of consistency across service APIs and SDKs. Again, especially with AWS, developers feel like Indiana Jones in the Last Crusade figuring out what would be their right service for their solution from a bucket of unconnected capabilities.
  • And it only gets worse. On many occasions, there are multiple services to solve the same problem. For example, AWS gives you 17 ways of deploying containers.
  • There is a flat topology or categorization of services in the catalog. You can find services belonging to different stages of maturity next to each other. For example, in AWS, you can access services to spin up virtual machines in the cloud (EC2) next to the most sophisticated serverless service (AWS Lambda or App Runner). To the developer's eyes, there is nothing that makes them different at first sight.

And it won't get any better. Making the life easier to developers is not the job of cloud platforms. That's not their focus, and it will never be. As I wrote earlier, they will keep iterating primitives, eventually making everything serverless and running at the edge, and opening the door for others to focus on creating better developer experiences.

It is in their own interest to operate like this. In a few years from now, we will see AWS and its catalog of cloud computing services as we see VMWare today: at the bottom of the stack providing the foundation of the technology upon our applications run.

So what's next after serverless? The answer is domain-specific higher-order abstractions or even niche clouds (per industry). I am not a fortune-teller, but I can see this future coming soon. Companies such as Vercel and Netlify are already playing in this field by providing developer-centric higher-order abstractions to help developers navigate the ocean of serverless primitives. They provide developers with a transparent rationalization of access to serverless deployments for their applications enhanced with developer experience add-ons.

Let me explain this better. If you are a Web developer in 2022 and want to deploy your Web application on the cloud using serverless, you will have to find the right "primitives" (ie. CDN, API gateway, runtime, static storage) from a catalog of endless services. Vercel helps you by providing you with an encapsulation that offers you a curated experience tailored to your need as a frontend developer, so you don't need to worry about any of that. You just write your app or API and Vercel takes care of building it and deploying it on the cloud with serverless. It's the next level of managed services. It's, as I mentioned, the next phase of computing industrialization.

Visually, this can be represented with a Wardley Map as follows:

How Vercel helps developers

Let's talk about this picture. This is what I meant when I said that the future of cloud computing does not belong to cloud providers anymore. Do we consider Vercel a cloud provider? Maybe the community don't see them as such yet, but technical it is because it contributes enormously to the evolution of computing. This is what a few experts like Charles Fitzgerald call superclouds. Again, these are companies pushing the industrialization envelope with a focus on developer experience:

  • They are drastically reducing the cognitive load of developers, who don't need to know all the serverless services required to run their applications and, especially, how to configure them for optimal usage.
  • Absorbing many of the deployment and architectural responsibilities that now are encapsulated to developers through dashboards and configuration knobs.

AWS and other cloud providers are paving the way to solutions like Serverless Inc, Vercel, Netlify, Twilio, or Stripe so they can take care of the developer experience significantly better. Again, we are talking about domain-specific higher-order abstractions that are specifically designed for niche fields (eg. frontend, communications, or payments).

Ok, if you don't believe me, at least listen to Sarah or Jeremy talk about it.

Sarah's Tweet
Jeremy's Tweet

And that's what I am going to write about in my next post. How Vercel is changing the game.

Top comments (3)

Collapse
 
kyawthet23 profile image
KyawThet23

I just found out this article and want to say thanks to you. This really helpful for me.

Collapse
 
ave profile image
Alexander

Good stuff.
I am surprised there are no comments on this article.

Collapse
 
peibolsang profile image
Pablo Bermejo

Thank you Alexander, I am glad you liked it