Cloud-Computing is a new nice buzzword after Web 2.0 and everything goes "in the cloud" - but what means "in the cloud"? Who are the big players and why should you care about it?
Applications "in the cloud"?
The big players are Google, Microsoft or Amazon (from my developer perspective). Todays applications are mostly hosted on one or two machines, running buy a hosting company and you install your own software and so on.
Of course there are many hosting services that manage your server, but many applications doesn´t scale enough. Hardware + Traffic is expensiv and nobody thinks at the beginning of a project "if this site would scale for 10 million visits per day".
Many websites gets in trouble if they become famous (like Twitter or other services).
If you invest in new hardware your money is bound to it and that´s why short-dated actions are difficult to handle (like christmas offers etc.).
The dream
The big idea is, that your application could dynamically scale and you only pay for that what you really use.
Google:
Google offers their App Engine. You can only (today) run phyton code on Googles infrastructure - no .NET.
Microsoft:
Microsoft published on the PDC 2008 the Windows Azure platform.
Windows Azure is the "Windows for the cloud" and offer basic functions for your application, suchs as hosting, managing traffic, scale if it is needed, blob storage, table storage and so on.
Microsoft itself build different services on top of Windows Azure:
- Live Services - the Live Framework & Live Mesh
- .NET Services - Workflows, Authentification & Services
- SQL Services - SQL for the cloud
- SharePoint & CRM
If you want to play with the CTPs, you have to register for each service, but you can download the SDKs (except the Live Framework).
Windows Azure? How does it work?
If you heard "Windows for the could", than you could think that you could connect to it via RDP, but Windows Azure is (today) "only a managed webhosting space". You get access to a management portal and Microsoft is responsible for the underlying Windows Server Farm. The disadvantage about this feature: You can (today) only run ASP.NET and WCF or "Workers", written in .NET. Native languages could be added in the future.
Here are a couple of links if you are interested in Azure:
- Why ASP.NET Developers Should Care about Windows Azure
- Run ASP.NET MVC on Windows Azure
- Praktisches ASP.NET MVC Beispiel:
- Windows Azure Integration with Windows Live ID, Active Directory and OpenID
- Building applications for Windows Azure
- Silverlight MediaElement Playing a Video stored in Windows Azure Blob Storage
- PDC Hands on Labs
- Azure – Performance, IoC, and Instances
Amazon:
Amazon offers serveral webservices:
"Amazon Elastic Compute Cloud (Amazon EC2)" is Amazons "Cloud Computing" system and it allows you to create very fast virtual servers on Amazons infrastruture - it´s a kind of "Instant-Server-Factory". You can choose Windows 2003 or Linux as your OS, here is a great video tutorial.
Amazon S3 is similar to the blob storage function in Windows Azure - you could save all your files in the cloud. Dropbox, a online backup tool use S3 to store & saves your data.
Amazons SimpleDB is similar to the SQL Services from Microsoft. You get database like functions and even a Visual Studio integration:
Amazons Cloud Computing services are really nice and EC2 is a bit different to Windows Azure: You can really access the maschines via RDP and do what ever you want.
The future "is in the cloud"?
Cloud computing will be very interesting in the future - I really hope, that the dream gets real and the tooling great and pricing fair. Windows Azure and Amazon are both very cool.