Access and Feeds

Microservices: Are they Worth the Complexity?

By Dick Weisinger

Scaling, resilience and performance are some of the benefits that come with a microservice architecture. Huge applications can be broken up into smaller pieces, and the individual pieces can then be scaled independently.

Leif Beaton, Senior Solutions Architect at NGINX, told InfoQ that “there’s a tremendous array of benefits from going a microservices approach, ranging from the obvious, having more control over what a specific component is doing. Quality control over the overall application becomes easier too because when you update the search system or the payment system or whatever, you don’t have to do a full quality assurance on everything. You just need to focus your efforts on the component in question. There is also less tangible or perhaps less obvious ones. The freedom of choosing whatever technology or language is appropriate for the problem at hand is brilliant. It allows you to mix and match technologies to a much greater extent than would ever be conceivable in a monolithic world.”

But a major issue with microservices is their complexity. A system architected with microservices can easily grow to have hundreds of different services, making it difficult to scale, monitor, track and debug problems.

Mike Tria, head of platform engineering at Atlassian, said that “If every time you’re building some new microservice, you have to think about all of those concerns about security, where you’re going to host it, what’s the IAM user and role that you need access to, what other services can it talk to—If developers need to figure all that stuff out every time, then you’re going to have a real scaling challenge.”

Even Martin Fowler, a major advocate behind the idea of microservices, warned that microservices aren’t always the right answer. “Any architectural style has trade-offs: strengths and weaknesses that we must evaluate according to the context that it’s used. This is certainly the case with microservices. While it’s a useful architecture – many, indeed most, situations would do better with a monolith.”

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Leave a Reply

Your email address will not be published. Required fields are marked *

*