DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Software Design and Architecture
  3. Microservices
  4. Successful Migration to Microservices: Why, When, and How

Successful Migration to Microservices: Why, When, and How

Learn about microservices' role in the future of enterprise development and how to achieve a successful migration.

Mariia Robak user avatar by
Mariia Robak
·
Nov. 05, 18 · Opinion
Like (7)
Save
Tweet
Share
13.99K Views

Join the DZone community and get the full member experience.

Join For Free

When a business application, and hence a development team, gets bigger and reaches a certain size, companies come up against serious management and cooperation bottlenecks. Moreover, if a software product is based on a massive monolith architecture, they face technological challenges as well. In such cases, businesses require a solution to fix the workflow and enhance collaboration on the project.

Microservice architecture (MSA) is an answer to the problems associated with the traditional backend monolith, once its complexity calls for higher scalability.

Big tech companies like Netflix, Amazon, and Uber show how migration to microservices has impacted their business. Non-tech companies benefit too. The case of Walmart revitalizing their online presence with microservices may serve an example of the transformative potential of such architecture for traditional enterprises.

According to recent surveys, 80% of companies are counting on microservices and move towards fully microservice architecture. 9% already base their software mostly on the distributed structure, while 38% combine microservices with the traditional monoliths and 33% are planning to switch in the near future.

migration to microservices

Source: leanIX.

Why: Microservices' Role in Enterprise Software Development

Enterprise applications are usually born as monoliths, for example, MVCs. This usual practice seems reasonable since the support is less demanding and the system works for small scope well. So companies have no need to change anything if it’s working.

Microservices take their business-saving role once the system grows too large to be seamlessly maintained as a whole. A common practice is to break the monolith into small autonomous pieces, each deployed and sustained by an agile sub-team. This way you leave team collaboration issues behind.

Microservices Benefits and Difficulties

Microservices solve many technological and collaboration issues but they are not perfect. Indeed, enterprises adopt this architecture because of distinct advantages crucial for software performance. But the adopters must know what challenges they are going to meet while working with such a system.

Benefits:

  • Independence of elements. A system can work properly without one or several of its elements.
  • Scalability. Firstly, with microservice architecture, you can scale a team more easily. Secondly, higher scalability impacts the speed of development. Every sub-team has its own backlog and delivers independently, so they can move development 5 times faster.
  • Flexibility. If you need to apply or try out new technology, microservices will allow you to incorporate it more easily.
  • Lower entry barrier. Your development team is growing. So, you decide to switch to microservices to improve the workflow. The benefit works both ways: new specialists get into the microservice architecture faster.

Difficulties:

  • Distributed system. There are a lot of connections between multiple modules and databases. Therefore, requests, transactions, data management must be handled very carefully.
  • Testing. The monolith architecture uses the out-of-the-box WAR. A QA specialist just needs to launch the file to confirm the connection of the monolith with the underlying database. Instead, microservices require each service to be verified before starting a test.

microservices-and-monolithic

When: The Right Time to Migrate to Mmicroservice Architecture

Microservices were born to respond to the demands of the modern market. Businesses have to analyze their data, innovate, and launch new products and services better and faster than their competitors. They need to be flexible to meet the changing needs of their customers. Migration to microservice architecture enables them to do this more easily.

However, enterprises normally embrace this kind of solution only when the practical need occurs. In most cases, a development team with more than 25 members starts suffering from collaboration difficulties while maintaining the monolith. So the initiative to adopt microservices often comes from the development team or a software vendor.

Migration to microservices will probably be challenging. But it’s worth the effort in the long run.

How: Ways to Migrate to Microservices

How to integrate microservices into the monolith architecture? There are two fundamental approaches:

1. Split a Core Monolith Into Microservices

This way is difficult and pricey. Full re-platforming may take up to a year of exhaustive work. Such a project will require talented and skillful specialists since microservices are not an ordinary architecture and MSA expertise is hard to come by.

Apparently, no enterprise should adopt such an approach if there is no real need. Companies often decide to take such a radical step when the existing online system gets too bulky and doesn’t cope with the load. So they feel the urge to re-platform the legacy, out-of-date software.

This is not an easy decision to make as it requires substantial investment and manpower. So if you feel like you need to break up your monolith and build a brand new platform with microservices, make sure you have experienced architects well-versed in the subject.

Microservices-03

2. Keep the Monolith and Build Microservices Around It

Once your initial architecture works just fine, why should you remove it?

When your team is getting too large to maintain the monolith and swiftly add new functionality, the possible way-out is to build new features as microservices. So, newcomers will work as subteams, while the core ~25 developers continue with the monolith. Thus the monolith becomes one big macroservice while you build as many microservices around it as you need.

Even if you are outsourcing software development, such an approach is not going to disrupt the work of your team. As a rule, it is easier to hire and onboard new programmers with microservices. In addition, the flexibility of such architecture enhances collaboration and facilitates management of remote teams. For instance, your on-site engineers may work on the monolith and the business logic of your software product, while an outsourced team develops multiple microservices around it.

Nevertheless, the pitfall with this approach is that if you have to reformat your monolith in the future, the process will be a much bigger challenge than going fully microservices at the very beginning. It’s better to think twice and choose a long-term strategy before picking up this option.

Microservices-05

Roundup

Real world situations always differ from theory, and the microservices case is not an exception. An enterprise should always consider its own business needs, industry threats, and possibilities before making a decision to migrate to microservices. These two approaches to implementing microservices are just landmarks to guide you through the process. Your business situation is unique and calls for an original solution. However, change is inevitable and you need to be ready to embrace it.

microservice Software development agile Architecture workplace

Published at DZone with permission of Mariia Robak. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Building a Scalable Search Architecture
  • Microservices Discovery With Eureka
  • How to Quickly Build an Audio Editor With UI
  • How To Use Terraform to Provision an AWS EC2 Instance

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: