Adopting the Next-Gen Internet Protocol: Deploying IPv6 for Uber Engineering
April 27, 2017 / Global
Since launching in March 2009, Uber has been dedicated to fulfilling its mission of making transportation as reliable as running water, everywhere, for everyone. In 2017, we are well on our way.
At the start of 2014, the Uber app was available in 100 cities; by early 2016, this number had grown to more than 400 cities worldwide, offering transportation services beyond ride-sharing. Around that same time, just before New Year’s Eve 2015, we hit the 1 billion ride mark; not longer after in June 2016, we hit 2 billion rides. These numbers only increase as we continue to expand to more cities, lighting up the globe with access to reliable transportation. To grow Uber’s services at scale, however, we need to ensure that our operations meet the proper Internet Protocol (IP).

Uber’s current infrastructure is built on the Internet Protocol version 4 (IPv4) address standard and consists of multiple data centers, located in a few network Point-of-Presences (POPs) and the cloud. However, Uber is rapidly outgrowing IPv4; to best support our expansion, our infrastructure needs to keep pace with user growth by adopting the next IP: Internet Protocol version 6 (IPv6).
In 2016, Uber began rolling out an IPv6 data center architecture by adjusting our existing infrastructure to facilitate this expansion. In this article, we discuss best practices in designing this new network to accommodate Uber Engineering’s growth, as well as the lessons learnt during our infrastructure update to provide IPv6 support.
Making the Jump from IPv4 to IPv6
According to the Internet Society (ISOC), the world ran out of IPv4’s 4.3 billion addresses in February 2011. The total number of IPv4 addresses is over 4 billion, which is far less than the total number of mobile devices in the world. Factor this in with the growth of the Internet-of-Things (IoT) and we quickly find ourselves with a massive dearth of IP addresses.
By 2011, three of the five Regional Internet Registries (RIRs), including the Asia-Pacific Network Information Centre (APNIC), the Réseaux IP Européens (RIPE), and the Latin American and Caribbean Network Information Centre (LACNIC), had exhausted allocation of all their free IPv4 addresses. On September 24, 2015, the American Registry for Internet Numbers (ARIN) announced they, too, had run out of available IPv4 addresses.
First defined in 1996, Internet Protocol version 6 (IPv6) is the most current version of the Internet Protocol (IP) address standard and incorporates features that improve upon many of the challenges of using IPv4, including larger address space, a multicasting base specification, and stateless address autoconfiguration (SLAAC). IPv6 can hold over 340 undecillion addresses, more than enough to handle the world’s current IP needs—and certainly Uber’s.

A map created by APNIC (above) shows IPv6 capability across the globe, ranging from zero in many countries to over 56 percent in Belgium. Measurements regarding the global usage of IPv6 taken by the Internet Society in 2011 reveal that since 2012, major ISP carriers around the world, especially in the United States, have made significant progress on deploying IPv6 in their networks. Among the North American carriers, current IPv6 deployment ranges from 27.93 percent (Cox Communications) to 84.36 percent (Verizon Wireless).
These measurements suggest that IPv6 traffic on the internet is steadily increasing, yet remains much lower than IPv4 traffic. Moreover, as of April 2017, Google reports that the availability of IPv6 connectivity among Google users is 16 percent versus 84 percent IPv4 connectivity; similarly, web information company Alexa revealed that as of March 8, 2017, less than 20 percent of users across its top-ranked 1,000 websites had access to IPv6 connectivity.
Measuring IPv6 Adoption, written for the 2014 Association for Computing Machinery