Why we chose OpenStack for Walmart Global eCommerce

Written by Amandeep Juneja, senior director of cloud operations and engineering, @WalmartLabs

When people think of Walmart and the nitty gritty of how we do business, they usually think about merchandising, item placement, and inventory management—the hallmarks of running a global chain of retail stores. So Walmart’s decision to invest in cloud infrastructure might not be something you’d expect from a brick and mortar retailer with over $480B in revenue.

So why did we decide to invest so heavily in the cloud?

The answer is that Walmart has always relied on cutting-edge technology to fuel our growth. Walmart was a pioneer in opening up our inventory systems to vendors to reduce inventory costs and bring lower prices to our customers. We were the first company to connect our store network with satellite communication, long before the advent of Internet, enabling us to reach consumers who until then had no access to discount stores.

We’ve always sought to expand fast, adapt to changing consumer preferences, and keep the costs of operations low.

Walmart is growing fast, and Walmart Global eCommerce is leading the charge. Our customers want to use our eCommerce platform from many different access points, not only from their home computers but also from mobile phones, tablets, and kiosks within Walmart retail stores—always expecting a seamless experience.

With such rapid growth, we needed a technology stack that would scale to meet the explosive demand, flexible enough to build applications that adapt to ever-changing user preferences, and with enough big data smarts to predict what customers want and provide them with recommendations.

For traditional businesses, growing in size means that economies of scale kick in, leading to lower per-unit costs. On the retail side, Walmart has always enjoyed these cost savings, which we’ve passed down to our customers in the form of our trademark “everyday low prices.”

But when it comes to technology, things aren’t so simple. As a company’s technology footprint increases, the expansion can lead to “diseconomies of scale,” meaning the cost per transaction actually goes up. The cost of doing business goes up, and having more users is actually bad for business.

Such an inversion of the cost curve can happen due to bad infrastructure architecture, when you find yourself locked into a certain system or application, where vertically scaling costs more than horizontal scaling. It can also be the result of bad application design. Maintaining and adding new features becomes a nightmare, increasing opportunity cost for businesses for delivering new products.

That’s where cloud architecture comes in. Instead of expanding vertically by, say, buying big, powerful machines for ten times the cost, distributed computing means you can use large number of commodity machines to spread and gather — providing the same power, but at a fraction of the cost of traditional data centers and infrastructures.

A second benefit of the cloud is that distributed architecture provides a higher degree of resilience and reliability. A single machine can go down, but the odds that ten machines go down at once are much lower.

Last year, @WalmartLabs made a decision. In order to meet the challenges of eCommerce 3.0, we needed to overhaul our technology stack and the tech vision that goes with it. We decided to build an elastic cloud, running applications using a services-oriented architecture.

We wanted to choose the platform that would best support our application developers, enabling them to rapidly build all kinds of applications, including mobile, WebApps, and RestFul APIs for vendors. A platform that would empower product managers to iterate over new product ideas in an agile manner. A platform that would enable Walmart to respond to customer needs more efficiently.

We chose OpenStack as our cloud platform, not only because it’s best of the breed, but also because open source software comes with several big advantages:

  • Using open source means we avoid long-term lock-ins with any single private vendor.
  • More importantly, we know that Walmart Global eCommerce is growing into something unique. Using open source means we can modify and customize software to meet our needs.
  • Finally, OpenStack has a true community around it. It’s been used and supported by market leaders all over the Bay Area. Walmart wants to be part of that community. We have a team of very talented developers, and we plan to contribute aggressively to the open source community.

In the nine months, since we started building OpenStack cloud, we’ve already built an OpenStack Compute layer with 100K cores and counting. Our next step is to bring in more block storage and venture into software-defined networks using OpenStack projects such as Neutron and Cinder. We’re currently building a multi-petabyte object storage using Swift.

A lot of people use OpenStack, but what makes Walmart’s OpenStack project so exciting is the scale of our investment. Over 140 million customers shop our stores and online in the US every week. Unlike other large installations, we’re using the OpenStack platform for real production loads. By the holidays last year, Walmart.com’s entire U.S. production traffic was on OpenStack compute.

This is an incredibly exciting time. Around the world, eCommerce will only continue to grow, and Walmart is lucky to have the opportunity to contribute to the technologies that will make it happen.