September | 2015
A modern legend says that Isaac Newton, in spite of being a genius, had built two doors for his cat house, a big one for his cat and a smaller one for its kittens, not realizing that both could have used the same big door. Let’s see whether this "one-size-fits-all" philosophy relates to the evolving world of Service Oriented Architecture (SOA).
SOA is an architectural approach that facilitates building of reusable business services on top of a layered, secure and integrated solution. The value realization achieved from SOA can be and has been debated. The side-effects of adopting this architectural style has been a creation of complex, course-grained and tightly coupled services built on top of a monolithic application. And such SOA services are hard to change, deploy on multiple platforms to meet the performance.
As the need to build internet scale applications has risen - with the advent of mobile devices and digitization of enterprises - the concept of micro-services has come into existence and has a major role to play. Micro-services is a software architecture style in which small, independent and truly decoupled services are built which possess the following characteristics:
Characteristics |
How does it help? |
Designed with optimum scope of responsibility and are preferably fine-grained |
Separation of concerns, ease in managing dependencies and greater control of service behavior by enforcing specific rules and policies |
Built as independently deployable units which can be hosted on any platform/container |
Prevents putting "all eggs in one basket" and provides, parallel development and deployment flexibility to achieve scalability |
Provide high interoperability in a distributed environment |
Ease of interconnectivity which facilitates plug-n-play approach |
From a 50,000 feet view, developing micro-services seems nothing more than decomposing/ rationalizing existing monolithic SOA services. However, in actuality, it warrants the need of Micro-Services Oriented Architecture (Micro-SOA) because this will not only bring a radical change in how we identify and design services but will also impact the underlying infrastructure and systems that hosts and supports it.
For example, if a micro service relies on system of records being maintained in a legacy or mainframe system, then the benefits of performance or scalability can’t be achieved unless the system causing the bottleneck is replaced or a replica of the data is bundled with the micro service. This leads to the complication of keeping the data in sync between the legacy systems and micro-service data store.
So what are the key takeaways?
© 2021 Wipro Limited |
|
© 2021 Wipro Limited |
Pharmaceutical & Life Sciences