Today’s monolithic applications are starting to become too big and too complicated for developers to maintain. When developers want to update a feature, they are forced to update the entire application. To solve this problem, organizations have been turning to a new software development approach: microservices.
“Microservice architecture is the idea that rather than building large monolithic applications, where you have one enormous thing that tries to cover thousands and thousands of different pieces of functionality and lots of different business services, we are going to try to break these out into smaller components, each of which represent an individual business action,” said Andrew Phillips, vice president of product management at XebiaLabs. “And then we are going to treat them as independent applications, which can be written and easily updated.”
Monolithic applications have served the software development industry very well for the past 10 to 15 years as organizations have been delivering solutions in the enterprise and on the Web. But when organizations look to deliver software on a continuous basis, the monolithic architecture falls short, according to Bob Familiar, practice director of cloud and services at BlueMetal Architects, a Boston-based software consultancy.
“The reason is that as you are making changes to that software, you are touching the entire surface area of that solution,” he said. “So things like regression testing, any time you touch it, add content, add a new capability, the entire system needs to be regression tested, has to go through the testing stage, and then the entire software product has to be put into production. That is a very heavyweight operation.”
The promised benefits of microservices
Moving to a microservice architecture is no easy feat. As with any other methodology, it takes time, money, dedication and a culture change to bring a new world of development into the life cycle. But do the benefits outweigh the costs? That depends, according to Phillips.
“Microservices is a promising approach, but adopt it with two things in mind,” he said. “Adopt it if you have a problem that microservices is likely to solve, and that typically is you are stuck and can’t deliver as fast as you need to. And don’t expect it to be an easy ride.”
Once you decide microservices are something that can help your organization, the benefits can be quite promising. “The biggest benefit is probably the speed of change, speed of adaption to new conditions, and speed of responding to new opportunities with new services,” said Pierre Fricke, director of product marketing at Red Hat.
Microservices also brings organizations an ongoing stream of improvement, according to Phillips. “Customers are expecting innovation and change at a much more frequent and incremental level,” he said. “With microservices, organizations don’t have to worry about spending time, expense and taking risks to push out so many changes at the same time. There is no more waiting six months for things to come out.”