Home > Blogs > VMware vCloud Blog > Tag Archives: DevOps

Tag Archives: DevOps

Middle Management in the Cloud

By John Ellis, Chief vCloud Architect at BlueLock

A cloud based infrastructure can save an organization a great deal of time and effort in building servers and provisioning new resources. While this can be fantastic for the build-out phase of a project, how can a virtual datacenter make maintenance easier? We may perform deployments a couple times a year, but deployments and configuration tweaks may occur much more often.

We have seen how vCloud API can expose more of our data center infrastructure, not only by interacting with the vCloud API directly but with third-party application frameworks as well. This same exposure can help us manage running vApps and keep them up-to-date.

Programmatic Configuration and Management

There exist several commercial and open-source applications that help with application management, but a particular cloud-ready framework by the name of Pallet has gained increasing interest by organizations embracing DevOps. Pallet is a tool that allows functional programming to drive the deployment, configuration and management of cloud infrastructure.

Take the following example of Pallet deploying a web application to a given server:

(core/defnode webapp

"Jettison our fancy Web application into tcServer"

{:inbound-ports [8080 22]} ;; 8080 for tcServer, 22 for SSH

:bootstrap (resource/phase
    (crates/bootstrap))

:configure (resource/phase
    (crates/tcServer))

:stop-tcServer (resource/phase
    (service/service "tcServer" :action :stop)))

:deploy (resource/phase
    (crates/tcServer-deploy

    "../artifacts/awesome_webapp-1.0.war"))

:start-tcServer (resource/phase

    (service/service "tcServer" :action :start)))

In only a few lines of code we can configure a new tcServer application server and deploy a Web application into our running virtual machine. Pallet is even smart enough to discern if tcServer has been previously installed and skip directly to the “deploy” section.

Another very robust solution for management is Chef, an agent-based infrastructure automation toolchain that can manage nearly every tweak and build under the sun. One could bake the Chef agent into your vApp template, then have each new template announce itself to a Chef master server. This master server can then cook up new virtual machine configurations using “recipes,” a series of instructions that edit configuration files, copy packages or execute commands. Chef offers centralized management of your infrastructure and role-based management for each machine in your data center.

Automated Deployments

If your primary focus is managing deployments, both Cargo and Murder can push out new code quickly and effectively. Cargo is largely geared towards the rapid deployment of applications into managed Java containers, while Murder is a general-purpose deployment tool constructed by Twitter and based on BitTorrent for highly distributed deployments to hundreds or thousands of nodes.

Pallet, Chef, Cargo and Murder all share a goal: allow for push-button deployment of your applications. A single command should ultimately allow you to roll out changes and even revert them in case problems occur. Manual configuration hacking or file transfers should be a thing of the past, and instead a repeatable, automated process should make deployments become a routine process. vCloud Datacenter adds the level of consistency to your infrastructure that is normally so difficult to enforce, allowing a uniform management structure over an entire virtual data center.

An agile IT operation requires portable machine management, rapid provisioning and automated management. The realities of data center management make this a challenge in the physical realm – sifting through a rat's nest of ethernet cable or trying to find A/B power outlets can make rapid provisioning a daunting task. Moving business operations that require more dexterity into the cloud opens the door to the freedom that DevOps can bring, and can tear down the walls between developers and IT operations.

Automation in vCloud Datacenter: Rabid, Rapid Provisioning

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.

Deploy vApp

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
cloud.

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 ""
http://api.bluelock.com/api/v1.0/login

curl -b cookies -c cookies -v -d "@DeploymentConfig.xml"
http://api.bluelock.com/api/v1.0/vdc/5/action/instantiateVAppTemplate

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.

Multiple Clouds

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!

DevOps

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.

What Does DevOps Mean for Cloud Professionals?

By Steve Jin, VMware R&D

 

This
entry was reposted from
DoubleCloud.org, a blog for
architects and developers on virtualization and cloud computing.

 

I heard about DevOps a while back but didn’t really look into it. My
initial understanding was that the roles of developer and system administrator would
merge into one called DevOps. Last week, I attended a DevOps meet up in Palo Alto and got the chance to
learn from others about DevOps. The hosting organization even wrote up a good blog
defining what a DevOps is.

 

DevOps is, in many ways, an umbrella concept that refers to anything
that smoothes out the interaction between development and operations. However,
the ideas behind DevOps run much deeper than that. The DevOps is more about a
movement than the merging of two roles. The basic idea behind the DevOps is to breach
the wall between development and operations.

 

Traditionally developers ship products that are then run by operators in
other companies. In this new age where much of software is delivered as
services, the developers run their software directly. When there is a problem,
the developers must fix it – usually right away. That is why you see engineers
at Google required to rotate on calls for support. When more companies ship
software as services, it’s natural that more engineers will wear two hats on
their heads. The DevOps concept is not really new, but the terminology is.

 

With the DevOps movement, it doesn’t mean there won’t be a need for
system administrators. We still need system administrators who manage core infrastructure
such as storage, networking, and such, but fewer administrators to run and
monitor applications. Whoever designs and develops the software needs to take
care of the operations and support. As infrastructure gets bigger in scale,
companies continue to expect their system administrators to become good script
developers who can drive the most operational efficiency out of automation.

 

For the development side, there are even bigger impacts. For one thing,
you have to carry pagers over the weekends. Whenever there is a problem, you
have to fix it no matter how late it is. With this pressure on, all the
architects and developers need to think carefully about operations as they
develop software: how to make it stable? How to make it scale? How to prevent
system scope outage? How to quickly and silently recover from outage? How to
recover quickly without hurting SLAs? This change in traditional roles forces
them to come up with more scalable and reliable architecture, better quality
software, and easier to manage services. This is good for the people, good for
the companies, and good for customers!

 

Not every developer will be directly affected. We will still see
software as products in the future. But when enterprises move to private cloud
computing, more of these products will be architected to run as services or
applications on top of services. Having a

DevOps mindset and corresponding expertise will definitely be a big plus
for every architect, developer and system administrator. As a
cloud professional or would-be, are you ready for the challenges
and to embrace the changes?

 

Steve Jin is
author of 
VMware VI & vSphere SDK (Prentice Hall), founder of open source VI
Java API
, and is the chief blogger at DoubleCloud.org