Microservices aren't Micro (web) services
Nitin Gaur
AI~Digital Engineering & Solutions Lead | GenAI Consulting, Architecture, Thought Leadership
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.
Director - Engineering, Big Data and Solutions at Business Intelligence Professionals Pvt. Ltd
8 年Very good. Nicely articulated.
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
Strategy Consultant - Cloud Advisory Services at IBM
8 年Very good read and thanks for sharing your experiences on microservices.
Open Innovation | Startup Acceleration | Digital Transformation
8 年Reflects mature clarity of thought, Nitin