Lin wrote this article in May 2020 in refection of Istio’s third anniversary.
On May 24, 2017, IBM and Google announced the launch of Istio, an open technology that enables developers to seamlessly connect, manage, and secure networks of different microservices—regardless of platform, source, or vendor. I’ve been working on Istio since its 0.1 release and want to celebrate Istio’s third birthday by highlighting 5 things about Istio and its future that excite me.
1. Continuous usability improvements
With each release, the community listens to feedback from users and makes changes to simplify Istio’s use. One of our key goals is: Simple scenarios should be straightforward, and complicated scenarios should be possible.
We want to make sure users can quickly get started with Istio service mesh—from installation to onboarding their microservices to the mesh, to tightening the security policy of the microservice communication, and operating the service mesh at large scale safely and securely.
Incremental usability improvements in each release now make it possible to use a single command to install Istio, to describe a given Kubernetes service or pod, or to analyze the whole cluster for Istio resources! With Istio 1.6, I don’t need to look up istio.io to figure out how to install it. We have a nice status output from istioctl install command now.
2. Amazing collaboration within the community
About a month before Istio 1.6, I started to entertain the idea of central Istiod within the community. If you are not familiar with the concept, a central Istiod is where you run an Istiod control plane on a cluster to manage data planes on a remote cluster.
We set a fairly aggressive goal to dark launch this feature in 1.6, and we hit various roadblocks as part of the delivery. Through the wonderful collaboration within the environment working group and with contributors from Google and Haiwei jumping in to help out, we were able to meet our goal of dark launching this feature in Istio 1.6.
The best part is this is just the beginning! We’ve got various working groups excited about this deployment model, how to simplify the concept with zero config on the data plane, how to provide a seamless experience to our istioctl users, and more.
The Istio project has tremendous collaboration where ideas are often challenged and implementations are constantly reworked to create better, simpler solutions for our users.
I’m a firm believer that a diverse community drives better innovation. With 500+ contributors from 300+ companies, I expect Istio to continue to innovate in the service mesh space. And I truly enjoy working with the bright Istio maintainers from various companies — there’s is never a dull moment!
3. Continuous innovation
The project is innovating at a rapid pace and there are so many things going on each week — it can be hard to keep up with the pace of innovation! For example, a goal of ours was to make the onboarding experience as simple as possible for our users, with almost zero change to their existing services. The community implemented intelligent protocol detection for inbound and outbound traffic in Istio 1.3 and 1.4. While automatic protocol detection is great, it causes performance concerns with some users. Now Istio 1.6 directly consumes the appProtocol field in Kubernetes 1.18 Service object.
4. Rich ecosystem
The Istio ecosystemis growing with projects like Admiral, Emcee, iter8, and there are multiple vendors building solutions on top of Istio. Multiple cloud providers offer a managed Istio experience to simplify the install and maintenance of the Istio control plane.
For example, Istio on IBM Cloud enables you to install Istio with a single action along with automatic updates and lifecycle management. Istio-based Satellite mesh service announced earlier this month enables users to easily manage applications across environments. Additionally, vendors are building solutions to allow users to easily extend Istio through its sidecar via Solo’s WebAssembly Hub, or visualize the mesh via Red Hat’s Kiali.
5. The future of Istio
The community is focused on continuing to make Istio easy to use and as transparent as possible, with little or zero configuration. Users should be able to deploy their services into the mesh and enjoy the benefits of the mesh without any disruption. They should also be able to move their services out of the mesh easily if they don’t believe the mesh provides enough value to justify the additional cost that comes with the sidecars and control planes. If we can eliminate the surprises and make Istio boring for our users, that would be a huge win for the project.
As developers and operators journey to cloud-native with microservices, I expect Istio adoption to increase. Users will push the boundaries of Istio—from adopting it in a single cluster, to exploring single service mesh across multiple Kubernetes clusters or services running across virtual machines and Kubernetes. I expect us to continue making stabilizing and securing our multicluster and mesh expansion support while developing mesh federation stories to allow multiple heterogeneous mesh or homogeneous mesh to federate.
If this excites you, come join us and become an Istio contributor to make Istio better. You can join our open Slack, attend the user community meeting or any working group meeting that is of your interest. Once you have a pull request merged, you can submit a membership request to become an Istio contributor and developer!