The word "cloud" became a buzz-word quite a while and Google search results for the word cloud is far away from real clouds in the sky. Although, many people and even web developers are quite away from understanding of what cloud is, how it works and how to take an advantage by using it. So clouds are really "cloudy".
Being a web developer this topic is in area of my interests for some time, but I always thought that clouds are for really big players. By big I assume million of clients, billions of page loads, terabytes of data, etc.. My mistake!
Recently I came across with Rackspace cloud and understood how wrong I was. It changed my understanding into more practical way and I gave up my VPS and moved to the cloud.
# What is the cloud
Cloud is something where I can put all my data and my code and it will work somehow, by definition 😃 In real life cloud is a hosting, thats it. It looks and acts like a VPS hosting.
The major differences are described below:
Quick spin upYou may remeber your first purchase of VPS hosting service. It took about 24 hours to get your new instance working. In cloud it is a little different. All you need is to enter your admin panel and order new server. You may choose CPU, RAM, HD space and operating system (10+ Linux distribution or windows OS). In minutes your server is ready to use and you may login with SSH and start your business.
Either you need new server for new project or just for testing purposes or your load increased, it is easy to create and delete servers in a minutes.
Scale to meed demandsNeed a bigger server? Hit the upgrade button and re-size your server instantly with more RAM, CPU and space. Useful for increased load, there is no work for migration.
Pay as you goIn case creating and deleting servers is an easy task it also means it is impossible to take money per month per sever. In the cloud there is a different approach: pay per second. You pay only for time your server is UP and running. In case new server is needed just for couple of days, you will be charged for that couple of days.
APIAll cloud providers has Application Programmable Interface (API). This means simple thing, all actions which can be made though admin panel can be made by automatically by program. This adds great scalability for application. Here is the case: your project is very successful and is aimed to North America continent customers. Usually during a day it has activity peak for 8 hours, but for rest 16 hours it is almost idle. Using Cloud API it is simple to spin up additional servers by cron task to handle peak load and kill them after. This saves money.
Load balancerLoad balancer is a simple box which balances or distributes traffic directed to one IP address to many server.
Each new connection is redirected to another server, this way it spreads site load on many server. Once one server is not enough to handle all user visits and page views it is easy to add more and more servers behind load balancer. One can be setup through admin panel in a minutes.
CDNContent Delivery Network - some sort of storage which can survive with high traffic content. It is up to cloud provider how they do it. Your duty is to upload your high traffic content like site images, user pictures, downloadable files to some cloud area and this content is always available at high speed to all world locations.
# My experience
I have rented VPS for a long time, it was cheap one, slow one. About a month ago I discovered Rackspace Cloud server, which conquered me with its speed, support and most important the price. Price entry to Rackspace Cloud is low comparing to other services.
Cheapest server with 256MB of RAM, 10GB of space is just 1.5¢/per hour that is about 11$/mth with great performance.