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. Data Engineering
  3. Data
  4. Challenges in Implementing Microservices

Challenges in Implementing Microservices

Learn about the top challenges in implementing microservices architecture so you can strategize and avoid them to reach microservices success.

Hariram Ananthasubramanian user avatar by
Hariram Ananthasubramanian
·
Sep. 16, 18 · Opinion
Like (9)
Save
Tweet
Share
38.94K Views

Join the DZone community and get the full member experience.

Join For Free

We live in a world of microservices. "Monolith to microservices" is a phrase we hear from more than 70% of technology leaders today. The benefits are well-documented: increased resilience, improved scalability, faster time to market. Like most transformational trends, implementing microservices poses its own challenges. It is imperative that these challenges are well understood, or be prepared for your project to never see the light of day, or finish it to only see that many of the foreseen benefits are not being achieved.

Here are some of the top challenges that organizations face in their microservices journey:

Managing Microservices

As the number of microservices increases, managing them gets more challenging. It is important that management is planned before or while microservices are being built. While the modularity helps, things can very quickly get out of hand if not managed well. Many engineering leaders have stated that the mismanagement of these services is as much a problem as problems faced during the initial stages of the transformation from monolithic applications.

Developing microservices management tooling on your own, although a valid option, can be complex and cumbersome. We recommend looking to acquire a platform whose capabilities include microservices management.

Monitoring

The traditional forms of monitoring and diagnostics will not align well with microservices since you have multiple services making up the same functionality previously supported by a single application. When a problem arises in the application, finding the root cause can be challenging if you do not have a means of monitoring and tracking the path a specific request took, like how many and which microservices were traversed for a specific request coming from a user interface.

We have seen customers who struggle to analyze the chain of communication across these services and where issues were potentially introduced. This video is a good watch on this topic.

Embracing DevOps Culture

Separate teams need agility, autonomy, and continuous delivery to be able to deliver initial releases and subsequent iterative changes. A lack of DevOps culture can bottle up releases and impact the overall time to market and the response to business requests and issues.

Fault Tolerance

It is important that individual services do not bring down the overall system. Fault tolerance at the service level, and more importantly, at the overall solution level, is critical. Given the complexity of a microservices environment and the complex dependency chains, failure is inevitable. Microservices need to be able to withstand both internal and external failures. Robust resiliency testing is key to successful issue preparedness.

Testing

Testing is much more complex in a microservices environment due to the different services, their integration, and interdependencies. The team members responsible for quality assurance need to be knowledgeable on the order and channels of communications between services to have full coverage in their test cases. The asynchronous aspect of microservices also makes it harder to test in lower environments. Indistinct behaviors from microservices are harder to predict and validate.

More details on microservice testing challenges can be found here and in this insightful post.

Design With Failure in Mind

While this is counter-intuitive to many, expecting failure scenarios and building a robust set of microservices is imperative to a successful implementation. When more failure situations are predicted during design, the more exception handling mechanisms will be built and seamless resolution of issues will be handled better. This is easier said than done.

Cyclic Dependencies

Source: queue.acm.org.

Dependency management across different services and their functionality is very important and cyclic dependencies can be a headache if not identified and resolved promptly. In microservice architecture, you’re even more vulnerable to errors coming from dependency issues. Decisions made around upgrades on related services with these dependencies are critical. This post discusses tracking and controlling dependencies in detail.

Good luck with your microservices journey!

microservice

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Image Classification With DCNNs
  • Tech Layoffs [Comic]
  • Last Chance To Take the DZone 2023 DevOps Survey and Win $250! [Closes on 1/25 at 8 AM]
  • A Simple Union Between .NET Core and Python

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: