In my day job, I run the production engineering teams across the company, application support, and development teams for our digital products. We can’t afford to go down and when we do, it is often due to the service behind it.
We are currently migrating from monolithic teams building monolithic applications to distributed teams and microservices. For those of you unfamiliar with the newest enterprise application architecture lingo, that basically means we are switching from one application that handles a massive amount of functions and services to a set of small, independently distributable applications that are highly specialized in one task. These “microservices” work together to form the same group of services once offered by the lumbering giant application, but in a quicker, more innovative way.
In order to “run fast” you must decouple the innovation and novelty from the stability. It has always been true that innovation and stability are on opposite ends of a spectrum. Think about stock markets – a widely diversified portfolio will hardly result in vast gain over a short period of time, but it will rarely result in a vast loss either. The opposite is also true. So the solution is to maintain the stability in one hand, while using the other to innovate.
I was recently participating in a friendly debate with a few colleagues on a production-safe approach to micro services innovation. I was having trouble convincing them that you could successfully maintain the stability associated with a large application while still pushing the innovation common in microservices, much less that microservices were the only way to approach an enterprise application while maintaining scalability and agility. I was glad to run into Adrian Cockcroft, the acclaimed designer of Netflix’ microservices approach. It was nice to have him confirm my view.
The best part about microservices? If you are running your Enterprise in the cloud properly, they are actually not as complex as you might think.