An increasing number of businesses are exploring the possibility of leveraging microservices for software development projects.
Microservices are not the right fit for every organization.
This article is meant to provide non-technical business leaders with an overview of the pros and cons of this development architecture along with conditions when making a move to microservices may make sense. It is not a technical expose into the particular structural elements of microservices.
What is Microservices?
Microservices is a relatively new software development architecture. This methodology for creating applications has grown in popularity over the past few years due to its scalability and ability to support multiple coding languages, platforms, and devices.
Major organizations such asAmazon, eBay, Uber, Netflix, Capital One, Sound Cloud, and others are using microservices.
A microservices application is comprised of multiple independent services linked by APIs and other communication protocols such as HTTP, REST, SOAP, and others.
This flexibility allows developers to use a programming language that is best for a particular service task or objective.
For example, a particular service or service cluster tasked with providing in-depth analytics could be built using Python to take advantage of its robust data processing capabilities. A different service tasked with creating reports using information produced by the Python services could be created using a different language such as .NET or JAVA. These services can work together because of the communication mechanisms sharing data among the different services.
Leveraging independent services to build an application offers some distinct advantages such as:
- Easy integration
- Leverage current technology
- Organize code around core functions
- Quicker deployment via faster web container startup
There are also some potential downsides that should be explored including:
- Increased complexity of testing, deployment, and monitoring
- Creating a scalable communication system
- Configuration management
- Refactoring may be cumbersome
- Potential increased memory and computing resources
Is Microservices right for your organization?
It may be time to consider microservices if your organization is facing one or more of the following:
- New market penetration
- Hedge against industry disruptors
- Encourage innovation
- Align capabilities and systems
- Speed up decision making
Moving away from monolithic software architecture is a monumental shift and should not be taken lightly. Moving in this direction is disruptive to your development team that will require significant strategic and tactical changes for effective implementation.
The decision to build applications with microservices can be a wise choice in many cases but must be made after care deliberating and input from key stakeholders.