Join 353,816 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 3,510 people online right now.Registration is fast and FREE... Join Now!
Anyone out there getting into Cloud Computing yet? I recently began looking at it and what it can do, that's when I found Windows Azure, one of Microsoft's tools for Cloud Computing. It looks promising as far as what it offers, and cannot wait to dig a little deeper into this and see how far down the rabbit hole goes.
Anyone else playing around with Cloud Computing with C#?
EDIT: By the way, you need Windows Server 2008 SP1 or Windows Vista SP1 to be able to install and use any of the Azure SDK's
This is exactly what I am looking for. Currently working on a project that requires a centralized storage/service system, so I am currently studying how cloud computing works and how I can implement my solution to use it to the fullest.
As far as I know, Azure currently is in the CTP stage and you have to get an invitation (you can easily get it by registering online) to use Windows Azure, however, you can instantly access the Azure .NET Services.
Interesting how it all works. I downloaded the SDK and will install it now.
You're right about the CTP (Should have mentioned that in the post, sorry for that) but I want to get the word out about it so all C# people will know by the time it goes RTM.
It's a nice platform, I must say. The possibility to remotely host services and applications and supply them on-demand to the end-users is an idea that was already tried a while ago (good old client computers connected to big centralized terminals) but seems to get a new improved image and offer more possiblities. Did you get the SDK for Azure?
Of course I got it (DUH ) I think this will do nothing but help C# (and VB.NET) expand as far as what the possibilities are with the language (That sounded a lot better in my head, it really did). I too signed up for the CTP for the service, I really want to get further into Cloud Computing with C#, to see what is possible.
I have been wanting to try Cloud computing for some time now. I was hoping it would help with a peer-to-peer application that I want to write. Thanks for sharing the link.
Cloud storage is the topic that interests me as of now, because my project is based on remote data storage, and the article gives an inside look on that.
I look forward using the SQL Azure Database, but it seems like this project is still in its development stage and is not available to public.
I'm absolutely loving Windows Azure right now. I'm in between projects and I am quite impressed at the extensibility of the platform. I think considering it's leveraging a familiar framework it might give Amazon a run for it's money.
edit: darn typos
This post has been edited by christinahelton: 01 August 2009 - 05:02 AM
I've actually been doing research in cloud computing at my school, I really enjoy the freedom I have been given to explore and experiment with this fascinating topic. I'd be more than happy to help in any efforts for projects involving this.
Dream Kudos: 0 Expert In: C/C++, Java, VB, VB.NET, C#, PHP, Web Development, HTML & CSS, Javascript
Re: Cloud Computing with C#
Posted 02 August 2009 - 09:16 AM
I find it a bit funny you guys are talking like Windows Azure is a brand new thought. Remember, Microsoft has very few original thoughts these days. Google has had App Engine going for some time. Not only that, Google appears to do it cheaper. I have found a nice little comparison table for the two in case you were interested.
Difference is though, this is a Microsoft Service. Watch the WPC09 Keynotes about Azure and you'll see just how awesome it is, and how Google Apps stuff is just blown out of the water.
Furthermore, Azure's free to developers for early adoption up until November.
I have been doing a research project over the summer at the University of South Florida working with the Amazon Elastic Compute Cloud (EC2).
The aim of the project is to develop a testing platform for web applications that utilizes cloud resources to perform load testing on web apps. It's really rough right now; but, I'd be happy to share insight if anyone has anyone has any questions.
I have a C# app (client control panel) that I run on my personal work station that connects to Amazon via an API. It is able to manage AMI's (Amazon Machine Images) which are essentially virtual servers. They run Windows Server 2003. I run web services on my AMI's and the client control panel connects out to them and provides data such as scripted http requests and user data. The AMI's then simulate some number of users and validate the responses and measure response times. This performance data is sent back to the client control panel for analysis.
@tree6014 I was just curious - when you connect to Amazon via an API - are you using REST and XML output to interact with the client application or there is an application-specific API?
The demo uses an old version of the API though which will no longer be supported later this year. It also doesn't really demonstrate all of the necessary functionality; but, it gives a rough idea of how it works. I believe you have to do a RSA decryption implementation in order to obtain the admin password for an AMI via a client app. That isn't demonstrated... However, you can download the ElasticFox plugin for Firefox. That has everything of importance implemented.
@tree6014 That is something to look into. In your opinion, what is the cost-effectiveness of AWS? To be more descriptive - how the costs fro the service directly relate to the actual effectiveness of implementing and maintaining a cloud storage/service?
It depends greatly on the application. AWS tends to be most practical for applications that require a lot of processing and not too much data transfer in and out of the cloud. The main reasons to use it rather than your own hardware are to remedy the cost issue of hardware underutilization and allow you to quickly add or remove resources as needed.
If you don't have any significant "peak load" and you are fully utilizing your hardware / data center continuously, it is not worth using AWS for your computing. It is worth using AWS if you use a lot of resources; but, only use them periodically.
Additionally, it can be cost effective to use a hybrid architecture. If you normally have a particular load on your hardware; but, periodically have peaks where the load is much higher, you would traditionally have to just design your data center to handle peak load and under utilize it most of the time. However, now that AWS is available, you can simply design your data center to handle the regular load and bring Amazon EC2 images online only to handle peak load situations.
As far as development for AWS, it's pretty straight forward once you get acquainted with the APIs. You can actually connect to the images with an IP address which is impressive since it's obviously behind a lot of network infrastructure. Apparently, they've dealt with the routing in a pretty clever manner. So, it's basically like development for any other server(s).
@tree6014 In this case, why was Amazon the provider of choice - there are others like Windows Azure? What was the decision-making factor in chosing the service provider?
Most of what I said is true of cloud computing in general; however, there are some differences between the different providers that I will quote from the paper Above the Clouds: A Berkeley View of Cloud Computing. In my case, Amazon was actually already chosen by my mentor who laid out the guidelines for the project. It is really the most flexible choice because you can do pretty much anything with it.
Amazon EC2 is at one end of the spectrum. An EC2 instance looks much like physical hardware, and users can control nearly the entire software stack, from the kernel upwards. This low level makes it inherently difficult for Amazon to offer scalability and failover, because the semantics associated with replication and other state management issues are highly application-dependent. At the other extreme of the spectrum are application specific platforms such as Google AppEngine. AppEngine is targeted exclusively at traditional web applications, enforcing an application structure of clean seperation between a stateless computation tier and a stateful storage tier. AppEngine's impressive automatic scaling and high-availability mechanisms, and the proprietary MegaStore data storage available to AppEngine applications, all rely on these constraints. Applications for Microsoft's Azure are written using the .NET libraries, and compiled to the Common Language Runtime, a language-independent managed environment. Thus, Azure is intermediate between application frameworks like AppEngine and hardware virtual machines like EC2.