Wednesday 28 April 2010

Windows Azure vs VPS vs Shared Hosting

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)
  • 500 MB in
  • 500 MB out
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

Saturday 17 April 2010

Mono for the Iphone

While searching for a c# open source project to work on on the mono website, I found mono touch, a framework that allows .net developers to interact with the iphone dev API. meaning .net pips can design apps for the iphone and ipad, how cool is that?!!!

It can be found here, the only downside is that its not free... who said the best things in life are free..

I do not like Steve jobs' business model of select few marketing, especially with the iphone, its unbelievable that its still not been officially released in many many countries, why make a great product and restrict access to that product?? there's also the tight grip on software released for the iphone, don't even get me started on that..

Anyway the iphone is a great gadget/platform and many many .net developers (me inclusive) would love to get in on the action without having to code objective C; the iphone's dev language.

I will play around with monotouch and post findings.. wonder if there is something out there for android as well, now that's a platform i would like to sink my teeth into.. sigh

Still searching for my open source project of choice though.. will post progress on that too

Currently downloading visual studio 2010, will play around with that and post first impressions on that as well..

Saturday 10 April 2010

I love I.T

why is it that you never hear doctors talk about the amazing new stethoscope they were given, or engineers going on about the hi tech machinery the company just acquired, but developers and other i.t geeks can never stop harping on about the new release from Microsoft, oracle etc.. could it be because Info tech work is the only profession in the world that is not a job but a lifestyle?



Thursday 8 April 2010

Random musings

Was up till 4am this morning testing some code I had worked on, got to the office, did some more testing, moved it from my pc to the development server and guess what.... It did not function as expected, typical isn't it.. (sigh) the joys of programming.

Will be working on it tonight though, should be fun..

I love a good challenge, I thrive on deadlines, I crave the thrill of pressure.. does everybody else feel this way.. I wonder

Tibco G.I, will be playing around with it again.. ah the memories.

I need to start or participate in an open source project.. source forge?


end of rant

Wednesday 7 April 2010

Welcome to the Blog of Abiola Isaac Omoniyi, a C# developer

This is the diary of Abiola, a peep into what goes on in the mind of a young software developer working in the UK, it will be probably contain loads of technical stuff as well as other stuff that interests me e.g politics, footie, movies, music etc

I will likely post code snippets and articles that I find useful, hopefully someone else will find some of the stuff I post useful.