Your personal server farm on demand
A good friend of mine has recently brought my attention to the EC2 service by Amazon. I touched this subject some 18 months ago, when Alexa opened it's search infrastructure to developers. Lots of things have changed since then. EC2, the Elastic Computing Cloud, accompanied by S3, the Simple Storage Service delivers the entire data center of any size, personalized and dedicated.
With EC2 this could have been much simpler. Create software images of machines you need. The front-end web server, the application / query processor node, the storage processing node, the crawler / indexer node and so on. Then upload all the virtual machines to The Cloud, set up networking between them and to the world, start as many instances of the machines as needed and the take off is completed. Your service is gaining popularity? Just start new instances of the processing nodes (assuming the application is architected to scale-out, but this is a prerequisite nowadays anyway). Not enough bandwidth to handle the traffic? Just drag a slider to the right, Amazon will be pleased to offer you more when needed. Of course you pay for all this (processing power consumed, bandwidth consumed), but taking all aspects into account, hosting your service this way is much cost effective for you.
We do not own planes, but we fly. We do not own trains, but we ride them. We do not own buildings, but we run our businesses in them, as they were ours. The same paradigm has finally reached server computing. Have an application? Click on the Elastic Computing Cloud, create yourself a personal server farm on demand and run it. In the end... you do not have to buy a restaurant when you're hungry or want to host a party.
PS. Although Amazon has been the first major player to offer a service like that, I am more than certain the others, especially Google, are going to offer similar services. Soon buying a server will mean downloading its virtual machine image over the Internet.
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.Starting a Web 2.0 company has never been easier. Of course you need a good idea and development skills. And you still need to code your system. But the obvious barrier so far has been the start of commercial service once the application has been coded. I wet through this with a couple of friends when we conceived the Overto service (an aggregator of Polish auction sites). One of us coded the application, but then we had to buy a rack, put it somewhere in an air-conditioned room (renting the room first), fill it with servers and storage, connect to the Internet (leased lines, firewalls), equip with uninterruptible power supplies, and in the end pay the bills for electricity and connectivity. And when, due to increasing traffic, we started hitting the ceiling of both hardware and bandwidth, it was again painful procedure to put more physical servers in the racks and upgrade the Internet connection.
Each instance predictably provides the equivalent of a system with a 1.7Ghz x86 processor, 1.75GB of RAM, 160GB of local disk, and 250Mb/s of network bandwidth.
With EC2 this could have been much simpler. Create software images of machines you need. The front-end web server, the application / query processor node, the storage processing node, the crawler / indexer node and so on. Then upload all the virtual machines to The Cloud, set up networking between them and to the world, start as many instances of the machines as needed and the take off is completed. Your service is gaining popularity? Just start new instances of the processing nodes (assuming the application is architected to scale-out, but this is a prerequisite nowadays anyway). Not enough bandwidth to handle the traffic? Just drag a slider to the right, Amazon will be pleased to offer you more when needed. Of course you pay for all this (processing power consumed, bandwidth consumed), but taking all aspects into account, hosting your service this way is much cost effective for you.
We do not own planes, but we fly. We do not own trains, but we ride them. We do not own buildings, but we run our businesses in them, as they were ours. The same paradigm has finally reached server computing. Have an application? Click on the Elastic Computing Cloud, create yourself a personal server farm on demand and run it. In the end... you do not have to buy a restaurant when you're hungry or want to host a party.
PS. Although Amazon has been the first major player to offer a service like that, I am more than certain the others, especially Google, are going to offer similar services. Soon buying a server will mean downloading its virtual machine image over the Internet.
EC2 has rekindled interest in utility computing, but there are services that go further.
ReplyDeleteWhile EC2 essentially rents virtual servers by the hour, limitations such as the lack of permanent storage in the VMs and the inability to add common infrastructure like load balancers, mean you have to tailor your application to EC2 in order to scale.
At 3tera, we spent two years building a system to enable services that let folks use utility computing without the need to change ANY code. An example of one of our partners is The Gridlayer.