DevOps the Walmart Way, with the Newly-Released OneOps Cloud Platform
This week, Walmart Labs released as open source OneOps, the company’s software for deploying applications across multiple cloud providers.
OneOps could be used to build a streamlined workflow for developers to deploy their applications, as well as help organizations, avoid being locked into a single cloud provider, said Brian Johnson, who is Walmart Labs’ senior director for platform and systems.
OneOps was initially used to manage the Walmart.com e-commerce site, and it is now being expanded to individual Walmart stores, as well as to other initiatives. Currently, around 3,000 of Walmart engineers deploy on OneOps, committing over 30,000 changes per month.
Walmart operates its digital properties under the principle that developers should be responsible for maintaining their own applications in production. “The slogan we have internally is ‘You deploy it, you own it’,” Johnson said.
A big ask, to be sure. The good news is that developers don’t have to worry about configuring the supporting stack, beyond choosing the components and basic configuration settings. OneOps takes care of the provisioning and operations.
“OneOps is the product that underlies that our DevOps culture. OneOps enables DevOps to work within the context of Walmart by empowering teams with access to build and change infrastructure,” Johnson said.
The software is based on a model-driven architecture. For the developer, OneOps provides an assembly line of sorts: They specify infrastructure requirements such as what application server to use. They also can make decisions about the environment, specifying specific cloud services and how much redundancy to add.
The software provides an interface for easily deploying to multiple cloud vendors, as well as for software products. “We can add more clouds and add more software in a very fluid and dynamic way,” Johnson said. New applications and providers can be added through plug-ins.
For the low-level automation of OneOps processes, Walmart uses Chef, though the platform can also be easily run on Puppet or Ansible as well. The platform had to take an agnostic approach, Johnson said, because it would be impossible to specify a “one-approach-fits-all” for the many different development environments run by Walmart and its partners, Johnson said.
This architecture provides a number of benefits, according to Walmart Labs.
The system provides a base for continuous lifecycle management, provide a single pipeline from development into production. It can also help level the playing field for cloud providers, offering a way to easily switch applications from one cloud provider to another.
Walmart was somewhat worried about cloud lock-in, in that the company didn’t want to become too reliant on a single cloud provider. “Flexibility is really critical for the scale that Walmart has,” Johnson said.
Walmart acquired the OneOps software in 2013 when it purchased OneOps. The company, at the time, was developing tools to speed the deployment process, but work wasn’t going quickly enough.
“We knew we were going to hit a wall within a few quarters. That risk was great enough that we went looking for technology that would accelerate our internal roadmap,” Johnson said. “We took OneOps as the foundation, and immediately started to build our development and pre-production environments with it.”
The company was already using OpenStack to run its private cloud operations although that open source cloud software was too centered on infrastructure to be readily usable by developers. “Developers care about Cassandra, Couchbase, MySQL, Tomcast, Java, Postgres, PHP. That’s what they care about and they care about their application is built on top of that,” Johnson said. The idea behind OneOps is to allow them to pick and choose their favorite components.
Administrators can also set up profiles for individual tasks, such as for development or testing. “They click a button, and they have that environment,” Johnson said.
OneOps can be downloaded from GitHub.