Demystifying Microservices: What Happens When You Share
In the previous post in this series, we discussed how organizations are expanding their use of microservices, and how that leads to various struggles and complexity. Here, we take a look at the roles that APIs and service meshes play in successful microservices strategies.
Shared microservices are packaged as APIs
Microservices present management challenges from two angles—the complexity that arises from a growing network of microservices and the intricacies that result from sharing microservices as APIs with new teams and developers.
To conquer the first challenge, enterprises must recognize that as they increase the number of microservices in production, the complexity of managing service-to-service communications within even a single team can dramatically increase. It’s important that developers be able to focus on the functionality microservices provide rather managing the complexities of how they interact.
For this, businesses are increasingly using a service mesh such as the open source Istio project. A service mesh provides a uniform way to connect, secure, manage, and monitor microservices without forcing developers to (probably inconsistently) bake these features into their service code.
Moving to the second challenge, as enterprises share microservices, they need APIs to package them for easy developer consumption. Any time a microservice is shared outside the team that created it, the microservice should be presented as an API.
APIs need to be managed
Without management, an organization can’t gauge how reliable its systems are and how developers are adopting APIs and microservices. Without API management, the organization cannot determine how easy it is for developers to consume APIs, control who consumes APIs, and dictate how much traffic each API consumer uses. The organization has no assurance developers are implementing security precautions properly—or at all.
When a business wants to scale microservices to new teams, partners, and developers, API management must become a cornerstone of its strategy.
Doing microservices well, then, means two things: applying a service mesh to maintain resilience and security while freeing developers from having to implement these solutions into their code; and using well-managed APIs to extend the value of these microservices beyond the teams in which they were created.
In the next post, we’ll discuss how all of these elements fit together into the microservices management stack.
For more, read the Apigee eBook “Maximizing Microservices.”