Home > Blogs > VMware vCloud Blog > Monthly Archives: March 2010

Monthly Archives: March 2010

OSGI and Cloud Developers: Participate!

jclouds project founder Adrian Cole (see his video
talking about the benefits of using Cargo to automate app deployment to vCloud
Express) updates us on recent cloud discussions that we want to share with our
vCloud blog fans.

 

OSGI cloud workshop

EclipseCon was in town recently so a
group of us met to discuss OSGI and issues for cloud developers. OSGI is under
all components of Eclipse, and also products such as Spring DM server.  We
had a long day’s discussion on what is needed in the specification to
facilitate cloud developers.  As a part of this, there were a few points
of mention, mostly that there is recognition that dependencies will have to go
beyond package names and version numbers, as the runtime itself may need work.
For example, if you are in Azure or Google App Engine, components may need to
behave differently.   

 

Another major issue is
failure tolerance and service level agreements (SLAs). They are looking for
ways to allow components to notify and be notified of events such as SLA
breaches or nodes disappearing. Finally, there was discussion of the need of
scaling agents, whose purpose is to identify both the need and also the how in
scaling based on consumption or performance events.  For example, it may
be necessary to change topology once certain scales are reached, not just the
number of nodes.  OSGI were asking for volunteers for a working group on
OSGI and clouds.  I naturally volunteered jclouds. The outcome of the
working group would be a version of OSGI with well-developed APIs that take
clouds as a first concern.


If you're a cloud developer, let us know if you'd like to participate on an OSGI cloud working group by commenting below and we'll follow up. Thanks!

Join Us at Cloud Hackers!

jclouds project founder Adrian Cole, famous for a star turn in his
recent video
talking about using Cargo to automate app deployment to vCloud Express, sends
us notes from time to time on cloud discussions that we want to share with our
vCloud blog fans.

 

Cloud Hackers

Our cloud hackers dinner
in San Francisco last week was attended by people from Flightcaster, Gigaspaces,
Engine Yard, Cloud Kick, Cloudlets, and me of course. We discussed at length
cloud modeling, like where does the application stop nowadays.  For
example, are people interested in including traffic managers in their app or
not.  What types of datastores are being used, whether to implement
configuration with customized images on demand or chef approaches. There's no
consensus, except that folks think we can get there with more data.  

 

So, we are meeting for a
hack-day on April 5, 2010 which will be a demo-factory. People will show what
their tools can configure and examples of how to do it. The community expressed
interest in setting up cloudhackers.org to make it easy for people to find
cross-language tools in a visual way. Let me know if you want to participate!

 

This cloudhackers hack-day
will be our first global meetup.  Hackers outside San Francisco can
collaborate via IRC and github.  All results will be published here. Please follow us @cloudhackers
or the cloudhackers Google group for more details.

Bringing Your VM Back Home to the Enterprise

We all like the idea running virtual machines at the service providers’ data centers. What happens when you want to move those virtual machines back behind the enterprise firewall? You need to consider that case when you consider using public cloud services. It’s much harder today than it should be. Service providers should make this much easier.

Certainly there are cases where we want the flexibility to move virtual machines back to the enterprise. For example, say a research and development team starts a new pilot project externally on a public cloud. When the project is almost done they may want to move it back to the enterprise because they don’t want sensitive company data in a public cloud.

Is it possible? And how?

There are two possible technical challenges here: how to move the virtual machines out of the service provider’s cloud? And, how to convert it to your hypervisor if it’s different from the service provider’s?

Like any other vendor, service providers would love you to come and stay with them – preferably for a very long time. Most of the time, it’s very easy and cheap to create your new virtual machines and move things into the service provider’s cloud. When you try to move things in the other direction it may be not that straight forward and almost certainly it will be more expensive than moving your virtual machines to the cloud in the first place.

Let’s take a look at moving your VM in the case of EC2. There is no known API or tool with which you could wrap up a virtual machine and send it back to your enterprise.

VMware just published a KnowledgeBase article illustrating five steps to moving your Windows VM from EC2 back to your enterprise. The basic idea is to install vCenter Converter in your Windows VM first, and then convert the instance to VM files before uploading the VM files to the S3 repository. Then you can download the files from your enterprise and import these files to vSphere.

Easier said than done. In general, moving your VMs should be easier than things stand today. One click sending of your VM back home is something most enterprise users would love to see.

Last but not least, when you develop applications, you want to move up to the higher software stack so you don’t need to move the whole virtual machines around. Check out this blog series for the Top 10 Best Practices Architecting Applications for VMware Cloud .

Don’t Fear the Cloud

By Massimo Re Ferre’, Staff Systems
Engineer – vCloud Architect

I have been working in IT for about 15
years now, nine of which I have spent working with customers to get the maximum
out of VMware enterprise technologies in the x86 space. I have always said that
virtualization has been a cornerstone in this “PC space”. Yes, some still call
this platform a "PC," go figure. As part of this journey, I have
heard many professionals ask, "is this the latest buzz-word or is there
something substantial to the Cloud?” Yes, there is something substantial to it.

I really think that the word Cloud has
gained a bad reputation among some IT people simply because it's been used (or
I should say abused?) a lot. That's why, whenever I enter into such debates, I
tend to move the discussion towards what I believe Cloud really means. Cloud
may mean many different things to many of you but fundamentally the word Cloud
resembles a number of very tangible aspects you deal with (or you would like to
deal with) on a daily basis within your data centers. To name a few, the most
relevant are:

  • Self provisioning of resources;
  • Pay per use;
  • Automation;
  • Independence of IT resources
    location.

There are obviously more but these are
among the most important. Talking to people, I have the impression that most of
them associate the word Cloud with the concept of being able to consume resources
from outside the organization’s boundaries. Not necessarily wrong, but Cloud is
much more than that. As a matter of fact, there are really good discussions
within enterprises today about creating Private Clouds within the data center
boundaries – the exact opposite of the typical Cloud "perception"
(i.e. provisioning resources from the outside). There are many other things
that define a Cloud (see the list above) which goes well beyond the
"Independence of IT resources location".

One of the things VMware has been very
active with is the definition of standards in the Cloud space through the
vCloud APIs. These describe a standard way for end-users to consume compute
resources that are provided by an external organization (a.k.a. service provider).
Leveraging this concept, one of the thinsg we are very obsessed with at VMware
is the possibility to provide federation (through the standard vCloud APIs) between
Private Clouds and Public Clouds, effectively empowering organizations with a
single homogeneous view of distributed resources. Those resources can be tin
their own facility or in service providers’ facilities. Do you think this is
just a recent Cloud marketing hype? Have a look at the following picture:

Don't fear the Cloud. The Cloud is good

At first it doesn’t really look shocking as
it summarizes many of the concepts we have already digested in the last few
years. I am referring in particular to the powerful concept of decoupling
applications and workloads from the physical infrastructure (servers, network
and storage). What it is interesting though about this picture is the fact that
it’s a slide from a deck I presented back in 2004 at an IT congress. Not only
that, specifically interesting is the comment in red at the bottom of it: “On-demand
ready: you can buy it, rent it, share it (or a mix of this)
”.

Isn’t that one of the many attributes (“Independence
of IT resources location”) we are pitching today for Cloud computing?
The point I am trying to make is that this is not hype. This is what
virtualization enables you to achieve! It’s for real. I wasn’t trying to create
hype back then. I was just working with customers to redesign their datacenters
using virtualization technologies. We could easily see, six years ago, where
this foundation would have brought us to from an architectural perspective.

If you are skeptical about the word Cloud
please try to take a step forward and dive a little deeper into what the Cloud
really is. You may very well find out that what we call Cloud is the collage of
functionalities you have been dreaming about for the last 10 years. At that
point you may find it a bit less of a hype… and a bit more of a end-goal for
any organization.

Don’t fear the Cloud. The Cloud is good.

See New Video on Automating App Deployment to the Cloud with Cargo

For the first time ever,
developers can now use Cargo for
single-step deployment directly to the public cloud using the jclouds framework
and a new SSH deployment feature in one of the most widely used tools to
automate Java app deployment.

Check out our new Cargo video below where jclouds project lead Adrian Cole walks you
through how easy it can be to automate deployment of your Java apps to vCloud
Express. Deployment to VMware’s vCloud Express becomes a single command
line. 

The cloud is a perfect
solution for development testing, especially for developers involved with
continuous integration and functional tests.  They can now use Cargo to deploy code to the cloud and have
it automatically run on the most popular application servers.  Initial support includes Tomcat 6.0,
but will be rolled out to JBoss, Geronimo, and WebLogic in the near future.

To stay current on the
progress of vCloud Express check out our community API information here,
follow us on Twitter at @vCloud or become a fan of our Facebook
Page
.

If you’d like to check out
Cargo yourself, download the code here. Give
it a test drive and tell us what you think!

What is REST?

By Michael Haines, Sr. vCloud Architect (Security)

REST stands for "Representational State Transfer", which just serves to make things less clear, I think! So, instead of trying to dissect what this means, let us consider a simple web based application, something you do everyday.

1. (client) User goes to the home page and clicks a button.
2. (client) The browser submits an HTTP request to the server.
3. (server) The server send back a responds with an HTML document
   containing some links and forms for example.
4. (client) User fill's in a form and submits it.
5. (client) The browser submits another HTTP request to the server
6. (server) The server processes the request, and responds with another
   page.

The above exchange will continue until you stop browsing. Except for a few exceptions, most web sites and web based applications follow the same logic.

Let's take a closer look, and see how this is related to REST.

Putting it all Together
The key concept here is of a stateless client-server architecture where clients send requests to servers which in return send back responses. Pretty simple, eh? Rather than the client and the server maintaining state, the state is transferred in the requests and responses. This is what "representational" means, in that there is some representation of the state exchanged between client and server. There are a number of things that REST architectures impose. If you adhere to these constraints, your architecture is considered RESTful (we will discuss this a little later). It just means that your architecture obeys the REST constraints.

REST is not new, but it has become in-vogue fairly recently. Basically the entire web is built on REST concepts. Every time you click a button on a web page in a web browser (client) you're sending a request to a web server, which in turn sends back a response. This  does not mean that all web services are REST-based, of course, just that they share some of the characteristics. A good example of a RESTful application is Google Mail. When you log into Google Mail, it sends a request to get the contents of your inbox (actually the latest n messages). The Google Mail server sends back a *representation* (the R in REST) of your inbox, which the client displays. You can then click on a message to read it, which sends a request to the server for the contents of the message. Actually, it's a little more complicated than this, since Google Mail can be doing things behind the scenes while you are reading messages. The point is that the Google Mail server has no idea which set of messages you are reading or which message is currently displayed. It keeps no state (i.e., it's "stateless".)

If it helps, you can consider the client being "at rest" when it's not  actively engaged in communication with the server.

Also note that RESTful architectures do not have to be based on the HTTP protocol. You could implement them over any protocol you like. It's just that typically, HTTP is what RESTful implementations are based on.

Note carefully the list of 6 Constraints.

Summary

In this short background, we have attempted to provide an introduction into the concepts behind REST. A RESTful HTTP approach to exposing functionality is different from RPC, Distributed Objects, and Web services, it takes some mind shift to really understand this difference. Being aware about REST principles is beneficial whether you are building applications that expose a Web UI only or want to turn your application API into a good Web citizen.

Automate Application Deployment to the Cloud with Cargo

For the first time ever, developers can now use Cargo for
single-step deployment directly to the public cloud using the jclouds framework
and a new SSH deployment feature in one of the most widely used tools to
automate Java app deployment.

With this new version of Cargo, deployment to VMware’s
vCloud Express becomes a single command line.  Prior to today’s release, Cargo was used primarily to deploy
code to the local workstation or on new hardware that was provisioned for
functional tests.  Cloud deployment
with Cargo was not common, because it was timely and often required datacenter
mangers to configure the middleware. 
With this new version of Cargo, the vCloud team expects that cloud
deployments will become more common because developers can now use Cargo with
other open source tools like jclouds and Ant to move code from a standard
development workstation to the cloud in one step. 

Enterprise developers that perform testing on a local
workstation often encounter problems because they sometimes run out of
resources during continuous integration and functional testing.  Developers also sometimes have problems
with deployment to remote machines since the remote app server can go down or
encounter configuration problems. 

The cloud is a perfect solution for development testing,
especially for developers involved with continuous integration and functional
tests.  They can now use Cargo to
deploy code to the cloud and have it automatically run on the most popular
application servers.  Initial
support includes Tomcat 6.0, but will be rolled out to JBoss, Geronimo, and
WebLogic in the near future.

If you’d like to check out Cargo, download the code here. Give
it a test drive and tell us what you think!