home icon

A Four-Pronged Approach to Microservices Adoption

Enterprises have been struggling for years to develop applications that are agile and quick to change. Microservices architecture provides a way to address this challenge and has therefore caught the attention of enterprise IT teams. Beyond the initial enthusiasm, proof of concepts and pilot implementations, enterprises are struggling to adopt this architecture. In this blog, I explain why enterprises need to consider a strategic approach to Microservices architecture and suggest a four pronged approach to adoption.

Microservices Enable Evolutionary Architecture

There are quite a few architecture styles that have emerged over the last few years from the internet companies that don’t have the constraints of legacy systems. One of the key characteristics of these architectures is their ability to respond to changing business needs, known as evolutionary architecture. Microservices architecture is one such architecture style that can address variety of concerns that effect the agility of systems. From a technical standpoint, Microservices uses service orientation principles and functional partitioning to “monolithic” applications to make systems function as relatively independent services. From a business benefit standpoint, it makes enterprises digital ready and offers multiple advantages to them. Some of which are:

  • Allows experimentation & innovation, leveraging cutting edge technologies, but localize the related risk only to a specific service.
  • Because of independent services, scaling of teams is easier, as Microservices reduces coupling between teams and enables more autonomy and accountability.
  • Improves resiliency of mission critical systems, by scaling and replicating parts of systems rapidly. In case of failure of a specific service, rest of the system can continue to run.
  • Enables cloud adoption and cloud native architectures by deployment of services over multiple VMs or containers working together

Thinking about Microservices Adoption & Challenges

Embracing Microservices architecture at an enterprise level poses unique challenges especially if we consider large enterprises that have complex application landscapes. Some of the common questions that both large and mdi-size organizations ask are:

  • Where do we start the adoption of Microservices?
  • Coupling within existing systems can be complex. Is there a way to prioritize application portfolio?
  • What capabilities do we need to start adopting this architecture style at scale?
  • What practices should we use to ensure successful adoption and get best of Microservices architecture?
  • There are no proven enterprise adoption patterns, as there is very little enterprise wide adoption outside Internet native companies. How do I do enterprise wide adoption?

Approaching Adoption Strategically

Often enterprises take a tactical approach and use Microservices to douse fires in specific problem areas. Such thinking will do more harm than good. Hence, I recommend a logical and strategic four pronged approach towards adoption. These activities need not happen in the mentioned order though. Necessary capabilities will have to build systematically, which will help realize full benefits of Microservices.

  • Discover: Articulating the business benefits and creating a case for Microservices adoption. Based on the maturity of enterprise this can be optional. However, one might have to build a case to get the necessary investments and budget allocation.
  • Plan: Assess the current state capabilities and identify the gaps in terms of capability that is required for adoption at scale. These capabilities include frameworks, technology choices, governance etc. Another important activity is to identify the applications of priority where Microservices architecture can be applied.
  • Act: Build the base capabilities needed for Microservices. Choose the right technology stacks. Build out platform capability. Setup guidelines and prepare playbooks. Put forward service design guidelines and start implementing services.
  • Optimize: Take Microservices architecture into production at scale. Ensure services are organized per domains. Automate the deployment processes. Bring in strong management & monitoring capabilities. Keep an eye for potential pitfalls.

As follow-up to this blog post, my next blog will cover more details on specific concerns and challenges that we are seeing in real world scenarios related to this subject.

About Author

Aravind Ajad Yarra- Distinguished Member of Technical Staff, Wipro, Ltd.

Aravind Ajad is Chief Architect and Architecture Practice leader focusing on Emerging Technologies as part of Wipro’s Global Enterprise Architecture practice. In his current role Aravind works with Wipro’s clients in adoption of Emerging Technologies. He has been championing Digital First Architecture styles for building next generation applications. He has also been working on solution themes to build future Smart Applications covering all architecture layers. In his previous roles he worked as solution and enterprise architect for several complex transformational programs across Banking, Capital Markets and Insurance verticals. Aravind has been with Wipro for 18 years and has been in the industry for 20 years. Aravind has spoken in several conferences on adoption of cloud computing, platform thinking and cloud native architectures.

Read all blogs

Comments (1)

Sachin Jagade - July 27th, 2016

A good and crisp overview on adoption and deployment of microservices. Look forward to reading the next blog on this key subject matter area.

Post Comments