About Tech Blog

This is collection of articles and postings about latest technologies, mainly relating to Microsoft .Net, Asp.Net MVC and project codename Oslo. It is a hobby and a way to give back to the community and not an OPE AG offering or reflection on what OPE AG is working with.
All articles...

Behind the scenes of www.ope.ag:
Hosting in the Cloud

Cloud computing is one of the big buzzwords in the industry at the moment. Most of the big providers are talking about it at least to an extent, but especially Amazon, Google, IBM, Microsoft, SalesForce and Yahoo have been very active. Then there is a set of smaller providers, who often have quite innovative solutions, but are usually not as known as the Big Guys.

So what is Cloud Computing? Let's take first the Wikipedia definition:

Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet.

If we break it down to practical terms , we are talking about an evolution - and of course a new marketing term - of what was in the turn of the century called Application Service Provisioning (ASP). Essentially it is all about sophisticated hosted services in which we are no longer just renting a hosted server or a slice of a web server, but some more fine-grained computing resources for specific tasks that we want to perform. And the customer should be in control of these services: essentially services should be up and down with a click of a button.

Amazon, Google and Microsoft offering

As I was starting OPE AG - and of course needed a platform to run my web pages and all those little apps - I wanted to try this approach instead of simply renting a dedicated server from some traditional hosting provider. I looked at several solutions, which seemed to be more-or-less mature.

First tests I was doing already in summer 2008 with Google AppEngine as it came to beta and Amazon Elastic Compute Cloud (Amazon EC2). I liked the approach of both of them: even did some small test applications and was truly impressed on how they try to change the way web apps and potentially also other applications (long running processes and workflows) are being built.

Amazon Web Services logo Amazon's approach is to rent out virtual Linux servers and there you can run much of what you would run on any Linux box. Essentially you go to a web UI, click few buttons (including putting in your credit card details) and few minutes later you have your Linux instance ready. When you run out of resources on your instance, you go back to the web UI and allocate more "boxes" or actually virtual instances of them. To facilitate scaling and their own resource allocation of instances from one place to another, they restrict your access to file system - essentially you should use their database as a storage in most cases.

Google AppEngine logo Google's story is slightly different. Assumedly they run their system over some type of Linux as well, but the access to system resources is really much more restricted. From application developer point of view you have a place where you can put applications according to certain specifications. The first supported platform was Python, but now they have also added Java to the mix. Similarly to Amazon, you should use Google's own database technology as storage for most cases. And if you do, Google promises they will scale you seamlessly in their datacenters all around the world: your applications are not installed to a single virtual server instance, but instead they are truly moving in a Grid - or in a cloud - of thousands of Google computers.

Microsoft Azure logo But those of you, who know me, know that I am really more comfortable with Microsoft .Net than Python or even Java. Though I would say that during the last few years I have become more open minded and tried out other technologies as well much more than before. However, when I do my own apps it is still so much easier to do it in .Net than try to figure out the right approach in - say Python or Java.

So when Microsoft introduced in their PDC conference last year the Azure cloud platform, I was really excited: this would be the platform for me. But at least at the end of the year, when I last experimented with it, it was still quite far from developing applications with a dedicated .Net server: You are very restricted to certain technologies and those technologies are still quite experimental. For example Google gives you much more flexibility - basically most of the Python stack - whereas in Azure you are (or at least were, when I last tried it) restricted to quite small subset. So Azure I would say is good for some specific purposes, but not for everything. It is of course developing...

Ope.ag in the cloud

So I still needed to find myself a good cloud platform - or then just forget it and get that hosted Windows server. Fortunately I run into Mosso. They call themselves "The Rackspace Cloud", but I think their previous slogan "The Hosting Cloud" was even more descriptive. You buy hosting services - or you can be a hosting provider yourself to your clients - and you are buying the computing resources from their cloud. Instead of sending an e-mail to hosting company to provision you a new web site, you go to Mosso's web UI and create the web site, Mosso logo domain registration, e-mail addresses, database etc. yourself. That truly happens in minutes. You can in fact even tell Mosso to bill your customers credit card for some monthly fee, if he/she has trusted you with its number.

First sites I created, I was truly amazed: how can it be so easy: just a few mouse clicks and you have yourself a domain, web site into which you can FTP your aspx/php, e-mail addresses and a database.

I have been using Mosso now for about six months and they in fact run quite a nice offering. Their basic package is USD 100 / month and for that you get 50GB of disk space, 500GB of bandwidth and 10 000 computer cycles, which they say is approximately the same as full capacity of one 2.8GHz server. You can divide this to as many Windows and Linux web sites as you want and you can create as many domains, e-mail addresses and MySQL databases as you want. MS SQL costs USD 5 / month / 100 MB - as many DB instances as you wish. Domain names are USD 10 / year if you book them through Mosso, but of course you can also book them from another name provider.

I am at the moment running about 10 sites for OPE AG, clients (mainly for testing) and friends. Their UI for creating and modifying sites is a bit slow: it takes time to click through all the options and somehow the UI is unpleasantly "sticky". However, you are through in less than five minutes pretty much always, so objectively looking it is not bad. Their customer service is really fast. You get response immediately and they know what they are doing. They do not provide Exchange, which would be a problem, but I am still involved with Quartal and have a quartal.com Exchange account, so it does not bother me. If I did not have an Exchange account, I would probably take one from a hosted Exchange providers - they cost like 10-20 euro / month.

So overall I have found my solution in the cloud and I am quite happy with it.

Picture of Olli Perttilä Last updated by Olli Perttilä on 31.5.2009