Microservices architecture (MSA) enables faster innovation by allowing developers to be more agile. But its disaggregated architecture leads to an exploding endpoint problem, making communication among these endpoints a challenge.
Service Mesh’s like Istio were introduced to tackle the following challenges of MSA:
Development teams now have to consider service discovery, network resiliency, and security apart from solving real business problems
DevOps need to ensure that their deployment engine rolls out frequent releases without disrupting the end users
Istio reduces the complexity of managing microservices by providing a uniform way to connect, secure, control, and monitor microservices. It is deployed as a sidecar proxy that intercepts all communication between microservices. Its functionality includes:
Automatic load balancing
Fine-grained control of traffic
Support for access controls, rate limits, and quotas
Metrics, logs, and traces for all traffic
Secure service-to-service communication
The business logic is contained within the microservices. To gain value, these services need to be exposed to internal and external parties via APIs.
WSO2 API Manager goes beyond just managing the development, deployment and resilience of microservices to provide broader business value for organizations in all stages of the API lifecycle. This includes designing, publishing, documenting, analyzing, and monetizing APIs in a secure environment.
It’s a common misconception that implementing a service mesh means there is no requirement for API management. But the key difference is that Istio manages services and WSO2 API Manager manages APIs.
By combining the capabilities of both, you create a completely open source end-to-end solution for your entire business functionality — from microservices to APIs to the end consumer. This includes
Service development and deployment
Microservice and API security
Operational and usage metrics
While Istio provides data plane and control plane capabilities, WSO2 API Manager provides management plane capabilities to manage microservices. You can use Kubernetes API Operator to apply API management to your microservices. There are 3 main approaches you can select from.