I currently need a cloud service provider to host my website and applications, my search took me in 3 main directions
· Microsoft windows Azure ,
· Shared hosting service providers and
· VPS (virtual private servers).
Cloud Computing?
Cloud computing can be loosely defined as a technology in services are provided over the internet/network to clients/users, in other words, it’s a method of computing in which the hardware producing the service is remotely located and the service is given on demand, all that’s needed from the client is a browser, internet/network connectivity and maybe a credit card to make the payments for the service rendered, just joking about the credit card bit, some cloud services are free of charge e.g. facebook, yahoomail, gmail etc yep the free internet services and websites that you know and love are actually implementations of cloud computing
Types of cloud computing
- Software as a service (SAAS), software offered as a service over the wire e.g. yahoomail.com and salesforce.com
- Infrastructure as a service (IAAS), hardware offered on demand over the internet e.g. computing power and virtual servers
- Platform as a service (PAAS): Application development environments offered on demand over the wire e.g. Microsoft azure services
- Storage as a Service, storage offered on demand over the internet
Microsoft Azure services
Microsoft Azure Services implements Platform as a server and according to Wikipedia provides an API built on REST, HTTP and XML that allows a developer to interact with the services provided by Windows Azure. A client-side managed class library is also provided that encapsulates the functions of interacting with the services. It also integrates with Microsoft Visual Studio so that it can be used as the IDE to develop and publish Azure-hosted applications
It provides a cloud operating system called Windows Azure that serves as a runtime for the applications and provides a set of services that allows development, management and hosting of applications off-premises.
Now ordinarily the thought of having the power of a thousand CPUs and infinite storage at your disposal should be dizzying to any developer but there are some important constraints to consider
Azure is primarily created to provide a powerful application development environment, this is great, however the downside is that you don’t have loads of flexibility, you don’t get have a machine at your disposal which you can remote into and install apps on i.e. Webserver(s), SQL Server 2008 etc
There is news that Microsoft might implement IAAS, meaning developers would be able to have bare machines to work with, install software on and tweak to their hearts desire.
Pros
Great environment for running and testing your .net applications
Cloud operating system and db integrates directly with the visual studio 2010 IDE
Cons
Not suitable as a host for simple website
Can’t install any other software, plugins etc on the platform
Does not offer root access to bare machines
Shared hosting
Is a fairly common technology and can simply be described as webserver space for rent. A webserver is the combination of software and hardware that serves web pages and related services in response request made by internet users via browsers and software. It’s simple enough, for a monthly payment they (the hosting companies) host your website and other services which you provide to your website visitors, its important to note that the servers are not dedicated and a single server will host multiple customers..
The servers usually have windows server or a linux flavour (Fedora, Ubuntu) as operating system and come with many useful web development tools and DBs installed e.g. ASP.NET, IIS, SQL Server, MYSQL, Apache, Ruby on rails, Pearl etc.
It also means what affect your server cohabitants affects you, if a website on your shared server is being dos attacked, its likely going to slow the entire server down including your running apps or website. Also you still don’t get finely grained control in that you don’t have root access to the server, you can’t install software, you have to use what the service provider offers.
Pros
The websevers tend to have website and app dev tools preinstalled.
Monthly payments tend to be very low
Cons
Any attacks on a website that is sharing a server can slow down the entire server thereby slowing all other websites hosted on the server.
The is no access to the root of the server and software can’t be installed on the server by the user
Virtual private Servers (VPS)
If shared hosting is like sharing a flat with noisy neighbours, then VPS is like living in a nice house with the ability to change furniture and fittings and even add extra rooms, and it’s all yours, no sharing.
Because VPS is an implementation of IAAS you get full virtual Servers with your choice of operating system i.e windows server or linux flavours. The servers usually come loaded with web app dev tools, databases and in some cases email servers as well. In most cases you get assigned an i.p address but you can optionally request for more, additionally because you are getting a full virual server with root access, you can remote in and install whatsoever you wish and host as many websites as you want.
Pros
Root Access and ability to install anything you wish
The great flexibility and power at your finger tips
Cons
May be tough to configure and run
Quite expensive
Conclusion
After considering all the technologies above, I decided try Azure out, and if I find it useful I will consider subscribing. Microsoft is currently doing an introductory offer here that offers the following services free of charge
Windows Azure
- 25 hours of a small compute instance
- 500 MB of storage
- 10,000 storage transactions
SQL Azure
- 1 Web Edition database (available for first 3 months only)
AppFabric
- 100,000 Access Control transactions
- 2 Service Bus connections
Data Transfers (per region)
I’ll also build a web server at home, I’ll do the following
- Download and install Microsoft server 2008 trial on my old hp laptop which I don’t use anymore (the screen is bad)
- Get a domain name(s)
- Get a personal IP from my ISP, which I can map to my websites.
- Possibly get a dynamic IP setup which allows me to host my website wherever I can find an internet connection
- Install useful web app tools and DB e.g. IIS 7, Apache, SQL Server 2008, email server (open source version) etc
- Deploy my websites/apps to my Server
- When my trial expires I will probably install a linux flavor on the server.
Should be a blast