Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I want to get into Cloud Computing. Before I choose a particular vendor platform I want to learn:

What are the underlying technologies, tools and paradigms that I should be aware off to make myself comfortable at working in a cloud platform?

Are there any recommended books or other resources to get my feet wet with Cloud Computing?

share|improve this question

closed as not a real question by gnat, BЈовић, Walter, GlenH7, Ryathal Nov 27 '12 at 20:17

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Down voters, please elaborate your reason for down voting the question. –  Rachel Jun 22 '11 at 12:08
    
@Rachel: Probably because the question is pretty vague. Have you chosen a provider yet? –  Steve Evers Jun 22 '11 at 12:37
5  
"Cloud" is a marketing buzzword. It can mean one of several different things, or it can mean nothing. Is there a specific problem that you're trying to solve? –  Mike Baranczak Jun 22 '11 at 12:46
    
I have not chosen any provider yet. I need to understand how cloud things works and then decide to move ahead with it or not. –  Rachel Jun 22 '11 at 14:12
1  
What might you want to do that involves cloud computing? What do you mean by "cloud computing"? It's a really vague term. –  David Thornley Jun 22 '11 at 22:00

5 Answers 5

up vote 3 down vote accepted

Quick list: web services, key/value stores, map/reduce and block storage. Basic networking for understanding latency, bandwidth and QoS strategies. Make sure to look into distributed systems architectures as well, since that's what you'll ultimately be building.

share|improve this answer

There are multiple flavours of Cloud Computing in the market (Azure, AWS, Rackspace etc). To get an overview of the different players, I would suggest

  • Join the mailing lists of various Google, LinkedIn groups and get an idea of what's happening
  • Get acquainted with an open source project like http://libcloud.apache.org/ which aims towards an unified API for different providers

There are a lot of differences between various vendors, so the next step could be to gain deeper hands-on experience with one of the big ones, like Amazon. This is something you can get only by getting a job which lets you work with AWS.

share|improve this answer
    
My motive here is to learn about underlying technologies that I should be aware off to make myself comfortable at working in the clouds, vendor specific locks in solution would come later in my journey. –  Rachel Jun 22 '11 at 12:05
    
You can play with AWS on your own dime, it's not very expensive. For less than the price of most technical books I spun up some EBS space and played around with various other services. Nowadays, though, I play with OpenStack. –  TMN Jun 22 '11 at 12:18
    
@TMN: I am aware of that, but it's not possible to get a deep understanding of all AWS offerings unless you can actually use and tune them in a production environment, with real systems with users. That is why I mentioned the job aspect. –  talonx Jun 22 '11 at 12:33
    
@Rachel - Understood. Then TMN's answer above would more oriented towards what you are looking for. –  talonx Jun 22 '11 at 12:35

Microsoft's Azure cloud platform has antire section of MSDN.com dedicated to it. If you're looking into how the Microsoft stack does cloud computing, that's the best place to start. You can download all the tools you need, which are listed on the home page, and can get a free 30 days with this promo code I found on Wade Wegner's site.

share|improve this answer
    
So far, I've noticed at least three offers for me to try Azure free, and I haven't been particularly attentive. It is a cloud environment, and Microsoft seems very interested in getting people to try it, so it's likely a good start. –  David Thornley Jun 23 '11 at 16:32
    
I'm using at my startup, totalhealthhub.com. It's pretty cool so far not having to manage all the underlying IIS settings, so I can focus on development. We actually get 3 years of free hosting there through Microsoft's Bizspark program (www.bizspark.com). If you're privately held, less than 3 years old, building software on .NET, and make less than a million bucks then you're eligible. –  Ryan Hayes Jun 23 '11 at 16:42

For storage backend it's distributed hash tables, key-value stores and other NoSQL solutions. And map-reduce as a method of extracting data from them via non-primary keys.

You should also learn horizontal scaling, you should have knowledge of distributed computing, especially limitation imposed by networks.

For application building you probably should learn about web services, especially RESTful paradigm, you should know a lot about foundations AJAX (not the cool animation stuff, but rather how requests to web services work) including things like JSON-P callbacks. You should know how client-side templates work.

share|improve this answer

On the low levels of cloud computing, you may be interested in:

  • basic TCP/IP and client/server architecture.
  • dependability, i.e., redundancy and fault tolerance, because when a computer is down, others have to replace it; when a farm is out of order (hurricanes, earthquakes, power supply failures...), you have to reroute all services on another one, possibly located on another continent.
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.