Amitav Roy

Blog on web and travel

Microservice architecture, it's Business and development benefits

Posted on 21st December, 2020 by Amitav Roy

Microservice architecture, it's Business and development benefits

In today’s fast changing market adoption to change is paramount. It doesn't matter how big a company or business is. If they are not quick to adapt to changes, then they can face disruption very soon. One example would be how Nokia which was a leader in the mobile market is now almost non-existent.

Microservice architecture allows companies to leverage rapid development. Also, it allows them to try out things which are cost-effective and maintainable. Big giants like Amazon, Netflix, Twitter and PayPal have embraced this architecture and gained huge benefits. According to Camunda research, 63% of companies are using this architecture with improved employee efficiency.

What business benefits can one get from Microservice architecture?

Close to business models - easier to understand

One big advantage of this architecture is its ability to map to any business models. For example, a business owner may not understand what repositories and singletons are. But when you talk about services which send emails or do Invoicing and stuff, it will resonate with him.

You can almost compare Microservices like Lego blocks. You break down the entire business into smaller parts. Once you have identified those, you build services for that which are your Lego blocks. And, when you join all the Lego blocks, you get a wonderful output.

Faster time to market for new services and features

Microservice architecture allows better maintenance and development of new services or features. Let me give you a real life example to explain. Let’s say our video application wants to build a new recommendation engine. It is going to try out different algorithms to do AB testing and figure out what works best for the end user. Also, there is a need to add a new payment method to the application using some new Payment gateway.

Based on the requirements we are looking at adding a new service which is going to handle the recommendation of videos. Also, there needs to be some changes required to the Payment related service as well. Because these services are independent, the development will happen without any conflict. And, they can have completely different release cycles. This helps the development team to focus on the recommendation engine without disrupting the work on the new Payment gateway implementation. And, it also helps increase the efficiency of the development teams and get more work done.

So, we can even see that this architecture helps in reacting to trends, and allows faster time to hit the market.

Right use of technology for business needs

One more strong point of this architecture is that it allows you to compose a solution with different technologies. For example, we have a Monolith application built in PHP. It’s not the best way to put in place a Machine Learning algorithm for the recommendation engine that we spoke about, right? We would prefer to have this thing done using Python or Node. This is the power of having a Microservice architecture. Your solutions are always built using the tools best fit for those requirements. You can have services like Comments which might be running on a NoSQL solution. And, you can use an ACID compliant database for your payment related stuff where transactional guarantees are more important.

Better fault isolation

It doesn’t matter how good the development team is, errors are bound to come. Even Gmail was down for quite some time. So, it is important to reduce the risk when code goes to production. When working with Monoliths, dependencies get created inside the codebase. One part of the code interacts with another part of the code. And when errors happen in such situations, the impact is big.

But Microservices are small pieces and so if one goes down, it doesn’t mean everything will go down with it. If your email Microservice is down, the reset of the application can still work. This way, Microservices provide more fault isolation.

Easier to test components

With a Microservice architecture, the scope of testing becomes easy like development. You only need to test stuff which has changed. Rest of the modules are independent and hence chances of them going wrong is unlikely. This ensures smaller test cycles and hence faster turn around time.

Continuous delivery

Now, because development is rapid and frequent, delivering value is quick and easy. In this kind of architecture we can have many moving parts. Each of them is like a container which can be deployed on its own. And the strategy to deploy an individual container can be different as well. And that’s where automation in delivery or what we call Continuous delivery comes into picture. It’s a fancy word to automated deployment of your code. It allows faster code deployment to add value to the product. And it also increases the confidence to ship code to production.

Conclusion

These are my views on the Microservice architecture. I have seen a lot of benefits in doing development using this architecture. It has improved my approach to building better solutions. It also helps in getting the most out of smaller teams. They can focus on doing individual pieces of applications. And, the quality of the application is maintained as well.

Share your thoughts and experiences about this architecture. Let me know how it helped you in providing scalable solutions.

Comments

Amanda on 17th September 2021
The Developer Bot on 17th September 2021
Python Roboto on 17th September 2021
Elgar Mokaya liked on 28th June 2021
Nader Ahmed liked on 27th June 2021
Md Shadab Alam liked on 27th June 2021
Padam Shankhadev liked on 27th June 2021
Himanshu Sharma liked on 27th June 2021
Lucasoft co.uk liked on 27th June 2021
Dhiraj ⚡ Kumar on 27th June 2021
Dhiraj ⚡ Kumar liked on 27th June 2021
Varun yadav liked on 27th June 2021
~HH CBZ_classic fan~ on 27th June 2021
BOT Kitty 🐈 on 27th June 2021
lhl722 liked on 27th June 2021
Sarthak (100DaysOfAWS) on 27th June 2021
Camila Clement Bot on 27th June 2021
Iña Retegui liked on 27th June 2021
CodersNotes on 26th June 2021
Zubair Mohsin liked on 26th June 2021
Amitav Roy replied on 26th June 2021
Thanks 👍 <a class="u-mention" href="https://twitter.com/TanzimIbthesam"></a>
Fun Bot liked on 26th June 2021
Tanzim Ibthesam replied on 26th June 2021
Wow this is the place where you differentiate between a developer and a Software engineer <a class="u-mention" href="https://twitter.com/amitavroy7"></a> <a class="u-mention" href="https://www.amitavroy.com/"></a>
Amitav Roy replied on 10th January 2021
Oh those are being rendered using Web mentions. Thinking of removing it now actually. <a class="u-mention" href="https://twitter.com/ManghwaniManish"></a>
MMM replied on 10th January 2021
It seems like comment section is not getting rendered. <a class="u-mention" href="https://twitter.com/amitavroy7"></a> <a class="u-mention" href="https://www.amitavroy.com/"></a>
Nicolas Zein 🇺🇸🇫🇷🇨🇩🇨🇬 replied on 26th December 2020
Tell me about the other options please? Specifics are always nice! <a class="u-mention" href="https://twitter.com/amitavroy7"></a> <a class="u-mention" href="https://www.amitavroy.com/"></a>
Amitav Roy replied on 26th December 2020
Although not mandatory. But yes, if you are doing microservices then doing that along with docker does make sense. <a class="u-mention" href="https://twitter.com/congonic"></a>
Probir Dey liked on 26th December 2020
Nicolas Zein 🇺🇸🇫🇷🇨🇩🇨🇬 replied on 26th December 2020
Great article. Essentially use docker right? <a class="u-mention" href="https://twitter.com/amitavroy7"></a> <a class="u-mention" href="https://www.amitavroy.com/"></a>
FormBot on 26th December 2020
BallerinaNews liked on 26th December 2020
Amitav Roy replied on 26th December 2020
You can have a microservice for entire authentication. Now multiple other services rely on that for authentication and authorisation. Email can be one more. Got the point? <a class="u-mention" href="https://twitter.com/TanzimIbthesam"></a>
Geet Purwar liked on 26th December 2020
Tanzim Ibthesam replied on 26th December 2020
Is Microservices like different Service for a different feature. Like make login with Laravel chat with node Js something else with Django maybe ticket booking <a class="u-mention" href="https://twitter.com/amitavroy7"></a> <a class="u-mention" href="https://www.amitavroy.com/"></a>