People either love or hate the idea of microservices. I must admit that I was in the former camp initially but have changed my mind over the last six months. Originally, I had thought the management of a plethora of individual services that make up a full application would be fraught with error and troublesome to both development and operations staff. However, over the last year we have seen a rise in popularity of a key piece of technology that is now enabling us to take advantage of this design pattern in a more efficient manner. This new technology is the rise of the container application platform and the tight integration with DevOps principles around automation and scalability. An organization can implement DevOps without microservices, but should not implement a microservice architecture without a DevOps culture.
Are microservices the right solution for every application? Of course not. However, if you think that your application could take advantage of scaling independent components, give it a look and see if it fits well with the goal of your application.
Of course, let’s not forget about the reuse aspect of microservices. Having your application logic broken up into independent components will afford you and your development team a tremendous amount of flexibility in reusing code across projects as well allow for a true polyglot environment where you can finally use the best tool for each individual task.