What will your compiler choice be?
Cloud is a transformational technology, because it introduces instantaneous self-service provisioning where there used to be long-winded provisioning processes. Consider this:
Prior to cloud, developers had to make a request to IT and wait for days on end to get access to resources.
With cloud, developers can simply make an API call (or use a web-based frontend) and instantly get access to what they need, largely increasing their agility and ability to react to customer needs and market changes.
Of course, I’m not trying to say that cloud invented self-service provisioning. Surely, forms of self-service existed before cloud. But the truth is: cloud made self-service so pervasive that it literally changed what we mean when we say “self-service”.
Developers used to have “self-service” access to a shared MySQL database and an Apache VirtualHost or IIS environment if they were lucky. Now, they have self-service access to entire operating systems, complete with scalable multi-node templates including Node.js or Rails application stacks, software and hardware load balancers, and even Hadoop clusters.
But is that enough? Is cloud the nirvana of developer agility? Probably not.
Cloud is a Foundational Technology
Cloud is first and foremost an abstraction over hardware (mainly compute, storage, and networking). In turn, this new abstraction enables new abstractions to be created.
In fact, you can draw a parallel with how programming evolved.
High-level languages like Java offer higher-level abstractions that enable programmers to create software more efficiently than if they were using low-level languages such as C. In turn, this increases the business’s agility. Today, these languages are used to create the applications that power Google, Facebook, Twitter, and many others.
So how does that relate to cloud? Just like a number of successful companies built their business using high-level programming languages, successful companies built their cloud architecture using high-level abstractions layered on top of what cloud provided.
Netflix is the quintessential example of success with cloud. The company achieved that success by building higher-level abstractions on top of what existed in their cloud (AWS), such as Asgard and the famous Simian Army.