When looking at hosting your site/web app somewhere what are somethings to help you to determine which method of hosting you should use? As we know from searching the internet the options are almost as limitless as the choices for what car to buy. In the last decade or two things have changed tremendously in respects to hosting web sites and or web applications. When I started hosting the most economical option was to find someone with rack space in a colocation datacenter and rent it from them. (My first colocation rack space was 1U for $100 USD/month) This allows you to control a vast majority of your hosting infrastructure, just not the networking/internet access portion of it, then again who really has control over the internet… And while colocation is still an option, it is very static and often times not as cost efficient, don’t forget your time is worth something as well.
Then Amazon Inc. made a change to how they utilize and subsequently offer up their own hosting infrastructure, giving birth to Amazon Web Services (AWS).
In a lot of ways this revolutionized the online hosting industry, giving people the option to run “Instances” and only paying for the hours in which it was used, only paying for allocated storage, bandwidth used… the list goes on. This arguably caused a great shift in the online virtual server/dedicated server market and other companies sprinted to catch up, still never making quite the offerings/customer service of AWS.
Now with all this hype about AWS, that doesn’t mean its always the right choice, AWS was originally designed for a specific targeted audience, those who believe their setup to be ephemeral, or transitory. So the idea is your critical data is stored in a data storage place (such as a database or caching system) and nothing is stored on the instances serving up the web site or web application. Now this type of setup is ideal for those fluctuating load levels that need more computing power some periods of time and less other periods. Especially when you include AutoScaling in the mix of your AWS service offerings. The other trick is that AWS when utilized like a traditional VPS (Systems running 24/7, allocating significant storage and high bandwidth utilization) can be more expensive than some VPS offerings, the trick is to determine what you are wanting to do.
Traditional VPS offerings are nice because they are a fixed cost and depending on the service company can include unmetered (unlimited amount of bandwidth) internet connections (unlike AWS which bills you for your bandwidth usage, outbound only). For instance one of the companies I’ve been using lately OVH, has very economical plans which include unmetered bandwidth. I have a number of their $3.50/month VPSes which due a but of different web App and service offerings and the speed of the machines is great, the speed of the internet is great and when you do multiple months or year plans they offer discounts as well.
Now the title mentions GCE and Azure, and while their offerings have some similar to AWS, in the case of Azure its interface and service offerings leave a lot to be desired. I found the understanding of how the different virtual machines and networking interacts kind of confusing and not intuitive at all, I probably said the same thing when I first learned AWS more than 5 years ago. However if you already have an MSDN subscription, there is a set of hours of compute/etc that you get with it, as well as discounts which is beneficial to those with the subscription.
I’ll be honest that I have not used GCE at all, but as I understand Google’s offering is very similar to Azures and not as widely used as AWS.
To summarize the options for application, site, service and other type hosting are substantial and what is needed for your specific use will need to be determine by your technical staff. However if you can get your development team to focus on more of an ephemeral design it will benefit you in the long run. It gives you more options than the traditional monolith.
The views expressed here are my opinions and not intended on being used as factual data for any decision making or reports.