Is Microservices Architecture a sub set of SOA? (Understanding Microservices Architecture by wearing the Developers Thinking Hat)

In the previous posts we looked in to the basic concepts of SOA. Thought of moving to a new term in the technology world called Microservices Architecture. Actually the term is the only thing which is new to SOA world. The concepts behind the microservices architecture came with SOA. However if you’re not familiar with SOA and compare the microservices architecture with Monolithic applications development then this would be a new concept for you. Assuming you have the knowledge in SOA, we will justify the above argument which is Microservices Architecture is a sub set of SOA.

What is Microservices Architecture?

Microservices architectural style is an approach of 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. – “Martin, Fowler”

Let us concentrate on the definition of microservices architecture and discuss about each special characteristics.

The concept “small services which build around business capabilities”, is a concept we discussed under SOA. Which is Agnostic Logic and Entity Service concept in SOA. Those services are reusable, also concentrate on single small business problem.

The statement “Developing single application as a suite of small services” is yet another well establish concept in SOA known as “Service Composition”. There we have a Service Inventory which is a collection of reusable small services which will help to compose large services / applications.

The newly introduce concept on microservices architecture when compare to SOA is; microservices is individually deployable services which make them very easy to apply continuous integration and deployment. Where in SOA we deploy our services in shared resources. Microservices architecture is more driven by DevOps practices. Mostly deployed in cloud infrastructure, each service has the capability to auto scaling in built. With the immerging container technologies like Docker and surrounding technologies like Mesos and Kubernates will ensure the deploying micro services will be more unwind than ever. This concept will maximize the decoupling of logic and in addition the platform they are deployed. In the long run microservices architecture will minimize the change management cost compare to traditional SOA.

However if you have properly deign and implemented your SOA solution then you should be able to easily deploy your services independently in Tomcat / Nginx application servers across the nodes in your cluster too. Which will cover the key feature in micro services architecture.
In SOA, ESB and BPEL orchestration software plays a major role in building communication structures between different systems enterprise applications. Let’s see how microservices architecture replaces those tools.

 

ESB / BPEL Tools vs Smart Endpoints and dump pipes

Enterprise Service Bus (ESB) main capabilities are message routing, choreography, transformation, and applying business rules. In the microservices architecture ESB capabilities are covered through smart end points and dump pipes. REST protocol with different end points (smart endpoints) which has appropriate logic behind it will ensure the covering of ESB and BPEL orchestration capabilities we see in SOA. Application of a lightweight message bus act as the dump pipes in microservices architecture. It can be simply implemented using tools like RabbitMQ. The key added feature from dump pipes is reliable asynchronous messaging between services which is also common in SOA.

Below diagram illustrate the how microservices architecture differentiate from SOA.

Conclusion

So we can clearly see microservices architecture does not have much difference compare to SOA other than the deployment platform. Further as many articles express; “Microservices architecture is a design pattern of SOA” and Microservices architecture is a new term introduced to latch a new look to very old concept called SOA.

 

References

Udara Wijeratna

Person who is exploring different technology stacks. Always love to learn and take feedback.

49 thoughts on “Is Microservices Architecture a sub set of SOA? (Understanding Microservices Architecture by wearing the Developers Thinking Hat)

  1. Microservices are more specialized form of SOA. if your team is focusing on full stack development you can use micro services to communicate between each services and even it is micro, those services are not that smaller, but you can break down monolithic application into micro services and then can be scaled. the concept of micro services are always focus on each microservice should have separate database system. so always dbs should be in sync or communicate through microservices to join the table data between them. So this would be an impact on performance, however if you are thinking only on scalable, resilience system without focusing on performance, microservices are there for you, At the same time you can achieve this performance with high end deployment architecture which would more likely server farms. This is my idea on microservices.

  2. Hi there, just became alert to your blog through Google, and found that it is truly informative.
    I’m gonna watch out for brussels. I’ll be grateful if you continue this in future.
    A lot of people will be benefited from your writing.
    Cheers!

  3. You’re ѕo interesting! I do not beliеѵe I have read a single
    thing liҝe this before. So wonderful to find somebody with genuine thⲟugjts on this
    subject. Seriously.. thanks for starting this up. Τhis web site is one thing
    tһat is needed on tһe internet, some᧐ne with a bit of originality!

  4. I think everything said was actually very reasonable.
    However, think on this, suppose you added a little information? I ain’t saying your information isn’t good, however suppose you added a headline that grabbed
    a person’s attention? I mean Is Microservices Architecture
    a sub set of SOA? (Understanding Microservices
    Architecture by wearing the Developers Thinking Hat) | SOA Essentials is a little
    plain. You might glance at Yahoo’s front page and see how
    they create post headlines to grab viewers to click.

    You might add a related video or a picture or two to
    grab people interested about everything’ve got to say. In my
    opinion, it would make your website a little bit more interesting.

  5. An interesting discussion is worth comment. I believe that you should publish more about this subject, it might not be a taboo matter
    but generally folks don’t discuss such issues.
    To the next! Kind regards!!

  6. Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your weblog?
    My blog site is in the very same niche as yours and my visitors would truly benefit from some of the information you provide here.
    Please let me know if this ok with you. Thanks!

  7. Thanks for finally writing about >Is Microservices Architecture a sub set of SOA?
    (Understanding Microservices Architecture by wearing the Developers Thinking Hat) | SOA Essentials <Liked it!

  8. Excellent post. I was checking continuously this weblog and I am impressed!

    Very useful information specifically the ultimate phase 🙂 I handle such
    info much. I used to be looking for this certain info for a long time.
    Thank you and good luck.

Leave a Reply

Your email address will not be published. Required fields are marked *