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.”
And yet, the above definition leaves us with yet another question: what does it mean for a unit of execution to be fine-grained? The obvious answer is small, as in micro, the prefix that gave microservices their name. But does this notion hold water?
Read the entire article at http://www.slideshare.net/PaulSpeers1/devops-perspectives-edition-3, page 20.