30 June 2016
We have been experiencing the transformations of the cloud era, but we've only begun to understand the benefits of having computer power as a worldwide, shared resource, accessible to a steadily growing number of humans.
The cloud era got going in the 2000s. It supplanted the client/server era, which started over 30 years ago with x86 processor architectures, DOS and Windows. Within the client/server era we've had the open source era of the 1990s and 2000s. Open source is still going very strong, as is the x86 architecture, but neither is revolutionizing the industry as it used to.
The cloud era is bringing profound shifts to the way software is developed, to the way innovations happen, to computer sciences professions -- and to humankind. Call me an optimist: most people who work in computing are. I've been lucky enough to be there from the early days of the cloud era, starting with being CEO of MySQL.
I think society will win in the cloud era. The cloud makes computing ubiquitous and accessible to all. This will strengthen our civilization. The cloud is eradicating unhealthy privileges. With computing available to everyone, we empower people to step up and speak up. We will make much better use of the collective intelligence of mankind.
But we didn't recognize how different the cloud era would be when it started to happen. The cloud developed when physical boxes -- the servers -- moved out of offices and data centers into large facilities that we started to call public clouds.
Developers who were used to ordering servers were now ordering services -- cloud services. We went from a physical attachment of the application to the hardware to a virtual one.
The use of the application programming interface is the defining characteristic of the cloud era. Connection and attachment happen through an API, not through a physical connection and not through a software integration. A developer in the 1990s said, "I need a server." A developer in the 2000s said, "I need a software stack." A developer in the 2010s says, "I need some APIs."
To understand how important this shift is, consider our public water and sewer systems -- one of the single biggest innovations in history, in terms of the number of years clean water added to our lifespans.
Before the early 1900s, water was a personal resource, carried from wells to our houses. We didn't have the capability, individually, to clean water or make it more convenient. Today, the source of the water is the same for all people. We share the facility that collects, purifies and pumps out water. The water comes from the tap. All we have to do is turn the faucet.
It's the same with computing today. The cloud is the water system, which we all have an interest in maintaining safely. An API is the faucet that enables us to access the resource. It's easy to use, and easy to adapt.
SOFTWARE DEVELOPMENT AND INNOVATION IN THE CLOUD ERA
The cloud era is also changing software innovation and development. In the past, we expected software to fail, so we made hardware fully resilient. Companies built nearly infallible servers, storage devices and network equipment, or built failover mechanisms to move jobs to another device.
Open source is still going very strong, as is the x86 architecture, but neither is revolutionizing the industry as it used to.
In the cloud world, this thinking has been turned on its head. Now we assume infrastructure, or hardware, cannot be fully trusted, so we build applications that don't depend on any single machine. We build software mechanisms that identify failures in the underlying infrastructure service and move workloads elsewhere.
Netflix, which decided to move its entire operation onto a public cloud, Amazon Web Services, is a great example of the way this paradigm shift plays out.
When it moved to the cloud, Netflix instructed its software developers to make sure their applications could withstand a failure of the underlying service. So the developers built a program, ChaosMonkey, which randomly "shoots down" virtual machines of the cloud service, rendering them unusable. By intentionally causing these problems internally, Netflix ensures software developers build resilient applications.
As a result, we have a consumer service from Netflix that practically never goes down.
Composable infrastructure is another example of the way cloud turns previous thinking on its head. We used to develop applications and systems as large, monolithic structures. We spent inordinate time selecting software components to make sure they would work well together for years or decades.
In the cloud, we do the opposite. Because the application is not running on one big server but many small virtual machines, the architecture better be modular and repeatable. Because you can use APIs and avoid custom integrations, you can modify the overall composition of the application dynamically.
The result is a dynamic and more fluid architecture, in which virtual machines are spun up and shut down as needed, and the software that runs on them can also be dynamically composed. We enable more agile businesses this way: A company can quickly react to changes in consumer behavior or market conditions.
CHANGING COST STRUCTURES IN THE CLOUD
With APIs, we can connect and combine software like we build with Lego blocks. It is much faster to develop and modify applications -- a major cost savings.
We are also seeing a healthy trend in bringing security into every aspect of the software development life cycle.
But no benefit comes free of cost. When you depend on third-party software services accessed through an API, you need to be prepared for those services to end, or the API to change in a way that's detrimental to your application. If that happens, you must be ready to quickly re-architect your solution. That's a new cost that you also need to take into account.
In addition to changing the way innovation happens and software is developed, the cloud era is also broadening the computer science profession.
In the previous eras, software developer was a difficult job. Being a developer meant you had a lot of decision-making power over the application. Now, architecture and design are becoming more important. I believe software development will become more commonplace, and the professions of software architect and user experience designer will grow in importance.
We are also seeing a healthy trend in bringing security into every aspect of the software development life cycle. If you are a computer science professional, learning the foundations of security is a good bet.
And equally if not more important: The cloud makes it easier for computer science professionals to become entrepreneurs. It costs practically nothing to do experiments on the cloud. Build something, and see if it works! If it doesn't work, you haven't lost money, but you have learned a lot. If it works, then good for you, and now you can take the next step.
I think every human being should always strive to learn a little, every day. It doesn't matter who learns what, as long as everyone learns something. The future of our planet is in the hands of the young, so naturally they will need to learn the most, and thankfully, that's already happening.
But it is and will be very important not to have silo'ed learning. Teachers need cloud education so that they can spread it further. Politicians need to learn about the cloud, so they can envision the future. Cloud education needs to be provided to non-computer professions so that they can see the possibilities of cloud. Cloud computing is not only for computer science experts. It is something for everybody.
FOUR PREDICTIONS FOR THE CLOUD ERA
I am not very good at predictions. In most cases, it does not matter which positive predictions of a whole bunch will happen. All positive development is welcome and useful! That said, here are some ideas:
- The cloud era will enable young people anywhere in the world to become computer experts and thereby help advance society.
- The cloud era will give us so much compute power that we will start using it for everything -- absolutely everything. As a result, we will see great advances but also a complete dependency on computing.
- The cloud era will allow us to optimize physical processes so much that we will be able to slow down the harmful exploitation of our planet and its resources.
- The cloud era will allow human minds to connect better and achieve new levels of collective creativity and intelligence.
Tap to read full article