By John Ellis, Chief vCloud Architect at BlueLock
I must admit, I'm one of those guys who can't stop checking the shipping status of my online orders. When order five hundred pounds of rare earth magnets from my favorite online retailer I want them delivered to my front door in record time.
That same impatience is what has driven my reliance on cloud computing. When I want a server I don't want to wait for a pallet to hit the loading dock. I want a server racked and ready to go now. If I need
twenty servers because Oprah is going to demo my site tomorrow I simply can't wait for something to be assembled, tested, shipped and mounted.
Leveraging the OVF Standard to Deploy vApps
The earlier post of this series highlighted vCloud Datacenter's ability to leverage the OVF standard for
keeping ready-made virtual applications (vApps). There are two routes to deploy these vApps: using
vCloud Director management or leveraging the vCloud API.
The simplest method of deployment is via vCloud Director. Once an OVF has been uploaded to my
cloud I can simply select the uploaded image from my software catalog and deploy it into my virtual
datacenter. Network security, IP addresses, hardware profiles and virtual machines remain intact and
configured exactly as when I left it. If you work with a service provider that efficiently manages
storage offloading and image management a new server could be yours in mere minutes.
Let us take the act of provisioning one step further: now that we can have a number of running servers in mere minutes, perhaps server construction and destruction has become a routine task. Perhaps instead of promoting application binaries you now promote entire vApps into production. Maybe your quality assurance needs a pristine, new environment every morning. By sending some simple commands via the vCloud API we can easily create a repeatable script to provision vApps within our
The vCloud API has a REST-based HTTP interface, meaning we can easily use utilities like curl to send XML commands via POST to a URL. For example, vApp deployment could be condensed into two lines:
curl -u 'AwesomeGuy@MyCloud' -b cookies -c cookies -v -d ""
curl -b cookies -c cookies -v -d "@DeploymentConfig.xml"
One operation allows you to login to a cloud environment, the other deploys a vApp with a configuration defined within the file DeploymentConfig.xml. The latter call will return a response letting you know the success or failure of your submission.
There are steps beyond raw XML over HTTP. The vCloud SDKs available from VMware provide bindings for Java, PHP and .NET so that you can create your own applications that fully leverage the vCloud API.
With the vCloud SDK it becomes a fairly straight-forward process to construct applets, desktop applications or Web applications that allow you to take control of your cloud.
If you ever want to manage your application across multiple clouds, libraries and frameworks such as
jclouds and libcloud can even span a myriad of providers to give you a single programmatic interface to your infrastructure. Deploy virtual machines in your Indianapolis office, St. Petersburg office and Milan with a single keystroke if you so desire!
Once you take the step into creating simple scripts or fancy desktop apps you enter the realm of DevOps – a new process of combining development and infrastructure operations into a cohesive whole. The basic DevOps premise is simply so: attempt to perform production deployments without developers and IT administrators getting into fistfights. By creating applications that provide a repeatable, consistent interface into deployments we reduce the chance of introducing human error or straying from the beaten path. Operations can continue along with a stable environment while developers get their weekly code pushes out the door. DevOps doesn't just include provisioning vApps however – it also includes configuration management of these virtual services.
As a final overview of vCloud Datacenter's IT agility we will see how we can better manage our virtual data center.