Over the last two months we have been reviewing alternative IT hosting solutions for the timetotrade website. There are three types of solutions that we are looking at, one of which is Cloud Computing. Our initial research into Cloud Computing may be of interest to IT Professionals and timetotrade users who wish to develop an understanding of new products that companies such as Amazon, Google, IBM and Microsoft are either currently offering or bringing to market.
The three types of hosting solutions that we are reviewing for the timetotrade website are:
- Buy Servers, lease data centre space with networking and manage the solution ourselves
- Lease managed servers from a service provider including networking and data centre management
- Implement a Cloud computing solution
The first two options are classic solutions, however the third Cloud computing option took a while to unravel the details of what you actually get and how much it costs. The following focuses primarily on exploring the Cloud computing option and compares it to the other options available.
Firstly, what is Cloud Computing? Basically it is a means of sharing computing infrastructure between multiple users. The owner of the shared computing infrastructure maintains and operates it, while users upload software onto the shared resource and pay the owner for the amount of processing that they require. The amount the user is charged is historically based on either the amount of ‘CPU cycles’ ie. the amount of work done by the shared computing infrastructure or by the amount of time the computing resources are used.
The concept of sharing computing resources between users is not new and dates back to the earliest computers. What is different about Cloud Computing solutions is the ability to access the infrastructure via the internet i.e. the cloud, and then remotely configure it, as if it were a traditional server. As a result a user can remotely set up a computing ‘instance’ on the shared computing resource, were an instance is equivalent to the computer (server) described in the solution requirements below. For example consider a university with a large dataset that they wish to process, which is beyond the processing ability of local university computers. Using the cloud, the university would be able to set up multiple or large ‘instances’ to process the data. When finished, they turn off the instances and free up the computing resources for another user. The university is only billed for the time they use the Cloud processing capacity. All of this is set up by the university staff from the comfort of their own premises without any input from the owners of the cloud computing infrastructure.
From here on in this blog entry is more aimed at IT developers and admins. In case I loose you at this point, Cloud computing is here to stay with the big selling point being the flexibility to get access to as much processing capacity as you need, when you need it.
In researching cloud solutions I initially tried out the Aptana Cloud to see how easy it was to set up. Aptana have a nice Eclipse plugin that enables you to launch a project from within Eclipse. It took about 15 minutes to work out what to do using the very helpful webcasts and then another 15 minutes to set up an account and publish a simple PHP website with a Word Press blog using MySQL. The Aptana solution was very easy to set up however it is more focused on lower end website hosting and when I used the entry solution to display an eZine it was very slow. What did get my attention was the higher specification Amazon ‘EC2′ offerings, as it was more in line with the type of solution that could be used to host timetotrade. In assessing the Amazon Cloud computing solution, the main areas of focus were security, CPU processing capacity, disk I/O and memory performance. In summary:
- Cloud security would appear to be good with strong port and access control (using keys rather than passwords), however there is some concern regarding what would happen if a hacker got control over the VM ware; Ref: O’Reilly EC2 security review and Tips for Securing Your EC2 Instance
- I/O disk performance looks acceptable with read times largely in line with what you would expect from a SAN (Storage Area Network) or locally attached disks; Ref: Paessler’s Comparison of hosting options and Mudy’s blog on EC2 IO
- Memory speed would appear to be significantly slower than your average server, with a local server performing four or five times faster than an EC2 Instance. For some of the products that we are rolling out this is a real concern; Ref: Paessler’s Comparison of hosting options
- Regarding CPU capacity there are consistent reports that CPU intensive programs are only able to get access to 50% of the supposedly available CPU capacity. However the counter argument from Amazon is that they have sold a measure of computing capacity which does not relate the the CPU providing that capacity. This is a perfectly acceptable response, but it does make it hard to determine what amount of processing you are actually getting for your money. That being said out of all the concerns this is the least important as the timetotrade solution is more bound by disk I/O and memory performance. Ref: CPU Utlization below 50% and CPU performance 50% of expected
The next big question is cost of ownership; is it cheaper to build and maintain your own solution, lease it or use the Cloud? To assess the cost of ownership, the following basic requirement bench mark was used:
- Hosting: Single data centre solution i.e. no replication between redundant sites or load balancing costs
- Servers: Single server with two Quad Core 2.5Ghz Xeon E5420 CPUs; 8 GB RAM
- Storage: 4×146 GB SAS Disks in a locally attached RAID configuration
- Networking: Inbound IP requirement of 1 TeraByte with an Outbound requirement of 50 GB per month
- Security: Firewall, Intrusion Prevention, Detection etc
- Life Cycle: 3 year depreciation on hardware
Option 1 - Build Your Own:
- Hosting: Adept provide 4U of rack space for £99 setup plus £1,709 for 12 months hosting based on their website prices
- Server Cost: DELL™ PowerEdge™ 2950 at £2,444.00 or £92.00 for 36 month financing
- Storage: 4 x 146 GB drives included in server cost
- Networking: 4 TeraBytes of Data transfer included with Adept Hosting solution
- Security: Entry level Fortinet Fortigate appliance at £1,500 (approximate)
- Strengths: Full control over solution; Good disk I/O and memory performance due to exclusive usage of local resources
- Weakness: Pricing does not include the cost of in-house solution monitoring and maintenance; tied into hardware for three years; no facility to test new software loads in a live environment; not immediately scalable
- Total Cost (36 months): Set up cost is £3,308 plus £92 per month, which is equivalent to £184 per month over 36 month period
Option 2: Leasing (based on FastHosts website pricing)
- Server: 2 x DS 850 to get the equivalent server configuration; cost £189 x 2 = £378 per month
- Security: includes networking and security
- Storage: 2 x 500 GB SATA drives per server i.e. 4 in total
- Network: includes networking and security
- Strengths: Local hands on Support Provided by FastHosts; additional capacity can typically be provisioned within 24 hours
- Weakness: Not ideal disk configuration; reduced control over solution configuration; no facility to test new software loads in a live environment; tied into 12 month contract
- Total Cost: £378 per month
Option 3: Cloud
- Server: Amazon EC2 Extra Large Instance at $2600 setup plus $0.24 per hour (based on 3 year term hosted in US); monthly operating cost is $175; at a GBPUSD exchange rate of 1.5 that equals £117 per month; set up cost at a GBPUSD rate of 1.5 equals £1,733
- Storage: 1690 GB of temporary instance storage included; persistent storage on Amazon S3 is $0.15 per GB-month of data stored. Assuming 50 GB of persistent storage is needed for backups and rebuilding instances, it would cost £5.7 per month at a GBPUSD rate of 1.5
- Networking: 1 TB Data In at $0.10 per GB plus 50 GB Data Out at $0.17 per GB at 1.5 GBPUSD exchange rate equals £72 per month
- Security: included in solution
- Strengths: Lots of local storage with off site persistent storage for backups etc; the ability to flexibly increase processing capacity or reduce it accordingly; good SLA if backed up by actual performance; can temporarily turn up multiple instances to test different software branches before going live or merging code
- Weakness: Possible memory performance issues; unknown security threats; costs based on Dollars which could increase the cost of ownership over time; currently doesn’t support load balancing but can be implemented via a ‘roll your own’ approach; that being said Amazon have announced a loading balancing solution scheduled for release during 2009; possibly latency issues if you set up a US instance for a UK customer base in order to get the more competitive pricing; 3 year instance reserve payment required to achieve quoted costs
- Total Cost: set up £1,733 plus £195 per month which is equivalent to £243 per month over a 36 month period.
Conclusion:
The most cost effective and highest performance solution is to build your own, but the pricing does not include the additional engineering resources required to maintain and monitor it. As for option two, the leasing costs could possibly be reduced by finding a provider that offered a higher spec single server solution however you do get engineering support. The weakness of both of these solutions is lack of flexibility as you are tied into a hardware infrastructure for the contract period or life cycle of the equipment, with no provision for replicating the live environment for testing.
After researching the Cloud solution I had initially discounted it due to concerns relating to performance but what keeps drawing me back to it, is the core unique selling point - on demand computing. Using the Amazon solution we would have the ability to create a disk image and deploy it at will, be it for testing, increased capacity or to rebuild another instance in a different region after losing a data centre in the event of a outage. Amazon are also talking about rolling out a load balancing solution with the on-demand creation of instances when capacity thresholds are hit. Combine this with the ability to distribute the instances across multiple regions and you have a very high availability solution with small incremental on-demand processing costs, as you don’t have to commit yourself to one large instance. This is the real strength of the cloud computing - flexibility; but is it worth the trade off on system performance and financial cost?