By Vasudevan Gopalan
Do we know the ABC of Digital Transformation? Well, here it is in simple terms:
A – API
B – Backend as Service
C – Customer Experience
Isn’t focussing on the above 3 tenets a smart way for any organization to kick-start their Digital Transformation journey? And that is exactly what Microservices brings to the forefront.
Monolithic architecture system used to previously get built as a single, autonomous unit. Whenever a slight modification or bug fix was needed, it often came with rebuilding and deploying an entirely new version of the application. With the implementation of microservices, processes are simplified, streamlined, easily scalable.
Some benefits listed here,
- Allows to change services as needed by Business, without much cost
- API based connectivity
- Loosely coupled and can communicate with other services using industry standards like HTTP, JSON
- Gives developers freedom to independently develop and deploy services
- Every service can be coded in different programming language (remember the stacks like MEAN, MERN?)
- Better scale up and fault tolerance
- Easily deployable and disposable, making possible even multiple releases within a day
What is Microservice Architecture?
Essentially, microservice architecture is a method of developing software applications as a suite of independently deployable, small, modular services in which each service runs a unique process and communicates through a well-defined, lightweight mechanism to serve a business goal.
Microservices is purely based on Domain Taxonomy i.e. business functionality oriented – for example, fetching balance for a given bank account, calculating tax component for a shopping cart checkout etc.
In case if we are wondering how different from Service Oriented Architecture (SoA),
|Many small components||Fewer more sophisticated components|
|Business logic lives inside single service domain||Business logic could live across domains|
|Simple wire protocols (HTTP with XML/JSON)||Enterprise Service Bus like layers between services|
|API driven with SDKs/Clients||Middleware driven|
Netflix, eBay, Amazon, Forward, Twitter, PayPal, Gilt, Bluemix, Soundcloud, The Guardian, and many other large-scale enterprises, websites and applications have all evolved from monolithic to microservices architecture. Let us get a peek into some of their transformation journeys.
Netflix is the king of microservices. In 2015, JAX unanimously selected Netflix for the Special Jury award, citing the developer team’s huge influence on innovation and IT. In order to keep up with booming demand, Netflix began to move a monolithic architecture to a cloud-based microservices architecture in 2009. At this time, the term microservices didn’t even exist. Operating on a monolithic architecture, Netflix was dealing with rapid growing pains and constant outages when Amazon’s servers went down. Thanks to microservices architecture and modern UI technology, Netflix engineers deploy code thousands of times per day. Today Netflix services 93.8 million users globally, streaming more than ten billion hours of movies and shows.
Amazon: Before, when amazon was on a monolithic server, it was hard to predict how to meet the fluctuating traffic demands. As a result, Amazon was bleeding money and most of the server capacity was wasted during downtimes. Moving to the Amazon Web Services (AWS) cloud allowed Amazon to scale up or down when necessary, reduce the number and duration of outages, and save money. Microservice architecture allowed Amazon to transition to continuous deployment, and now Amazon engineers deploy code every 11.7 seconds.
Ok now, how do we transition to Microservices?
There are 2 ways of doing this,
- Start new application with Microservices architecture right away
- Start with monolith and gradually split and migrate to Microservices
In either approach, below are the steps of importance in the journey,
- Domain Driven Design – Modularize the services based on business context
- Service Discovery – Ability to dynamically discover and access services in order to truly decouple and isolate them
- Containerize – Leverage container technologies like Docker, Kubernetes to offer flexibility to move individual services across multiple environments (development, test, production)
- Build API Gateway – This acts as the façade in a distributed environment such as this, and also becomes the single point of entry of Microservices for client interactions. Leverage this layer for also cross cutting concerns like Logging, Security, Audit trails etc.
To sum up, be it Cloud Adoption or Agile & DevOps based delivery or any digital transformation strategy for enterprises, Microservices are becoming indispensable value proposition.
And the next time when you go online to buy your favourite item, do remember that there are 1000+ microservices that come into the play whilst you happily wade through the landing page at amazon.com 😊
About the author:
Vasudevan Gopalan (Vasu) is a Digital Transformation Leader with rich experience in Engineering, Delivery, Transition, Program and Client Relationship Management with multiple tier-1 IT organizations, with focus in the BFSI domain