The world of applications is currently undergoing a fundamental shift, and the changes in the landscape are dramatic. DevOps, the cloud, platform-as-a-service and microservices are aggressively speeding up the pace for innovative companies to create, deliver and refine new services.
At the center of this application revolution is automation, which has taken on a key role in enabling the increasing pace of service delivery and innovation. Whether it’s on premise or in the cloud, infrastructure still runs key application components, but it’s becoming less and less visible. Compute storage and networking, for example, are delivered (as so many things are these days) as a service to applications at the behest of the APIs they call. We refer to this as infrastructure code.
When I think about the new modes of service delivery, the analogy that always makes sense to me is that of the assembly line. The shift to industrialization changed the way goods and services were produced, distributed and consumed, and the creation of the assembly line in the early 20th century played a critical role in doing so. Before the assembly line, if you were building something new, the process was slow and cumbersome - parts of every individual item had to be custom-built and connected to others parts.
With the assembly line came standardization of all parts, and the result was automation, mass production, and a quantum leap forward in the way goods were produced and consumed. Innovative products were delivered faster to the market at a fraction of the price.
Until the last few years, software application development looked very similar to the pre-industrial, pre-assembly line world I’ve described here. Applications were constructed from a mishmash of custom technologies built from scratch. That’s why microservices are so important - they represent something just as significant to application delivery as the assembly line did to the production of goods more than a century ago.
Microservices represent a brand new architecture, breaking apart a large model of the application into a set of small discreet processes. The power here is that it facilitates both independent development of each part and the scale out for each independent function. And with significant advances in processors and networks, which are now fast and powerful enough for a fully-distributed architecture with independent execution contexts, the industry is moving toward the realization of the software factory assembly line.
The result is easy to see: more rapid and predictable delivery of innovative products to market at a fraction of the price. Sound familiar? For a concrete example, look at the proliferation of a service like Uber. How much longer would Uber have taken to build and bring to market if it wasn’t able to leverage the ubiquity of cell phones, global mapping technology within integrated GPS, and peer-to-peer communication services built independently by other companies, and integrated these component services under the Uber umbrella?
The same thing is happening at the application level with microservices. It’s a new world of cloud native applications that we’re living in, with complex, global-scale services delivered using far less and less customer code, and with automation tying it all together. It’s an exciting new paradigm with the potential to change the world every bit as much as Henry Ford’s assembly line did. I don’t know about you, but I’m thrilled to be along for the ride.