There is a misconception among some people that Docker containers and OpenStack are competitive technologies. The truth is the exact opposite, and in fact, Oracle is now providing the best proof yet by using Docker images as a mechanism to actually install an OpenStack cloud.
Oracle OpenStack for Oracle Linux Release 2 is now available providing users with an innovative way to benefit from both Docker and OpenStack. The new release is based on the OpenStack Kilo milestone that was released on April 30, rather than OpenStack Liberty, which was released on October 15.
Wim Coekaerts, senior vice president, Linux and Virtualization Engineering at Oracle, explained to ServerWatch that Oracle's goal is to do a single release per year of OpenStack.
"At this time, we see a release per year as a good mix between being current and being stable," Coekaerts said. "Our first release was based on Icehouse, we skipped Juno, and picked up Kilo. We plan to skip Liberty and pick up a release after Liberty."
Coekaerts noted that similar to how Linux distributions pick up a specific upstream kernel and stabilize it, OpenStack releases are development releases. He added that Oracle treats OpenStack the same way, picking up a version of OpenStack, testing, developing, packaging, and hardening it and then releasing a new version of Oracle OpenStack for Oracle Linux.
"If we did this with every version it would not be effective for customers since they would always be upgrading, and stability is important to our customers," Coekaerts said. "Liberty is brand new. At Oracle, we spend a lot of time testing, packaging, fixing and developing in-depth integration; this is needed to help ensure our products are shipped enterprise ready."
Simplifying Installation and Configuration for Customers
With the first release of Oracle OpenStack for Oracle Linux, the cloud platform was packaged as individual RPM packages for each component, similar to how other vendors package OpenStack. Coekaerts explained that in that model, a cloud administrator has to install an operating system (Oracle Linux) and then install all the rpms and configure them.
"Now, with Oracle OpenStack for Oracle Linux Release 2, we provide an entire preconfigured/installed image with all the Oracle Linux bits needed (and not more, or less) and all the OpenStack components needed (not more or less), that simplifies things for customers," Coekaerts said.
Coekaerts provided an example of the package list that would be installed on top of Oracle Linux (or equivalent) as part of an OpenStack installation at http://yum.oracle.com/repo/OracleLinux/OL6/openstack10/x86_64/.
"All of that is now contained in a nice Docker image for each module, and updates are based on Docker images updates," Coekaerts said. "The nice thing is that each service is broken up in a separate Docker container."
There are multiple advantages to having OpenStack packaged as Docker images, including improved visibility. Coekaerts noted that pre-Docker, there would have been hundreds of python daemons installed and running, without breakdown, and an administrator would have to do ps auxww and then just see a maze of processes to find out what's running and what's not running.
"With Oracle OpenStack for Oracle Linux Release 2, each component is a separate Docker instance and a simple Docker ps will show all the different-named OpenStack services running — it's much cleaner," Coekaerts said.
Given that Docker instances are just filesystem checkouts on a filesystem, a sys admin can easily go into the subdirectory for the Docker instance and see all that's installed, according to Coekaerts. They can also use the Docker tools to see which versions, what the changelog is, etc. of whatever is running — Docker logs, Docker history, etc.
"By running Docker instances for services, it makes it simpler and easier to manage a complex product like OpenStack, compared to running many processes," Coekaerts said. "It also gives a better overview of what is running and what is not."