How a Self-Taught Coder Helped Istio Solve Cloud Native Networking
Managing network connections for an application used to be relatively straightforward. Applications were written and run as monoliths and didn’t need internal connectivity to integrate their constituent parts. And there weren't a whole lot of resources they needed to connect to externally.
Today, the monolith architecture is quickly being replaced by interconnected groups of microservices that rely on the network to talk to each other and to communicate externally. Complicating things further, organizations also increasingly use hybrid cloud and/or multicloud architectures, where different microservices may live on different platforms. They also need to comply with different countries’ data sovereignty regulations.
To enable all this, modern networks must be fast, reliable and highly distributed. They need to support more sophisticated data movement across more complex architectures than before.
Istio was conceived to address the part of this new networking reality that has to do with managing and securing communications between microservices.
Mitch Connors, one of the open source project’s key contributors, compares the service-mesh tool to Kubernetes. Kubernetes orchestrates applications, assigning compute resources to them and automatically keeping the infrastructure in the state that’s required for an application to run, handling failover and scaling as defined by the admin.
Managing Application Networking
Istio does something similar for networking resources, says Connors. When they launch a microservices app, engineers typically "have no idea which services are running in their clusters, and they have no idea which dependencies exist between those services," he Connors explains. Istio inspects network traffic and tells you that "service A is talking to service B, and here are metrics related to it." It can also enforce security and governance policies by, for example, blocking communication between two microservices that have no reason to talk to each other.
In short, "what Kubernetes provides for orchestration and compute Istio provides for your application network," Connors says. This is a big deal because when Kubernetes first appeared, there was no concrete plan for managing application networking in such cloud-native platforms. Istio, and solutions like it, filled this gap.
From Data Entry to the Bleeding Edge of Cloud Native
Connors, who taught himself programming as a way of automating his data entry job and went on to land gigs at Cisco, F5 Networks and elsewhere, started contributing to Istio in its early years. He stayed involved, both after joining Google (which had helped launch the project in 2016) and later when he switched jobs. He remains an active member of the community.
"I spend half my time as an engineer on the Istio project," he estimates. Istio is a Cloud Native Computing Foundation project, and Connors serves as a CNCF ambassador. Connors says "One of the things I find so exciting about Istio in particular, and the CNCF in general, is the idea behind rethinking how applications and infrastructure should be designed and rethought when they move into the cloud," he says.
If you aren’t a developer in the cloud native space, chances are you’ve never heard of Istio or have only a vague idea of what it does. But if you’ve opened a website or a mobile app recently, it’s very likely that an Istio service mesh forms one layer of the stack that makes your experience possible.
Istio is one of the projects Equinix supports with free dedicated cloud infrastructure services as part of the Equinix Metal Open Source Program. The program is a key resource for projects with extensive high-performing infrastructure needs but limited financial resources.
Equinix specifically is a good fit for Istio and generally cloud native apps that need to operate close to end users to reduce latency. Its global data center footprint enables organizations to host applications at the heart of densely populated metropolitan areas. Equinix’s robust dedicated connectivity solutions ensure high performance and extra security.
At Equinix, we feel it’s important to support open source projects that help cloud-native applications deliver great user experiences. But the real heroes are open source contributors like Connors, who recognize and respond to the various gaps that need addressing in order to ensure continued progress of cloud-native technologies.