Today, Internap announced the availability of OpenStack Glance and Heat in AgileCLOUD. This new image management functionality is available in Internap’s U.S.
Let’s take a look at what that means for Internap customers, both current and future.
OpenStack, as you may know, is a set of open-source cloud software components that allows companies to build public and private clouds to provide more elastic compute, storage and network resources. Many cloud-native applications – those designed from the ground up to operate using cloud transaction principles – leverage independent toolsets to achieve a higher degree of automation and elasticity. On the other hand, traditional enterprise IT organizations are trying to leverage cloud services to allow increasingly smaller operations teams to achieve greater productivity by adopting the new toolsets used by cloud-native applications.
Both of these groups are trying to achieve the same goals: increase flexibility and reduce operational cost associated with laborious system administration tasks. With the release of Glance and Heat functionality into AgileCLOUD, Internap customers can begin realizing these goals immediately.
How Glance works
Glance is an image management service for OpenStack. Customers who need customized software images can start with an Internap-provided base image, modify it by installing common software and then save a copy of that image for deploying to new servers. For example, using the OpenStack command-line tools with AgileCLOUD, I can customize a base CentOS 6.x and create a web server image by doing something like this:
Local-computer$ nova boot [parameters] web-image.example.com
Local-computer$ ssh –i mykey.pem web-image.example.com
# yum update –y
# yum install –y httpd
# chkconfig httpd on && service httpd start
# curl –o /etc/rc.local https://deploy-scripts.example.com/web-server
Local-computer$ nova image-create [server ID] default-web-server
Local-computer$ nova image-list
In this hypothetical example, we create a new server instance and connect to it using SSH. Once connected, we update the operating system and install the Apache web server, then copy a custom boot script to save to disk before disconnecting. The last two commands save the modified server as a custom image called “web-image” and then display the complete list of available images (which include the base images and the newly saved image).
While the nova command is being used in the fictional example above, Glance is doing a lot of the work underneath the hood.
A more visible, and real working example is using Glance to import a Fedora 22 OS image directly from the Fedora cloud image downloads page:
Local-computer$ glance image-create --name Fedora22 \
--container-format bare \
--disk-format qcow2 \
One can also build custom images using other open-source operating systems such as a BSD-based system, OpenSolaris forks, older Linux versions not supported by Internap or Linux systems with OpenVZ kernels pre-installed.
Heat is even easier
A system architect could design an application’s infrastructure and deploy a proof-of-concept into AgileCLOUD using a basic structure with a tier of small web servers to accept HTTP traffic, one or two larger database servers with block storage and pre-defined security groups that only permit access from the web servers, and some in-memory caches to help reduce load on the database servers. Once the architect is satisfied with the baseline performance, she can record this information in a set of template files.
The template contains all the resource definitions, including the web servers, caches, database servers, security groups (firewall rules) for each server role and custom post-install scripts to install configuration management agents for Chef or Puppet deployments. Once this template is ready, the architect simply executes a command like this to launch the stack:
Local-computer$ heat stack-create -f template.txt [additional parameters]
Additionally, the architect in our example can define autoscaling groups within the template. These groups allow her to set minimum and maximum resources to deploy based on certain thresholds, and the heat engine will poll the Ceilometer service to determine when additional resources need to be deployed. Setting minimum/maximum values provides additional resources on-demand but set limits to reduce the financial impact of unrestrained system scaling.
Glance and Heat services are valuable tools for both cloud-native application developers already automating their cloud infrastructure as well as the enterprise IT organization looking to improve operational efficiencies.