Ride-hailing firms Lyft and Uber open-source microservices technology
Ride-hailing companies Lyft Inc. and Uber Technologies Inc. are embracing the open-source software movement.
The two megastartups have both donated technologies developed in-house to the Cloud Native Computing Federation, which is best known for hosting the Kubernetes container orchestrator project.
The CNCF announced the news at the Open Source Summit North America on Wednesday, describing the two new projects as “important” enablers of microservices, which is an architectural style that structures an application as a collection of loosely coupled services that can be combined to form business applications.
Lyft offers proxy
Lyft’s donation to the CNCF is called Envoy. It’s described as a high-performance edge and service proxy that ensures networks are transparent to applications. Lyft software engineer Matt Klein said in a blog post Envoy was built in order to abstract networking complexity away from the application developer.
“The network should be transparent to applications, so when network and application problems occur it should be easy to determine the source of the problem,” said Klein. “Envoy is a universal data plane where it does not matter which system you are in; the mesh just works no matter where the code is running.”
Envoy is written in the C++ programming language and can be used with any application written in any language or runtime, Klein added. Lyft actually made the technology open-source a year ago, and several major tech companies are now contributing to its development, including Google Inc. and IBM Corp. Developers are now working to make Envoy compatible with Kubernetes via the Istio project, the CNCF said.
For those who want a more technical deep dive, Klein penned a blog post in April that explores the problems Envoy solves and its future roadmap.
Uber unveils distributed tracing tech
Not to be outdone, Uber simultaneously announced it was donating its Jaeger distributed tracing system to the CNCF to further its development.
“Distributed tracing allows developers the ability to understand what’s happening inside the flow of an application, which is why it’s a must-have for organizations monitoring their cloud native architectures,” said Chris Aniszczyk, chief operating officer of Cloud Native Computing Foundation.
Jaeger enables tasks such as distributed context propagation and transaction monitoring, root cause analysis and performance and latency optimization in microservices, among other use cases.
“One of the criticisms of microservice-based architectures is that they can become distributed monoliths: complicated, interdependent systems that tend to fail at once due to unforeseen interactions,” said Bryan Cantrill, a CNCF Technical Oversight Committee representative and project sponsor. “Jaeger allows for cross-service observability in a way that is open and language-independent.”
The technology can also be deployed on Kubernetes to help developers better understand the performance of their containerized applications. It’s also compatible with the OpenTracing standard, which GitHub user Adrian Cole defines as documentation and library interfaces for distributed tracing instrumentation.
Uber, which built Jaeger back in 2015, said the technology has been integrated into thousands of its microservices. In addition, Jaeger has been adopted by Linux software company Red Hat Inc., among others.
Yuri Shkuro, staff engineer at Uber and the creator of Jaeger, explains more about the history of Jaeger and its development in this blog post.
Image: Lou Gold/Flickr
A message from John Furrier, co-founder of SiliconANGLE:
Your vote of support is important to us and it helps us keep the content FREE.
One click below supports our mission to provide free, deep, and relevant content.
Join our community on YouTube
Join the community that includes more than 15,000 #CubeAlumni experts, including Amazon.com CEO Andy Jassy, Dell Technologies founder and CEO Michael Dell, Intel CEO Pat Gelsinger, and many more luminaries and experts.
THANK YOU