We are fast-forwarding to an always-on, digitally revolutionized, mobile-first world. And any organisation that fails to adapt to newer ways of working is certain to be left behind as others take a leap and adapt to the market’s ever-evolving needs by incorporating flexible and scalable architectures.

And notably, companies doing away with monolithic architectures and migrating to microservices signifies a fundamental shift in how IT approaches software development. The shift is driven by the confluence of mobile computing, inexpensive hardware, cloud computing as well as low-cost storage.

“As the complexity of working with yesterday’s monolithic architecture increases, the trend of microservices is accelerating. Organisations these days are looking to break the monolithic architecture-based applications into microservices that helps pace up development, reduce time-to-market and help ensure that applications can perform better,” said Harnath Babu, Chief Information Officer, KPMG in India.

Challenges with Monolithic architecture

While it would be easier to build applications on monolithic architecture but as they evolve and require to be updated with new capabilities, more users, more integrations and upgrades, monolithic architecture becomes complex and the apps have to be recorded to factor in the dependencies on developers and delivery teams. Apps built on monolithic architecture also offer limited possibility to reuse and scale up. Another major challenge is that the deployment time is more for monolithic architecture-based applications. Hence, microservices seem that way forward.

Companies like Uber, Netflix, Facebook and Google migrated to microservices even before the world came to know about the technology.

Uber, for example, adopted the microservice architecture around 2012 because it had primarily two monolithic services and ran into many operational issues such as system reliability, scalability, poor separation of concerns and ownership, etc.

“With a large, monolithic application, an organization is forced to deploy or release all of their code at once. Each new version of an application can involve numerous changes. Deployments become risky and time consuming. Anyone could bring the whole system down. Uber has grown from 10s of engineers to 100s and the microservice architecture has helped the engineering teams scale and has given the teams the flexibility to independently deploy and scale their services. Hence, we continue to stay invested in microservices,” said Pallavi Rao, Staff Engineer, Uber.

Uber also experienced firsthand that the microservices architecture brings in complexity in terms of dependencies, which the company has addressed by adopting domain-oriented microservices architecture. Collections of related micro services form a domain. Uber provides gateways that are a single point of entry into a domain with interfaces for domains clearly defined. With this approach, Uber has been able to keep the complexity well managed.

“With the micro service architecture, our systems have become more flexible and the teams building these systems have become more autonomous. Uber currently has over 50 verticals with dozens of sub-verticals and teams owning over 2,000 micro services and the teams are operating these services independently. The decision has helped Uber attain better system reliability, autonomy and developer velocity,” Rao added.

Benefits of Microservices

“One of the benefits of microservices is that they are much smaller and simpler than a larger, monolithic application. Having each microservice logically separated from the others means they can be deployed and scaled independently from others. As an example, if an application receives thousands of sign-ups at a particular moment, its authorization engine might get hard hit. With microservices, only those services can be scaled up rather than the entire application. Scaling horizontally would ultimately lead to saving cost on on-demand cloud resources,” Babu explained.

GigInida- a tech-driven B2B gig marketplace for on-demand work completion shifted from monolithic architecture to microservices and saw business grow exponentially.

“Earlier, GigIndia would take a Gig Job (Work provided by GigIndia’s customer which can be distributed into smaller micro jobs) live on their Android app once in 15 days, and then their gig workforce used to do gigs (A unit of work (micro job) which can be completed by an individual with certain amount of training and get paid for each gig completed). With their traditional native android development strategy, they used to make hardly 3–4 gig jobs live on the app in a month which only resulted in about 10–20k gigs,” said Shubham Chintalwar, Chief Technology Officer, GigIndia.

Last year, the engineering team at GigIndia started brainstorming to build their proprietary Gig Creation Engine and GIANT — a microservice-based ecosystem comprising multiple services automating each stage of gig execution making the company’s tech capable of handling millions of gigs in a month compared to 10–20k earlier.

“The company shifted its native strategy to complete web-based development making the deployment cycle, way faster, and achieve more in less time. This enabled the operation managers to make Gig Jobs go live within 15 mins, compared to 15 days earlier,” Chintalwar said.

Migrating to Microservices

The journey of moving to microservices would be worthwhile, it cannot happen overnight. Organisations need to have a clear roadmap and strategy to ensure smooth and seamless migration.

“The first step would be to identify a simple, low-risk service and gradually move to services that are dependent on vertical capabilities, are critical to the business and subject to frequent release cycles. They should also identify the loosely coupled modules or components that can be migrated incrementally. Each step taken during the migration journey must not only help reduce the cost but also ensure enhancement of the overall architecture,” Babu explained.





Source link