Conduit, a relatively new light-weight, community-based service mesh from the folks at Buoyant has officially been merged into the Linkerd project and released as Linkerd 2 (Beta). Last week, with the tweet "The @runconduit code merge is complete...", Conduit became the next generation of the popular Linkerd service mesh. In addition to the regular Linkerd 1 releases, Linkerd 2 (beta) artifacts are now being generated. Linkerd 2 code is fully open source and available on their github repository. Conduit 0.5.0 is its last official release of the Conduit project.
Linkerd was created by Buoyant co-founders William Morgan and Oliver Gould in 2015. Building on top of Finagle (the extensible RPC system for the JVM developed at Twitter), Linkerd is used to construct language neutral, polyglot microservice applications designed for high concurrency use cases at places like Expedia, Monzo, Salesforce, and PayPal.
Linkerd is one of several extremely popular tools called a "service mesh" (others include Istio / Envoy, Cilium and Consul Connect). A service mesh is a dedicated infrastructure layer for handling service-to-service communication. Used to help solve some of the complexity with operationalizing microservices, a service mesh encapsulates best practices around things such as observability, retries/timeouts, service discovery, and dynamic routing that often cripple Microservice deployments.
Conduit, initially developed as a separate project also by the folks at Buoyant was written in Rust for the data plane and Go for the control plane, was introduced late last year as a lightweight alternative service mesh. Designed as a low-resource sidecar deployment with Kubernetes, Conduit took an opinionated approach to service mesh implementation with the goal of reducing configuration and drastically reducing resource overhead. The result was a significant improvement in resource overhead, performance, and ease of deployment.
Gould, now the CTO of Buoyant and core contributor to Linkerd 1 and 2, answers the question why Conduit?
Conduit's lightning-fast Rust proxies are ~10mb per instance, have sub-millisecond p99 latencies, and support HTTP/1.x, HTTP/2, and gRPC. Conduit can be installed in seconds on almost any Kubernetes cluster and applied incrementally to just the services you're interested in."
Asked if the intent was to merge Conduit into Linkerd all along, Gould replied:
When Conduit launched, our hypothesis was that we could build a dramatically simpler solution to the problems that we've spent the last several years helping Linkerd users tackle: monitoring, reliability, and security of their cloud native applications. Furthermore, we were pretty sure that we could do this using only a small fraction of the system resources that Linkerd requires. But this was a risky move, and it didn't feel right to our many Linkerd production users to call it "Linkerd" until we were sure it would be successful.
After just seven months of operating the two projects separately, Gould and the team felt that Conduit was worthy of "bearing the Linkerd name" and on June 26 Morgan (after discussions on the Linkerd maintainers mailing list) opened an issue to unify the two into a single project. The goal was realized with last week's code merge complete tweet.
What does this mean for existing users of Linkerd 1? Gould says both projects will continue to be developed.
Linkerd 1.x will continue to be developed in parallel with Linkerd 2.x. We're working with the community to put together a migration roadmap that outlines each step along the path.
Now that the two projects have merged, what does the roadmap look like going forward? Gould says they are focusing on making the debugging experience for service owners amazing. "Taking the already excellent metrics and tooling built into Linkerd 2, we're adding powerful CLI and GUI tools to assist in locating exactly what the issue is with a specific service." Linkerd users will be able to quickly understand exactly what is causing issues, whether it is a latency problem, a specific endpoint returning invalid responses or unreliable dependencies.
Look for another release of Linkerd this August.