

"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." Brick-by-brick, but how 'micro' do you go? They are designed to do one thing very well," according to Janakiram. "Microservices are fine-grained units of execution.

Perhaps the best definition comes from Janakiram MSV, principal at Janakiram & Associates. And like most overhyped ideas, this one has generated its fair share of confusion as well. Starting with the seminal 2014 article by James Lewis and Martin Fowler, the idea of microservices has taken on a life of its own.

But as with so many buzzwords, people struggle to understand the value. "Microservices" is among the hottest of new buzzwords. It's time to reinvent the notion of service for this new level of understanding.Įnter microservices. And we're getting up to speed on containers as well. We understand the principles of cloud architecture, including horizontal scalability, elasticity, and automated recovery from failure. We are now comfortable with JSON as a more flexible alternative to XML. Beyond the buzzword: Reinventing 'service'Ĭut to 2015. And worst of all, web services suffered from complex spaghetti code with an interface that was every bit as messy as before. Vendors couldn't agree on the specifics, which led to incompatibilities. However, web services were plagued by a host of issues. In other words, web services were the bumps on the building blocks-all following the same set of rules, so that regardless of the underlying software, you'd get the benefits of plug-and-play modularity. Web services were a set of XML-based standards that gave existing software an easily integrable interface-at least in theory. The notion of web services from the early 2000s was an important milestone in the Lego-ization of enterprise software. If only we could treat software as Lego blocks, the reasoning goes, we could mix and match various bits and pieces, building flexible applications by simply snapping their components together. Ever since subroutines appeared in early attempts at computer programming, developers have tried to modularize their code.
