Microservices in Large Enterprises

Large enterprise software groups are usually slower to adopt new tech. There are various legitimate reasons. There are usually years of investments in “legacy” systems and likely the internal rate of return calculations done in the years past for the various programs are still running their course. Also technology trends change quickly so adopting a fad is not wise either. Another important factor is the knowledge built into existing systems that is very expensive (both time and money) to recreate.

That said, microservices is a trend that is clearly gaining momentum in the enterprise, along with cloud deployment architectures. Enterprises are starting to explore microservices not to just increase agility, but also to stay current and attract the best talent. For mobile systems response time, scale and other metrics are also critical to maintain. Moreover, microservices is a familiar paradigm to enterprises, given its similarities to service-oriented architecture, making adoption easier.

Adopting Microservices in the Enterprise

Despite its similarities to SOA, microservices is not the same as SOA. There are tradeoffs to consider in adopting microservices. Taking a page from the agile manifesto and Richard Li’s framing of microservices, one of the keys to microservices adoption in the enterprise is about striking the balance between some key software engineering/ops, PMO and QA functions especially in a large organization. I would propose the following preferences:

  1. Developer experience over architectural standards
  2. Technical decision delegation over review boards
  3. Deployment velocity over story point throughput
  4. Mean Time to Recovery over Mean Time Between Failure

You will notice the emphasis on autonomy, increased pace, and increased risk tolerance. This is not easy to accomplish so it must be an iterative process. These are important qualities to consider to adapt to fast changing technologies and large entrenched organizational hierarchies, processes, and vendor relationships are generally at odds with this preference.

Technical knowledge limitations, individual shortcomings, and training opportunities for engineers is also a challenge. Often lack of time for training and reflection is the biggest hurdle. As I explore new deployment paradigms and learn about microservices I hope to continue to elaborate on each of these topics.

Originally published by me at www.datawire.io on December 27, 2016.