Today, the Cloud computing model and the Infrastructure as a Service (IaaS) Clouds provide a very interesting value proposition for companies seeking to co-locate their servers virtually or to upgrade the existing colocated servers at a lower cost with better services.
For many years now, small to mid size businesses including ISVs have been running colocated servers with the ISPs and hosting vendors. The cloud computing/IaaS model gives them new opportunities and possibilities to enable the server co-location model in a virtual manner and gain advantages including the pay as you go pricing,scalability at a lower cost,gain business agility,slash time to deploy etc.
In this post , I would like to share the context of (virtual) co-location with the cloud computing and specifically on some of the important things that you should look for when you want to virtually colocate your servers effectively,leveraging the benefits offered by the cloud at the lowest risk.
First,Lets look at the basics of Co-location
- Colocation is a hosting option for small businesses, who need the features typically found in a large IT department without incurring in upfront IT Infrastructure costs. It involves moving your server machines in the Colocation hosting provider’s rack and share their Internet bandwidth as your own.
- Key Advantages of co-location are
- Lower cost of bandwidth
- Better outage protection
- Flexibility to upgrade the server capacity without depending on the hosting vendor
- When you own the server software. You don’t have to rely on the hosting provider to install the software or tools that you want to deploy and use. You simply do it yourself. For example an Informatica BI Server with Oracle RDBMS.
- Colocation providers facilitate that your server is stored and maintained in a secured environment
- Colocation providers offer a service to manage and maintain your server for you for an extra cost. This is useful if you don’t have an IT team at your company.
- If your business moves,you take out your servers and move it to another location
- You can similarly move out your servers,if there are other business reasons.
Leveraging Cloud Computing Services to (Virtually) Colocate your servers.
The Cloud computing model ,especially the Infrastructure as a Service (Iaas) offers possibilities to virtually co-locate your servers or upgrade your existing c0-location servers . By Virtual Colocation on the cloud, the scenario is that you should be able to ‘ship in’ an existing server in a virtualised form to the cloud or build and run a new server on the cloud with complete control and ship it out of the cloud if needed.
The picture below depicts the notion of a Virtual server co-location
- Ondemand ,Cloud based Infrastructure as a Service provides you a virtual datacenter with infinite capacity and scalability (theoretically) to provision your servers.
- Basically on an IaaS Cloud , you can build your own server and host it akin to moving your machine physically inside a hosting provider’s rack in a coloc. model.
- You get a business class bandwidth and security that a typical Co-location service provider would provide
- You only pay for what you use from an IT Infrastructure (server,storage and network bandwidth)
- You can upgrade your server capacity to a higher level based on your business needs
- You can decide to do whatever software you need to install and uninstall on a Cloud Server as per your wish.
- You can get the IT support for your cloud servers.
- Some of the Well known Public IaaS Cloud service providers are 1. Amazon AWS, 2. Rackspace 3. CloudSigma 4.GoGrid 5. Terramark 6. SoftLayer 6. Tata Instacompute 7. AT&T 9. IBM Smart cloud 10.Flexiant .
But with the above advantages offered by Cloud computing services that could help enable a virtual [co-location] feasible,you would soon realize that leveraging Cloud for a virtual co-location of your servers is not going to be easy? Why?
Described below are some of the scenarios/key challenges of making a virtual co-location difficult on a Public Cloud service.
- Scenario-1 :- You have a physical server co-located at present (e.g. Ubuntu 10.04 ) , you want to virualise it and run it on the cloud with a higher configuration ? Is it possible to virtualise and ship in your server in to the cloud?
- Scenario -2 :- You want to build my Cloud server from the scratch very flexibly per your own definition and control, You want to choose the No. of CPUs,Speed of the CPU,RAM size, Hard disk size and the no. of hard disks,then choose the OS version that I need etc. Is this possible?
- Scenario -3 :- You should be able to build a server capacity in a fine grained manner. Meaning, You dont want a Cloud vendor offering RAM for the basic server at 512 MB and then the next capacity at 1.7 GB and then to 4 GB. Rather, I want to move from 512 to 1 GB to 2.5 GB? Similarly CPU speed,RAM size etc. Note :- The fine grained capacity changes in building a cloud server gives you an unprecedented control in the cost of running your servers especially if you wish to run many servers. When you want to upgrade to a specific capacity, you have a great flexibility. You need fine grained capacity build up. Why would you need a 8 GB RAM server with 8 CPUs with 2.8 GHZ and 500 GB HDD ,when all you need for your software app. to perform well is 3.5 GB RAM with 5 CPUs with 1.5 GHZ and 100 GB HDD ?
- Scenario- 4:- You want to ship out your virtually co-located server and the data from the cloud in the very same manner as how you would just disconnect and physically move your server from the colocation place to another location.
The above four scenarios signifies some of the key requirements and dependencies for virtually colocating and running your servers on the cloud.
It is to be noted that a majority of today’s Public Cloud Service providers donot provide options for implementing this with the exception of CloudSigma. Here are some details
- Amazon AWS provides a proprietary machine image format (AMI) of various OS and appl. infrastructure stack on which you should implement your software.
- You cannot Virtualise and ship your existing colocated server in an ISO format into the cloud and boot it.
- You cannot build your cloud server with a fine grained capacity and scale as per your needs .
- You have to transition or upgrade to the next higher level capacity in a stepped manner as per what they have defined and not as per what you want to.
- Finally and most importantly, Let’s say you are now running a number of virtual (co-located) cloud servers and for some business or vendor related reason ,you want to move the server and data out of the cloud? This is not going to be possible as most of the cloud service providers including Amazon and Rackspace doesnot provide a way to ship out your server that you are running. This is a lock-in and is one of the biggest risks. You need portability!
CloudSigma and True IaaS Cloud Services