Today it seems like everyone is talking about the latest new product architecture: microservices. But the question on everyone’s mind is: are microservices architecture a good choice for my company? The answer depends on three main factors.
Having worked with many clients making the switch from monolithic product architecture to microservices architectures, we have come up with a few key aspects to consider when thinking about making the switch to this much-discussed new product architecture.
- System Complexity.
The Microservices architecture is all about handling complex systems, but it introduces its own complexities as well. There are few pre-requisites to use Microservices, including automated deployment, monitoring, and dealing with faults. There are ways to handle these complexities, but they all require additional effort on the part of the development teams—and we all know that when it comes to the world of software development, time is the most precious commodity.
Well-known author Martin Fowler has provided a useful comparative productivity graph between Microservices and Monolith architectures:
Figure 1. Productivity Comparison between Microservices and Monolith, Source: Microservices Premium, Martin Fowler https://martinfowler.com/bliki/MicroservicePremium.html
The complexity that drives us to Microservices can come in many ways, including dealing with large teams, cloud support, multi-tenancy, supporting multi-user interaction models and allowing different business functions to evolve independently.
The verdict: don’t use Microservices unless you have a system that’s too complex to be managed as a monolith. The majority of software system should be built as a single monolithic application while paying attention to good modularity within that monolith.
- System Size
Size is often one of the biggest factors in switching to Microservices, as people find they have a monolith that’s too big to modify and deploy. Today, it’s often said that as system increases in size, you have to use Microservices in order to allow for parts that are easy to modify and replace. However, that’s not to say you can’t make a single monolith with well-defined module boundaries. While it may seem impossible to offer continuous delivery without Microservices, there are organizations—like Facebook—that have succeeded without Microservices architecture.
- Skilled Dev Teams
New product architectures require a highly skilled team to be able to adopt and scale new techniques. Without the proper skill sets, the microservices architecture can become unruly or dysfunctional. The Microservices inherently offers lot of useful design considerations like componentization, smart endpoints, decentralized data management, infrastructure automation and fault tolerance. But it also takes more than just code and structure—it requires a new way of working. It requires a culture in which every developer or team owns some part of the larger application. Microservices is not the ultimate solution for every application, but it’s surely a great option for large-scale enterprises looking to grow and scale dynamically.
So, are you ready for a Microservice approach?
Whether or not the microservice architecture becomes your preferred style of development in future, it’s a potent idea that offers serious benefits for designing and implementing enterprise applications. At Altran, we have recently built several systems using Microservices architecture, and know that others like Amazon and Netflix also use and favor this approach. And while our experiences so far are positive compared to monolithic applications, we know that the architecture should be given the time to mature and people must acquire necessary skills before jumping on the bandwagon.
- Digital Transformation of CSPs through Microservices Architecture
- From Monolith to Microservice: Towards a new API Strategy
- Microservices Enabling Multi-Industry Applications
To find out more about whether or not a microservices architecture is right for your company, make your move with an Altran Product Services and Support expert today.