Nick Hardiman offers a blueprint for those who are just beginning to evaluate moving applications, services, or part of their infrastructure to the public cloud. Here are some of the initial considerations.
I build computing infrastructure to support other people's web sites. I get involved in hardware, networks, OS and applications. I build a hardware and networking layer, then add the OS layer, and finally add a layer of applications such as Drupal (a content application), Postfix (e-mail), and Bind (DNS). I then hand over to web designers and developers, who add the final business layer that customers use. Building physical servers, from going shopping to firing up the OS, takes up a fair bit of project time.
In the olden days, when I was young and dinosaurs roamed the earth, systems were developed in-house from scratch. It was hugely expensive. Nowadays, we all save time by standing on the shoulders of giants: engineers have turned those systems into commodities that the rest of us can benefit from.
Can I make my professional life simpler by offloading a lot of my work to a cloud infrastructure service provider? For those of you who are just contemplating what a move to the public cloud might mean for your organization - or if you're deciding whether it's even feasible - I want to take you on a step-by-step journey, based on my own experience. Maybe this will help you evaluate your own environment and what you might be able to gain from cloud computing options.
The model of cloud computing is split into three layers: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). IaaS is the base layer -- the cloud infrastructure service. That's got my name on it. I want an IaaS provider.
Finding an IaaS provider: Sorting wheat from chaff
I tried an exact text search for "IaaS providers" on the search engines. Bing yields 172,000 results and Google gives a million. I picked a few news articles, white papers, and company names off the first couple of results pages.
Most of the results don't apply to me. Some are Saas products, such as Google Apps, Zoho, and Salesforce.com. I don't need SaaS. Some big companies are selling products to build computing clouds. Hardware companies, like HP, IBM and Intel; software companies, like VMware, Microsoft and Oracle; and networking kit companies, like Juniper and Cisco, seem to be using cloud hype as a way of shifting a lot of big ticket items. I am neither building a private cloud nor blowing my fortune.
White papers tell me Amazon AWS is the biggest name in cloud infrastructure services . If I have a problem, I can find endless AWS technical support information on the web.
Rackspace is also a big player; I met Rackers who told me about the Rackspace purchase of Slicehost and their OpenStack project. I know they are working hard to build an excellent open-source-based service, and Rackspace appeals to my open source philosophy.
I know a lot of techies in boutique web design houses who use boutique web hosting providers here in the UK. They like the local supplier advantage. What appeals to me about the small cloud providers is the support: I can actually get these guys on the phone. The slick automated administrative web site of AWS keeps me away from real people. However, some of these boutique providers seem to be using the cloud word in vain. They offer the virtual machines, but they are missing cloud features such as utility pricing and massive elastic capacity.
I have decided to try the AWS cloud. I settled on this provider because
- AWS seem popular
- They offer Amazon VPC (Virtual Private Cloud). When I design an Internet cluster, most of it is a private network and there is a fair bit of integration with enterprise applications. The VPC may be useful in the future. There's only one way to find out.
- The barrier to entry with AWS is so low that I can just play with the service and see how I like it. If the relationship with AWS doesn't work out, I can always jump ship later.
Any small company may benefit from renting one virtual machine from a cloud provider to fill a tactical need, even if the company does not care about cloud attributes like dealing with traffic spikes and removing idle capacity. Cloud computing is cheap, it's everywhere, it covers many basic needs, and you don't have to be a genius to use it. It's like shopping at Walmart.
It's a little trickier for a big company to pilot IaaS usage because they have complex business needs. The machines on offer are unlikely to be a great fit with requirements without a lot of bespoke tailoring. Luckily for me, I am that tailor.
Now that I've decided to go with AWS, I'll follow up with some of the basics in future posts, such as opening an account and creating a basic Amazon Machine Image (AMI).