Microservices is an architecture used to refactor a monolithic application into independently deployable services. These services benefit from being loosely coupled and highly cohesive. This approach is typically taken by companies that are feeling the pains involved growing data stores and slow deployment times that are characteristic of enormous enterprise applications. Companies that migrate their existing applications are better able to leverage the cloud and automation, resulting in highly scalable, quickly deployable, and resilient applications. The advantages of a microservices architecture are beyond the scope of this post. If you are more interested in learning about microservices, their advantages, and why companies choose this route, please review our microservices page.
While a microservices architecture can provide a multitude of benefits, they are not the ideal solution for every organization. When considering undertaking a microservices initiative it will be very important to ensure your organization culture, and business needs align with shifts that will be brought upon by a microservices migration. A good first step in determining if microservices is the right fit will be evaluating the disadvantages and challenges that a highly distributed application can pose, and determining whether or not your organization is prepared to make the switch.
The purpose of this article is to provide an overview of the disadvantages of a microservices architecture in order to provide you with information you will need to address these issues as part of your microservices migration planning.