Why Microservices Matter
Developers use microservices both to create new apps and as a pattern to break apart and refactor legacy monolithic apps. Adopting a microservices architecture can have a number of benefits, including helping to release software faster, update software more frequently, and add new features more quickly.
Organizationally, a microservices approach lets you dedicate smaller teams to smaller sections of the overall system. As these teams work independently, they can deliver updates faster. Microservices improve your team’s ability to innovate, unblock creativity and release more frequently.
The evolution to a microservices-based architecture was natural — after all, it significantly improves software delivery and productivity, benefitting both developers and the organizations for whom they work.
Microservices Routing: Benefits & Challenges
When developers have hundreds or thousands of workloads with multiple instances for each service, it can create a huge management burden that’s overly complex and significantly affects time to market and software delivery performance. This impacts the profitability of an organization, said Dilleswara Anupoju, principal software architect and engineer at Comcast, during a presentation at the virtual 2020 Cloud Foundry Summit North America.
Service mesh, which manages service communication in a microservices-based system, offloads all of the infrastructure and operational complexities from the application code so developers can focus on writing code rather than getting bogged down in infrastructure plumbing, he said.
These benefits come at a cost, however, particularly as it relates to operational infrastructure complexities. Challenges including service discovery, backups, observability, API gateways, monitoring, security, CI/CD pipelines, and more must all be overcome to achieve the desired outcomes of microservices routing.
Read also: Context Path Routing for Creating and Managing Multiple Microservices
One flexible and robust way to overcome service discovery issues in a cloud native environment, for example, is to have a central repository that eliminates the need to file a ticket and wait weeks for a resolution, according to Anupoju.
This extends to zero-trust networking security as well. Just because a web server can talk to a data server doesn’t mean it should, he said. Creating policies at the logical service layer and tying it back to a central repository allows developers to put rules in place with respect to which services can and should talk to each other.
How to Choose a Service Mesh
Multiple service mesh implementations are available today, but it’s important to look beyond the capabilities or feature set of these options and consider other aspects including maintainability, community support, observability, and documentation.
Most implementations cover the major requirements, but each provider has its own strengths and weaknesses. It is critical that organizations weigh their options based on unique needs, desired outcomes, the skill set required, and the level of complexity they’re willing to confront on this journey.
Watch the complete Cloud Foundry NA Summit 2020 panel “A Practical Guide to Approach Microservice Routing Tier for a Smooth Sail” below: