An earlier blog – ‘Is it Time to Migrate to Microservices?’ – discussed the benefits, trends and challenges in adoption of this architecture. However, while adoption is increasing and businesses are realizing significant benefits, analysts add a word of caution.
Gartner, for example, stresses that microservices architecture is more complex than traditional application architecture and advises against ‘big bang’ approaches. Organizations must be confident that they are ready for microservices.
Careful analysis of benefits and risks, coupled with a rigorous development process and progressive adoption is more appropriate for organizations new to the architecture.
As a starting point, it’s essential to identify the applications that will benefit most from the adoption of microservices. The focus should be on applications that have the greatest requirements for agility and scale – the two leading benefits of this architecture.
Concentrating on these requirements can help developers achieve faster and more flexible delivery of changes and greater scalability for cloud-ready applications. That, in turn, can help the team meet business requirements for applications and services that drive digital transformation.
Platform for Success
But, just adopting a new approach to architecture will not guarantee success. One of the key elements is what Gartner calls the ‘outer architecture.’ This refers to the platforms, frameworks and supporting tools that simplify adoption and provide the capabilities required for microservices to work together and deliver benefits. These capabilities include API gateways, service discovery, monitoring, and build and test automation.
Architectural skills are also important. Organizations with existing architectural teams may have to adapt to new processes and practices through training or recruitment. In the transition period, small-scale development using microservices, combined with traditional processes for less demanding applications can make adoption smoother and build expertise progressively.
The organizational structure may also need to change. Because the microservices approach no longer require large teams working on traditional monolithic applications, a looser, more agile structure is possible. Instead, small independent teams develop, test and deploy loosely coupled components.
Experience indicates that microservices-based teams also utilize DevOps techniques. DevOps and microservices complement each other and support a shared aim of continuous delivery of more frequent software releases.
Successful microservices delivery depends on a number of key processes, including a clear dependency management strategy, loose coupling of services and effective versioning management.
Developers need to access the latest dependencies, so a simple, clear dependency management strategy is essential. This is particularly important as the number of microservices grows because developers need clear visibility into the services their applications rely on. Service discovery tools, coupled with a runtime platform, provide a basis for configuration management.
Decoupling services from data ownership, access and reporting requirements improves agility and ensures services can be independently developed and deployed. Because microservices enable rapid change, a versioning strategy will enable teams to monitor and manage changes.