Technology development comes in waves. Judging by the recent slippage in venture capital investment, the most recent wave of new enterprise tech has crested and is now tapering off. And it's leaving a wealth of useful new stuff in its wake, from containers to NoSQL databases to streaming analytics to machine learning APIs.
The most striking thing is not just the quantity of innovation, but how interrelated so many of those new technologies have turned out to be. Put them together and you have the makings of the new enterprise architecture, built on these four principles:
1. Self-service: In today's enterprise, lines of business must be able to build what they need quickly without having to file requests in triplicate to a central IT bureaucracy. Either IT provides the automation necessary to deliver self-service internally, or stakeholders look outside the organization to get what they need.
2. Scalability: The abstraction of hardware as software-defined compute, storage, and network resources -- call it "the cloud" if you like -- enables capacity to be applied where it's needed almost instantaneously. It establishes an all-purpose platform for a multitude of new applications that can scale on a dime.
3. Service-based development: Big, monolithic applications can be broken down into API-accessible microservices, each independently scalable and updatable. With microservices, applications can be built or changed much faster than before -- and developers can easily incorporate external services when needed.
4. Continuous change: Internet-based applications redefine the nature of software, so that enhancements and additions can be applied on an ongoing basis rather than frozen in periodic releases. Constant monitoring of applications and how customers use them provides the guidance for rolling improvements.
So what sort of architecture does this all add up to? The consultancy ThoughtWorks (home to Martin Fowler of Agile Manifesto fame) calls it "evolutionary architecture" -- a phrase coined by ThoughtWorks CTO Rebecca Parsons. Recently I spoke with Mike Mason, head of technology at ThoughtWorks, who offered this insight:
Evolutionary architecture is really about how you do agile software architecture. It's about how do you do enough enterprise architecture that you are being responsible, yet you are embracing the fact that you need to incorporate new technologies and new decisions as you go and that you will learn about the stuff that you're building over time.
In digital businesses, the classic, top-down approach to enterprise architecture, with its vast flowcharts mapping business processes with their associated technologies, becomes a straightjacket. Evolutionary architecture, by contrast, provides a framework for continuous change, where stakeholders can build what they need without stepping on each other or making poor decisions. Microservices can play a central role in that framework, says Mason:
I think that microservices are quite compatible with evolutionary architecture. I have a colleague at ThoughtWorks who actually described microservices as the first cloud-native architecture, because one of the things about microservices is that if they're micro enough you can throw one away and start again. That's radical thinking: "Oh my God, we'd throw away a piece of software? Why would we do that?"
Sign up for CIO Asia eNewsletters.