What’s happening today is that these “exceptions” have become the rule. The relationship between companies and their customers has gone digital. Mobile applications are rapidly becoming the de facto way those relationships take place, with Web taking a secondary interface role. Companies want to mind the vast amounts of data their digital interactions generate. And looming on the near horizon is the shift to machine learning and the Internet of Things.
Figure 2 depicts the new enterprise stack. The common foundation for all of these interactions and interfaces is cloud computing. The public cloud providers have changed everything about infrastructure expectations. The new assumption is that infrastructure will be immediately available, low-cost and scalable to whatever extent you need. Static is out the window, discarded in favor of agile.
Many people assume the key challenge for enterprise IT groups is at the infrastructure level. Nothing could be further from the truth. The working assumption by all infrastructure consumers – i.e., developers, application groups, IT executives and business unit customers – is that infrastructure capability will meet the normal: fast, cheap, and scalable. If the on-premises environment meets those requirements, fine. If it doesn’t, nothing in the world will persuade those consumers to stick with an inferior offering.
Instead, the key challenge for enterprise IT is to reconfigure the layer above infrastructure – the application tooling. We are going to see enormous change in the kind of applications that are built, the software components used to build them, and the processes by which they are delivered. Put bluntly, the infrastructure change affects certain portions of the IT operations groups; this change will affect everyone.
I wrote about open source in “4 principles that will shape the future of IT,” but suffice it to say that everything interesting going on in software is based on open source. Proprietary can’t innovate quickly enough, and is unaffordable at the scale required for these applications.
Beyond this, the core architecture of enterprise applications will have to change. Monolithic code bases running in proprietary application servers can’t change fast enough to keep up with “run the business” update requirements. This pace of change demands breaking applications up into service-based applications, aka microservices.
The new normal
The execution environments for those services will change as well. Virtual machines, notwithstanding their many virtues, are too large for distributed code components. In addition, their lengthy instantiation timeframes means it’s hard to respond quickly enough to erratic application loads. The solution to these issues is to move to a different execution environment: containers. There is huge interest in containers within enterprise IT organizations, but until their usage moves from developer workstations to production environments, those organizations will not be able to meet the code deployment and execution speeds needed for microservice-based applications.
Sign up for CIO Asia eNewsletters.