OpenStack* is a collaboration between developers and cloud computing technologists to produce an open source platform for cloud computing. OpenStack* aims to provide a simple and scalable cloud computing paradigm for different sizes of both public and private clouds. All OpenStack* source code is available under the Apache 2.0 license. Reading the definition and mission of OpenStack*, I became interested in learning how to setup a simple cloud computing platform and how to master some of the common usages within Intel IT. I will share these here. Finally, I want to hear how you, the developers, are building applications for the cloud, and how OpenStack* helps or hinders your work.
My search began at www.devstack.org, most of my instructions here can be found on the site but will be specific to my platform setup:
This was my platform configuration:
Figure 1 – System Configuration
From the www.devstack.org website, I used the “All-In-One: Dedicated Hardware” version for my installation. DevStack* is a special version that developers can use to get familiar with starting/running OpenStack services.
There are some supported components that are configured with this installation, and the following links are for your reference.
1. For databases as packaged by the host OS:
2. For Queues as packaged by the host OS:
– RabbitMQ – Message-oriented middleware
3. For Web Server (Horizon) as packaged by the OS:
– Apache – Open-source HTTP server
4. For OpenStack* Network as default to Nova Network and optionally use Neutron:
Before executing the “stack.sh” script in the Folsom release, you may need to update the line below to prevent failure during the setup. The script hangs at the line listed below when it is trying to install python packages that are required by the Keystone module using PIP:
sudo PIP_DOWNLOAD_CACHE=/var/cache/pip HTTP_PROXY= HTTPS_PROXY= NO_PROXY= /usr/bin/pip install –use-mirrors -r python_keystoneclient.egg-info/requires.txt
Here is the message:
>Downloading/unpacking prettytable (from -r python_keystoneclient.egg-info/requires.txt (line 3)
It uses pip to install python packages listed in a requirements file at /opt/stack/python-keystoneclient/python_keystoneclient.egg-info/requires.txt.
If you try to install each package separately, like this, it will succeed:
>pip install prettytable
The cause for the failure is the –use-mirrors switch which is added in function pip install() in devstack/functions.
To prevent the script from hanging, change the phrase below:
$CMD_PIP install $PIP_MIRROR_OPT $@
Change to this phrase:
$CMD_PIP install $@$CMD_PIP install $@
Your cloud setup will be unique depending on the environment and your specific needs. But note that DevStack* is designed as a learning environment and it is not supported for production environment. I use this DevStack* setup as my experimental environment. Once I get familiar with the setup and the usage of the new environment, I will explore other areas of the cloud computing like big data and software defined network (SDN). Next are two OpenStack* use cases that Intel’s IT organization configured on its internal cloud.
Case #1 – Rolling Upgrades of Core Services:
To minimize the impact of new infrastructure and software version updates, Intel IT designed its cloud platform for rolling upgrades, which helps better manage the rapid changes in IT infrastructure and software requirements for employee devices. For example, a new release of OpenStack* comes out every six months, and we expect to integrate the next version within three months of its release. Rolling upgrades with no end-user downtime are a key feature of the continuous integration and evolution philosophy at the heart of the open cloud operating model.
Figure 2 – Diagram of the Intel IT Cloud Platform Solution Stack showing open source and other components, and their associated refresh cycles.
Case #2 – For cloud resource management use case:
At the core of Intel IT automation and manageability solutions is the Configuration Management Database (CMDB) which keeps track of the Virtual Machines (VMs) that are deployed into the environment. This domain model records desired settings, configurations, relationships, and states. Back-end orchestration—the automated arrangement, coordination, and management of computer systems, middleware, and services—and automation solutions use this model to enforce states in the environment. For example, when an end user requests a new collection of VMs, the API records the request into the model and triggers automation to start provisioning. Once a VM is provisioned, the Actor reads the desired configuration and state information from the model, and enforces that on the VM. Intel IT’s current implementation of CMDB is based on an open source Web 2.0 application framework, and we expose it through a RESTful API, a web service implemented using HTTP.
Figure 3 – To automate the management of cloud resources, Intel IT added a layer on top of OpenStack* that includes the configuration management database, Watcher, Decider, Actor, and Collector functions.
Setting up OpenStack* for your cloud will be unique depending on your environment and specific needs. The use cases mentioned are mainly focused on IT development. We are interested in hearing about other uses for OpenStack*, especially from a developer’s perspective. If you develop applications (for various operating systems such as Linux* and Windows*), are you considering OpenStack* and what are your reasons for doing so? What challenges do you see in your adoption of OpenStack*?
Visit www.intel.com/it to find white papers on related topics:
“ An Enterprise Private Cloud Architecture and Implementation Roadmap”
“ Best Practices for Building an Enterprise Public Cloud”
“ Extending Intel’s Enterprise Private Cloud with Platform as a Service”
“ Implementing On-Demand Services Inside the Intel IT Private Cloud”
* Other names and brands may be claimed as the property of others