Microservices aren't Micro (web) services

Microservices aren't Micro (web) services

You must have heard the term “Microservices” already if you’re in IT. For those who haven’t still, the article from Martin Fowler is good starting point that says "Microservices" is yet another new term on the crowded streets of software architecture.

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

Microservices aren’t SOA

Let’s come to the basic purpose of this post which is to throw some light on common misconceptions resulting from the term Microservices. Recently I was talking to a colleague in office who said Microservices are nothing but re-packaging of Service Oriented Architecture (SOA) and may be in implementable way this time around. With this, he joins many around the globe who thinks that Microservices are nothing but SOA done right. This theory is correct but partly. SOA is all about re-factoring your IT applications into components that better align with business needs and expose the service that it needs. SOA takes holistic view of your IT landscape. On the other hand, Microservices Architecture can be achieved within the boundary of single application by breaking down the application into set of Microservices. Essentially, SOA and MSA relate to different scopes. SOA relates to enterprise scope while MSA relates to application scope. You may also call MSA a subset of SOA.

Microservices aren’t SOAP or REST services

Another misconception is that Microservices are simply web services either SOAP style or REST style. Microservices Architecture defines a microservice as combination of component and its interface. The interface is typically exposed as RESTful web service which is preferred style these days over SOAP. But the key point to note here is that the term “service” in “microservice” refers to the granularity of the components and not the granularity of the exposed interfaces.

Microservices aren’t APIs

Often people use (in attempt to throw jargons to other persons) API and relate it with Microservices. This is also not correct. APIs, as the name says, are just interface to expose business functions or utility functions such as security. Microservices are the component architecture to implement those functions. There cannot be direct comparison between APIs and Microservices.

 What is the right comparison then? It is Microservices Architecture with Service Oriented Architecture. As explained above, fundamental goal of both the architectural approaches is to enable re-usable functions as isolated components but at different scale. SOA better relates to enterprise while Microservices is primarily at application scale.

 Understanding Microservices

If you go back to the definition of Microservices architecture style given at the beginning of this post, you’ll get good understanding. You may be wondering why it is called Microservices then and why not Microcomponets. Well, the reason as explained by Martin Fowler is that it is easy to relate with services when describing independently deployable components. Components still reminds us about monolithic application architecture that microservices architecture is evolving against.

 Conclusion

The concepts of an SOA are present in modern architectures but have evolved in several ways. While Microservices is still emerging but if used in conjunction with DevOps (another emerging area), microservices are going to be what we will be developing by the end of this decade. It will be really interesting to watch use of application container technology to enable Microservices architecture. Till then I leave you with couple of Microservices Architecture journeys here and here.

Pradeep Das

Director - Engineering, Big Data and Solutions at Business Intelligence Professionals Pvt. Ltd

8 年

Very good. Nicely articulated.

Rachit Srivastava

Trusted Advisor | Sales GTM | Investor | Data & AI Enthusiast |

8 年

Excellent articulation .. Of late I see a lot of customers confused by sheer use of jargons in already complex technology world

Sanjeeb Bose

Strategy Consultant - Cloud Advisory Services at IBM

8 年

Very good read and thanks for sharing your experiences on microservices.

Ashish Jain

Open Innovation | Startup Acceleration | Digital Transformation

8 年

Reflects mature clarity of thought, Nitin

要查看或添加评论,请登录

Nitin Gaur的更多文章

社区洞察

其他会员也浏览了