This isn’t a fan-boy post. I’m not trying to beat up one camp or the other. Rather, I’ve found that the cloud and technologies like Silverlight are changing the face of hosting and I thought it might be interesting to look at why that is.
I’ve hosted a variety of sites with both Windows and Linux hosts over the last ten years. I’ve run a number of different setups from a stripped down Debian distribution out of my home using DDNS, all the way up to a remotely hosted private Windows server. I’ve always liked being able to dabble in hosting sites from ASP classic, ASP.NET, PHP, Ruby on Rails, etc.. as I find it a super way to learn and sometimes one technology is just more suitable than another for the problem at hand.
How Do Silverlight & “The Cloud” Change This?
With the advent of Silverlight, the need for a technology specific host changes. Because Silverlight is a browser hosted solution there is absolutely no reason you can’t host it on Linux. All you have to do is upload a .xap file to the server and then include an <object> tag to that .xap file in an .html page. It’s that simple. The Silverlight code is all running on the client machine so it doesn’t matter who is delivering the html page and xap file. The rich-client experience means that the technology running on the server is irrelevant.
What about the server side? What about WCF? Well, the beauty of Silverlight, web services, SOAP, and all that web 2.0 goodness is that it doesn’t matter what the Silverlight app is talking to. It could have a conversation over telnet if need be to interact with remote data stores. The cloud starts to make that even more interesting. Azure was built to be an open standard. This is a good thing. You can use Visual Studio to build out your Azure projects but ultimately they are hosted in the Azure net. You don’t need a Windows host to access Azure storage, as this post shows:
http://blogs.msdn.com/b/brian_swan/archive/2010/07/19/accessing-windows-azure-queues-from-php.aspx You can use the cloud very effectively as your data store while also using Silverlight as your user interface. You could also use Windows hosting for your web services or SQL server hosting while delivering your Silverlight app from your Linux host.
With UI code that runs on the client, and storage/querying that runs in the cloud, the need for a beefy server that is processing requests for thousands of simultaneous users starts to melt away. No longer do you need a powerhouse server host to deliver a highly responsive, massively multi-user website. You can offload the heavy UI work to your users and the heavy backend work to an elastic hyper-grid like Azure. By only paying for the processing and storage you use with Azure the cost of hosting drops dramatically. It will be interesting to see what effect this has on the server market moving forward.
As more and more sites move to a “free to use” model that is supported by advertising and premium subscription services, the capital costs for hosting present the largest impedance to profit. By removing the need for Windows Server 2008 licenses (currently $1000 to $4000 per machine! http://www.microsoft.com/windowsserver2008/en/us/pricing.aspx) and by lowering the hardware requirements you can dramatically affect the bottom line for SaaS services. Silverlight presents the final missing piece in this assembly by providing a rich, easy to develop, client-hosted user interface that can hold its own against Flash and let the MS-brained developers write the code.
It’s good to see Microsoft supporting more open standards to give rise to different scenarios for hosting and delivery. I’m especially impressed that both Silverlight and Azure can be run and used without any need for Windows server technology. A custom rolled internet server (like the ones we all wrote in C or C++ in our comp sci classes!) could be used to deliver the content. As long as it can serve the files it will do the job.