One of the hottest new terms in the world of enterprise computing is the microservice. Starting with the seminal 2014 article by James Lewis and Martin Fowler of ThoughtWorks, microservices have taken on a life of their own – and as with any other overhyped term, they have generated their fair share of confusion as well.
Perhaps the best definition of microservices comes from Janakiram MSV, Principal at Janakiram & Associates. “Microservices are fine-grained units of execution. They are designed to do one thing very well,” according to Janakiram. “They contain everything from the operating system, platform, framework, runtime and dependencies, packaged as one unit of execution.” As a result, “a microservice architecture promotes developing and deploying applications composed of independent, autonomous, modular, self-contained units.”