Microservices architecture, in which monolithic apps get broken down into a set of distinct services, goes well with containers and orchestration.
Containers (eg, Docker) provide a way to manage and run microservices so that they're insulated from each other, and orchestration (eg, Kubernetes) provides a way to juggle all the containers, spinning them up or down as needed.
But operating multitudes of microservices across countless virtual bit-bins creates a management and maintenance challenge, particularly at scale. It can be difficult to identify issues in computing clusters.
Google, IBM, and Lyft on Wednesday released an open-source project called Istio to make microservices easier to oversee.
"Istio is a layer of infrastructure between a service and the network that gives operators the controls they need and frees developers from having to solve distributed system problems in their code," explained Varun Talwar, product manager for Google's Cloud Service Platform, in a blog post.
The initial release supports Kubernetes environments, but support for other technology such as virtual machines and Cloud Foundry is expected in the months ahead. Datawire, Red Hat, Pivotal, and Tigera have already voiced support for the project.
Diógenes Rettori, product manager for Red Hat OpenShift, in a blog post explained that Istio benefits microservices by moving language-specific infrastructure concerns into a mesh service layer within Kubernetes.
"Istio creates a platform-level service mesh to address common microservices architecture concerns like secure communication, load balancing, traffic routing, metrics, quotas, authentication, rate limiting, circuit breakers, timeouts, automatic retries, and others," he said.
Linkerd offers similar functionality for traffic management, but doesn't address other microservice issues like authentication or policy controls. It's available on a broader set of infrastructure at the moment, however.
Istio builds on Lyft's open source proxy Envoy by integrating it with elements from IBM's Amalgam8 project and Google's Service Control. In essence, it connects microservices by adding a proxy into the network paths between them, offering the cohesion of a monolithic app with the freedom afforded by service separation. ®