News
We are interested in open-endedness at Uber AI Labs because it offers the potential for generating a diverse and ever-expanding curriculum for machine learning entirely on its own. Having vast amounts of data often fuels success in machine learning, and we are thus working to create algorithms that generate their own training data in limitless quantities. In the normal practice of machine learning, the researcher identifies a particular problem (for example, a classification problem like ImageNet or a video game like Montezuma’s Revenge) and then focuses on finding or designing an algorithm to achieve top performance.
Read more
Combining Federation V2 and Istio Multicluster
In a previous post, we saw how to leverage Istio Multicluster to deploy an application (bookinfo) on multiple Red Hat OpenShift clusters and apply mesh policies on all of the deployed services. We also saw that the deployment process was relatively complex. In this post we are going to see how Federation V2 can help simplify the process of deploying an application to multiple clusters.
Read more
Write operators for databases in Kubernetes with KubeDB
Running production quality databases in Kubernetes can be quite a hassle. But KubeDB promises to solve all your problems. Let’s have a quick look at this framework.
You can count on KubeDB to solve your problems when running production quality databases in Kubernetes. KubeDB is a framework for writing operators for any database that support certain requirements. Namely: Create a database declaratively using CRD.
Read more
Kubernetes Failure Stories
I started to compile a list of public failure/horror stories related to Kubernetes. It should make it easier for people tasked with operations to find outage reports to learn from. Since we started with Kubernetes at Zalando in 2016, we collected many internal postmortems.
Docker bugs (daemon unresponsive, process stuck in pipe wait, ..) were a major pain point in the beginning, but Docker itself has become more mature and did not bite us recently. The biggest chunk of problems can be attributed to the nature of distributed systems and ‘cascading failures’, e.g. a Kubernetes API server outage should not affect running workloads, but it did, or see our recent CoreDNS incident.
Read more
Lasers vs. Microwaves: The Billion-Dollar Bet on the Future of Magnetic Storage
For most of the past 50 years, the areal density of hard disks—a measure of how many bits of data that engineers can squeeze into a given area—increased by an average of nearly 40 percent each year. Lately, though, that rate has slowed to around 10 percent. Everyone who works on magnetic storage is well aware of this problem, but only in the past year or so have executives from Seagate Technology and Western Digital, the leading manufacturers of hard drives, very publicly split on how to solve it.
Read more
Deployment strategies for the Jaeger Agent
If you’ve been following the evolution of the Kubernetes templates for Jaeger, you might have noticed an important change recently: the Jaeger Agent is not being deployed as a DaemonSet anymore. Instead, instructions are now being provided on how to deploy it as a “Sidecar”. The Agent component was developed to act as a “buffer” between the tracer and the collector.
This buffer should sit very close to the tracer, usually on localhost. Because of this basic assumption, the tracer can just send the collected spans to the agent via UDP, for an optimal balance between performance and reliability. While this assumption works great for a deployment on bare metal, a question arises when we start to think about cloud environments and containers: what is localhostfor your Kubernetes pod?
Read more
A Crash Course For Running Istio
At Namely we’ve been running with Istio for a year now. Yes, that’s pretty much when it first came out. We had a major performance regression with a Kubernetes cluster, we wanted distributed tracing, and used Istio to bootstrap Jaeger to investigate.
We immediately saw the potential of a service mesh as it relates to our infrastructure and decided to make an investment in the tool. It hasn’t always been the smoothest ride, but we have learned a ton about how it works and how to operate it. This post—the start of series—hopes to explain how Istio integrates with Kubernetes and some operational observations we’ve made along the way.
Read more
Understanding How Envoy Sidecar Intercept and Route Traffic in Istio Service Mesh
This article uses Istio’s official bookinfo example to explain how Envoy performs routing forwarding after the traffic entering the Pod and forwarded to Envoy sidecar by iptables, detailing the inbound and outbound processing. For a detailed analysis of traffic interception, see Understanding Envoy Sidecar Proxy Injection and Traffic Interception in Istio Service Mesh.
Source: medium.com
How to Ship an App Rewrite Without Risking Your Entire Business
This article is the fifth in a series covering how Uber’s mobile engineering team developed the newest version of our driver app, codenamed Carbon, a core component of our ridesharing business. Among other new features, the app lets our population of over three million driver-partners find fares, get directions, and track their earnings. We began designing the new app in conjunction with feedback from our driver-partners in 2017, and began rolling it out for production in September 2018.
Read more
PostgreSQL across clouds and on-premises
PostgreSQL is a very popular open source relational database. It’s been in active development for over 30 years and has achieved a very high level of reliability and performance, as well as a very robust feature set.
If your applications make use of PostgreSQL, you’ll now be able to use Crossplane to deploy both your application and its PostgreSQL database to many of the major cloud providers as well on on-premises. We’ll get more into how you can start using this new support, but let’s first explore a bit of background information on these resources will be provisioned.
Read more