In this video:
- Scott Laningham, Producer, IBM developerWorks TV
Developers are increasingly designing apps to use microservices – this strategy allows developers to decompose a large application into smaller, more manageable pieces, but
- As microservices scale dynamically, problems such as service discovery, load balancing, and failure recovery become increasingly important to solve uniformly
- Individual development teams manage and make changes to their microservices independently, making it difficult to keep all of the pieces working together as a single unified app
- Developers often build custom solutions to these challenges that are unable to scale even outside of their own teams
To solve this collection of challenges, IBM and Google announced the launch of Istio, an open technology that provides a way for developers to seamlessly connect, manage, and secure networks of different microservices, regardless of platform, source, or vendor. The result of a joint collaboration between IBM, Google, and Lyft, Istio supports traffic flow management, access policy enforcement, and the telemetry data aggregation between microservices without requiring developers to make changes to application code. It converts disparate microservices into an integrated service mesh by introducing programmable routing and a shared management layer.
The Istio design is not platform specific; it currently runs on Kubernetes™ platforms, such as the IBM Bluemix Container Service, and the project plan includes support for additional platforms, including CloudFoundry and other virtual machines.
Before Istio, IBM, Google, and Lyft had been addressing separate, complementary pieces of this problem:
- IBM created Amalgam8, a unified service mesh that provided a traffic routing fabric with a programmable control plane to help its internal and enterprise customers with A/B testing, canary releases, and to systematically test the resilience of their services against failures
- Google built Service Control, a technology that provided a service mesh with a control plane that focused on enforcing policies such as ACLs, rate limits, and authentication, in addition to gathering telemetry data from various services and proxies
- Lyft developed Envoy, a proxy that abstracts the network by providing common features (load balancing, circuit breaking, service discovery) in a platform-agnostic manner
According to IBM Fellow Jason McGee,
“It became clear to all of us that it would be extremely beneficial to combine our efforts by creating a first-class abstraction for routing and policy management in Envoy, and expose management plane APIs to control Envoys in a manner that can be easily integrated with CI/CD pipelines.”
Jason McGee invites you to tell him what you think the greatest potential is for this technology.
Resources for you
News and stories about developerWorks and trends in software development.