WalmartLabs Open-Sources OneOps PaaS
@WalmartLabs, Walmart's Silicon Valley-based R&D division, has open-sourced OneOps, a cross-cloud deployment and orchestration platform. OneOps abstracts away the differences between cloud platforms and provides the tools to provision, manage and orchestrate applications.
Applications developed on top of OneOps can be moved between clouds to avoid vendor lock-in or take advantage of differences in pricing or performance. Applications can also be distributed across multiple clouds to help improve resilience, to adapt to and handle large spikes in workload, or for disaster recovery and mitigation scenarios. Enterprises transitioning to a public cloud from on-premise infrastructure can take advantage of OneOps to operate in hybrid mode and maintain independence from any particular cloud provider.
OneOps currently supports any cloud based on OpenStack (such as Rackspace Public Cloud, and a number of other public OpenStack clouds, or an on-premise cloud) as well as AWS, Azure, and Rackspace, with planned support for CenturyLink Cloud on the roadmap. OneOps ships with built-in support for managing Node.js, Java, and Rails applications, as well as a number of databases (Postgres, Cassandra, Redis) and message brokers (RabbitMQ, ActiveMQ, ZooKeeper).
A platform like OneOps can be of particular value to enterprises that have to deal with regular upsurges in workloads, such as online retailers dealing with seasonal upswings in demand. Walmart itself uses OneOps to power walmart.com, its flagship online property. By building applications de-coupled from the platform they run on, enterprises can scale out when needed and reduce capacity again once the surge is over. As long as the application runs on a supported stack (e.g. Java/Tomcat with Postgres) and does not rely on platform-specific services such as AWS SQS or GCE Bigtable it should be portable to OneOps.
In additions to the standard suite of functionality one would expect from a PaaS (deployment management, auto-scaling, unified logging and monitoring etc), OneOps ships with a library of "Platform Packs" which are templates for commonly-used application stacks, and a visual builder that lets developers assemble and launch applications based on those from OneOps dashboard (e.g. a Ruby On Rails application with a Postgres database fronted by Apache with redundant load-balancing). The library can be extended with more custom Packs which are based on Chef Cookbooks. A demonstration of the tool can be seen in the Liferay Portal With Solr Search demo video.
OneOps can also be integrated with LDAP/AD and supports role-based authentication for PCI-compliant workloads, and is designed to be “internal SaaS-ready”, i.e. different departments and teams can have their own installations of OneOps.
The majority of OneOps components are written in Java (on top of Tomcat), with Ruby on Rails used for the web UI. Postgres is used for most persistence tasks, with Cassandra being used to store perf/profiling events in conjunction with ELK. Active MQ is used for the messaging layer responsible for communication between OneOps components.
More information about OneOps can be found on the official OneOps website and the OneOps developer hub. Developers can download and run a small standalone deployment of OneOps for test purposes with the supplied OneOps Vagrantfile or create a test AWS deployment using the OneOps public AMI. The source code is available on GitHub under the OneOps organization. Questions about the platform can be asked in the Slack channel.