Geeks With Blogs
Suresh c.subramanian

Before Continuing, Please keep in mind this is not a tutorial, there are enough resources and walkthroughs available for details on the topics for SOA and micro services. Below are my thoughts to address repetitive questions, I keep getting on this topic from folks around the world.

Services are the components within the Software system which abstracts functionality at certain “level”. The key purpose of designing and building service is to provide functionality to other sub-systems within the same software system or to some other external software systems.

Some of the industry trends like, Technology evolution, Usage of Connected Systems, Enterprises investing in large Distributed Systems, Popularity and growth of Internet based resources, availability of secure platform over cloud and mainly the enterprises facing Big problems and financial challenges with developing and maintaining large monolithic applications etc… gave immense business value proposition and popularity to the Service Oriented Architecture (SOA) in the community. among many other value proposition, SOA does provide clear architectural patterns and principles for “integration”. It is Important to understand that, SOA does extend beyond the system in scope and sometimes to the entire business. E.g. Bank website may have service based integration with another complex legacy back office system for archival and purging.

Micro services are the software architecture principles to size the service and clearly decide on the “level” of abstraction of the service. Some of the key principles are, the service should be sized and scoped to perform just one function only and perform this well. Automation should be used. The service should be technology agnostic meaning client system or sub-system consuming the service should be able to connect without restrictions on technology. It should be possible to update, deploy and if required also scale the service independently of the impact to the system. Service should be resilient or should be able to recover after failure and without impacting the overall system. Etc… there are many dedicated websites and forum talks available, which explains the micro services architecture principles in more details.

Micro services are sometimes referred as fine grained SOA. However, with the Micro services architecture principles, the focus and guidance is on the depth of the service in the software system and with the SOA principles, the focus and guidance does extend to the overall software and sometimes to the business.

So in summary, Micro services architecture principles are good and must be followed and I don’t think there is any different thinking on software design and architecture is necessary. It is also important to understand that, Micro services principles are methodical and sizable approach to designing service, this may not always simplify the system sometimes this does introduce more complexity.

Let us consider an example, in a web/mobile Micro services based system if a transaction is to be completed by many smaller services than to be completed by only one large service. The transaction should be covered under distributed transaction with these many services interacting between each other, stateless mechanism of communication is mandatory along with consideration of other attributes of distributed communication. This leads to more complex design. On the other hand, for some business use cases which have clear containers like analytics or IoT, there’s no way to beat what micro services based architecture can offer.

In essence, if you are planning to either upgrade the existing system or considering the new design based on Micro services architecture, Technology architects will best be able to trade off and give the guidance based on the appropriate business use case and other dependencies.

Posted on Wednesday, December 9, 2015 7:40 AM | Back to top


Comments on this post: Micro services, is it the fine grained granular SOA?

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © Suresh c.subramanian | Powered by: GeeksWithBlogs.net