Uber: 'Infrastructure as Code' Drives Growth
LOS ANGELES -- Open Networking Summit 2018 -- Uber relies on homegrown software and automation to drive explosive growth in its global business, according to a keynote presentation by the company's software and network head.
Uber is a prime example of a trend driving enterprise IT: As connectivity becomes more strategic to enterprises, their networks start looking more like service providers.
Like service providers, modern enterprises rely on networks to power their businesses, and these modern enterprises require the same reliability and performance for their networks that service providers have required for generations.
Take Uber, for example. Its business model is a century old. It dispatches cars to pick up passengers. But networking and cloud technologies have enabled Uber to completely transform that business into something entirely different and new.
"Uber started in 2010 to solve a simple problem: How do you get a ride at the push of a button," Justin Dustzadeh, Uber head of global network and software platform, said in a Wednesday keynote at Open Networking Summit -- a conference dominated by service providers rather than enterprises.
Fast-forward to today: Uber provides 15 million trips per day in over 600 cities in 78 countries, with more than 75 million monthly active riders and 3 million active drivers globally. It topped 5 billion trips in May 2017, with 4 billion trips in 2017 alone, Dustzadeh said.
There's plenty of room to grow. Today, ridesharing is only a low-single-digits share of total miles traveled globally, Dustzadeh said. And Uber is branching into other businesses, including Uber for Business travel management services; UberEATS food delivery; Uber Health transportation services for healthcare patients; and Uber Freight, matching carriers with shippers.
"For us the only way to be able to deliver the required levels of performance and availability is through software and automation," Dustzadeh said. To achieve those benefits, Uber must always strive to use open standards and technologies, avoiding dependencies on any single vendor across the entire infrastructure stack.
Uber needs to achieve near-real-time visibility into infrastructure, using programmatic interfaces to push desired state of infrastructure with assistance from artificial intelligence and machine learning, Dustzadeh said.
The company uses software throughout the entire infrastructure lifecycle to automate forecasting, capacity planning, management, incident detection, learning, and for mitigating and remediating failures, Dustzadeh said.
Uber uses homegrown software to automate and orchestrate the entire process. The software provides auto-discovery, pushing intelligence to devices over the network for zero-touch provisioning. It also auto-validates the state of hardware to prevent bad devices from going into production, Dustzadeh said.
The transportation provider uses automated change management, with a homegrown platform providing a source of truth for the desired state of infrastructure. That enables engineers to define the infrastructure state in a vendor-agnostic way through configuration data. The data drives device configurations, requiring no direct human interaction with servers or network devices, Dustzadeh said.
This "infrastructure as code" approach automates changes and rollbacks; it can be audited, reviewed and coordinated across platforms between on-premises and cloud, Dustzadeh said.
Infrastructure is distributed and highly available, with both active and passive monitoring, leveraging telemetry for realtime visibility into the state of the network, including reachability, round trip and one-way latency, packet drops and black holes, Dustzadeh said.
"Auto mitigation and remediation are also areas where we heavily leverage software to improve operational efficiency," he said. "When hardware fails, not only do we have to ensure it's mitigated quickly, but also automate back end workflows to automatically generated troubleshooting and [Return Material Automation] tickets." Automation also provides auto-diagnostic, remediation tests and failure predictions.
Software testing is strategic to keeping Uber's engines running.
"When you rely on software to automate your infrastructure you have to be sure that software is thoroughly tested," Dustzadeh said. Uber created an environment for traditional test cycles, but also deployed and uses testing software to provision, monitor and configure the test environment itself, Dustzadeh said.
"Networking is the foundational layer of the infrastructure and key enabler of business," Dustzadeh said. Resiliency, with deterministic failure behavior, is a key design principle for Uber's network. The network has to be simple to build, flexible and cost effective. And data centers are a key building block for the network.
Uber uses a fabric network design, with rack switches providing server aggregation, connecting to pod switches aggregating racks, fabric switches aggregating pods, external fabric switches, data center aggregation, and edge pods connecting to backbone routers.
Network sections can contain campuses with individual or multiple buildings, and multiple campuses in a metro area.
Looking ahead, Uber wants to work with the open networking community on solving big challenges together. On the access side, Uber is looking to SD-WAN and next-generation networking to support full line rate crypto at 100 Gbit/s at the right price point.
Dustzadeh previously worked for Visa, and addressed ONS in that capacity. At that time, Visa was also interested in SD-WAN. And the problem is similar for Uber: Leveraging software to manage remote sites automatically, ensuring configuration changes can be managed through software. "At Uber we have a number of remote sites and we want to find a way to bring them online and manage them through software -- manage environments remotely -- using a centralized approach to software," Dustzadeh said.
Uber is also looking into network disaggregation in the data center, with benefits including quickly developing features beyond what's possible with the OEM model.
Microservices generate large volumes of data center traffic, and Uber needs to ensure those requirements are understood and infrastructure can support the growth of these microservices across the data center and cloud, Dustzadeh said.
Uber is looking into white box solutions and considering developing its own network operating system, UberNOS, Dustzadeh said.
- LF Networking Gets Ambitious About Open Harmonization
- Open Source Zeroes In on the Edge
- DANOS Fuels AT&T's White Box Binge
- LFN: Open Source $11B Vendor Opportunity
— Mitch Wagner Editor, Enterprise Cloud, Light Reading