views:

753

answers:

6

Virtualization & Cloud Computing.

I know these are very vague, nebulous words that mean so many different things. They are also the topics that are most discussed today. However, because they are so new, they are not taught in schools. I was lucky to have couple lectures on virtualization technology and read a paper about it. I now want to learn more about these two topics, because I know they are one of "HOT" topics out there, and staying on the "bleeding-edge" side is what I must do as a developer.

Where should I start to learn about virtualization & cloud computing?
Anything from articles to academic papers to blogs to books would be great.
I would like to learn everything I can from architecture to deployment on cloud
Because my lack of knowledge in both areas, I don't know what I should expect.

Please fill me in :)

Collections

Technologies:
Amazon's EC2
Microsoft Azure

Articles/Papers:
Sun's Cloud Computing Article
Xen and Arts of Virtualization
Google's Distributed System Educational Site

Video:
PDC 2008 Azure Services Platform

In the News:
Sys-Con Virtualization

A: 

I don't think it's just their "relatively new" status that stops them being taught in school.

They're both deployment mechanisms. On my computer science course, we spent no time looking at the deployment options and all the time learning how to build a better system. Deployment is important but its extremely specific for each case. Therefore teaching one method is pointless and teaching all the methods would take too much time or not cover any in nearly enough detail.

In your case, you really need to approach it from the direction you're going. Are you trying to scale a website or another service? How database-heavy is it? How does it cache? How reliable does it need to be? Is budget a factor?

Oli
Just an educational factor. I know there is no single source that can provide me all the answers I want. Hence, I was trying to collect some sources that other people know and listen to. :)
bLee
+1  A: 

Have a look at Microsoft's Azure - http://www.microsoft.com/azure/default.mspx

And Amazon's Cloud - http://aws.amazon.com/ec2/

At the moment, Cloud Computing is banded about and I'm sure that for most marketing purposes all it means is a 'hosted service'. This means that rather than install the applications on a client's hardware, the vendor agrees to charge a subscription fee and host it on their own site (or a third-party).

The term "Cloud" is used because when depicting "T'Internet" in techie diagrams, we draw a picture of a cloud. That's it.

In reality, it's just used as a big, cheap storage space at the moment. PAYG-computing is the ideal, but we're a few years from that yet.

Duncan
I have not seen Azure (only heard about it), but EC2 is awesome. I actually wrote some scripts to play around with it at Amazon tech talks. :)
bLee
+1  A: 

I thought this keynote from PDC by Don Box on Azure was a great intro. to Azure and cloud computing. Also, there were fully 39 sessions on Azure at the last PDC.

JP Alioto
Wow. this will surely help! Thanks!
bLee
A: 

The theory of cloud computing is based upon principles of distributed systems, I suggest googling that term. Some (possibly) good lectures for you are: http://www.academicearth.org/lectures/networks-and-distributed-systems and http://videolectures.net/mlmi04uk_warner_cgc/

Also, if you have a good CS background check out papers and articles at: ieeexplore.ieee.org/Xplore and portal.acm.org (check with your school and or local library to see if you already have a subscription to these sites, else it's 20 bucks a pop)

Junier
google got some as well: http://code.google.com/edu/parallel/index.html
bLee
A: 

As far as virtualization goes, you might find it useful to get some hands-on experience. Go get the trial version of VMWare, install an OS in a VM, play with the options, see how it behaves, etc. Granted, VMWare workstation isn't quite the same as the full-on virtualization products used for enterprise servers, but having some experience to supplement what you're reading is always a good idea.

andersop
Yea I don't think using the VMWare give too much educational aspect of the technology. However, I read a paper that eventually lead to the creation of VMWare.
bLee
Fair enough, but if you're trying to get into the deployment, you gotta start somewhere. :)
andersop
A: 

I went through a similar path as it sounds like you are trying to go through, so let me tell you what I did and you can pick and choose:

Where should I start to learn about virtualization & cloud computing?

I learned about virtualization by example. If you've got a spare Linux box around, put Xen or KVM on it and play with some virtual machines. I used older versions of the guides in the previous links and found them to be extremely straightforward and easy to follow. And since cloud computing just adds a few more pieces on top of virtualization (such as network isolation for VMs), learning virtualization takes care of most of that.

Anything from articles to academic papers to blogs to books would be great.

I would like to learn everything I can from architecture to deployment on cloud

Here's a link to an article about Amazon's Dynamo, a chunk of the underlying storage system / database that lies under a large part of Amazon's architecture. An open-source implementation of the Amazon AWS APIs is Eucalyptus, which you may want to try out if you have multiple Linux machines you're not using. More info describing the architecture of that can be found here.

Chris Bunch