Archive for the ‘Hardware’ Category

Why I Chose Amazon Cloud Services

Thursday, April 29th, 2010

My previous article was about how I was deciding which cloud infrastructure I should go with, and if I would go with cloud or dedicated.  Well that was a while ago and I have had the opportunity to garner feedback from several people, try them out myself, and run some benchmarks.  First off I chose not to go with Rackspace Cloud as I was intending to do in my previous post for several reasons.  The first reason was a lot of bad feedback, but for me that normally would not be enough.  The second reason was support was not very good, I worked with them on an issue for nearly 2 hours and it turns out they kept mis-spelling something when they were sending it to me causing the configuration not to work.  Thirdly they gave me date for go live for their Windows based cloud and they have severely missed it.

While those are valid reasons I have also further researched Amazons’ offerings and they have a more compelling offering than Rackspace.  They offer multiple storage solutions for different scenario’s such as EBS for database storage, S3 for static file storage.  They allow you to do a wide variety of performance enhances on these storage mechanisms as well such as striping your EBS across volumes to increase I/O performance, which could be critical if you are using it for storage.  Additionally Amazon has a rather extremely good track record, everyone has had an enormously high success rate using them, and while they are slightly more expensive I think the adage of “You get what you pay for…” may apply.

I also investigated Dedicated Hosting, which is substantially cheaper but there are several reasons this won’t work.  There is little to no way for flexible database storage, you either setup another box or put on the same box you are hosting your web.  After which you have to rely on a substantially simpler architecture, its usually a single virtualized hard drive.  In the case of Amazon they take snapshots of your EBS for you and its kept on independent zones so if one zone goes down it fails over to the other.  I am sure there are dedicated hosting sites that might provide a similar setup but I didn’t find any that mentioned it.  Additionally storage size is very limited, dedicated often charges you an enormous fee for each GB and you typically only get a very small chunk up front.  I could go with Amazon S3 from a dedicated host but then you would suffer the penalty of coming across the network and you would suffer bandwidth charges.  If you stick with Amazon all internal bandwidth charges (bandwidth within Amazon Infrastructure) does not count towards your bandwidth charges.  This is compelling because its faster, and free to make these transfers from your EC2 to your EBS, or S3.  Albeit it would make more sense if you need to send the user a file to just send it straight from S3, but what if you needed an internal file stored on S3?  Then it makes sense!

What are your thoughts and experiences?

Amazon Cloud vs. Rackspace Cloud

Friday, March 5th, 2010

Recently I have been doing some research into cloud hosting, it has become this new craze and for a very good reason.  It makes perfect sense to pay for what you use, and be able to scale your architecture in an affordable fashion.  I originally started my research with Windows Azure, and I would like to mention there are a couple of reasons I am not going to include in my comparison.  The primary reason is that Azure is a different animal, it is designed entirely different from all other cloud offerings.  You write your software against their application model, when you need to scale you aren’t actually scaling a server, you are scaling your application model.  In the case of Amazon or RackSpace you are scaling a server, if its a virtual server or not.  The second reason I am not including it is that it does not compare well to other services, it offers a bunch of different services but they all wrap it up under the same pricing structure.  I believe they made a mistake doing it this way, as it makes it prohibitively expensive for startups, or hobbyists, and these are the two markets that tend to push cloud the hardest.

A little disclaimer before I start.  I, Eric Malamisura, or Elucidsoft LLC. are not related to or affiliated with either Amazon, or RackSpace in any way shape or form.  All opinions, data, and thoughts are expressed solely as my own.  Additionally all data posted here is recent as of this posting, all prices are subject to change as each company may change their pricing structure to be more competitive.  I suggest you check out the site directly and do a true comparison yourself.

So to begin the comparison, let me detail the benchmark.  The benchmark website was taken from a popular internet website and was scaled down by 85% for the sake of sanity and not to scare the living daylights out of peoplewith huge numbers.  Here is the following benchmark:

I am using two different models for requests since each site handles it differently, for Rackspace I am taking the above numbers, and combining them, and then reducing them due to the way Rackspace splits them up.  For that number we have 27500 requests under 250KB, the remaining 7500 are free.

So lets start off with Amazon, which appears to be the de-facto standard for cloud hosting right now, they are the most popular choice and the one with the best track record. Then we will move on to Rackspace, they certainly have a name brand for themselves. Everyone knows who they are, that they have a known track record for being very high quality.  They have recently gotten into the cloud market, offering several solutions through their RackspaceCloud suite.  I am going to be comparing RackspaceCloud Servers and RackspaceCloud Files.

I tried to double and triple check these numbers, if I made a mistake or looked over something please kindly point it out in the comments.

Benchmark Site

Platform: Windows

Bandwidth:

In: 480/GB a month
Out: 180/GB a month
Requests: PUT/COPY/POST/LIST: 15000, GET/*.*: 12500

Usage:

CPU Usage: 100% a month (732 hours = 30.5 * 24)

Storage:

175/GB a month
In: 20/GB a month
Out: 1,000/GB a month

Amazon EC2 (Windows)

With the Amazon EC2 service, to my understanding you basically get a virtual server and you can install or do whatever you wish with it.  Below are the 3 tiers for Northern Virginia, USA on a Standard On-Demand Instance for Windows.  The AmazonEC2 service is primarily used for hosting your site and not for storage.  As you can see there is not a ton of local storage for your use, and the storage is not persistent.  That means when the instance is reset/reboot or whatever anything stored on it will vanish.

Bandwidth:

In: $0.10/GB a month
Out: $0.15/GB a month

Usage (CPU/Memory/HD non-persistent/cores):

Tier1: 1.2Ghz/ 1.7GB/160GB/1 virtual core = $0.12/hr
Tier 2: 4.8Ghz/7.5GB/850GB/2 virtual cores = $0.48/hr
Tier 3: 9.6Ghz/15GB/1,690GB/4 virtual cores  = $0.96/hr

Total price based on benchmark site for tier 1: $114.84/month

Amazon S3

Bandwidth:

Out: $0.15/GB a month
In: $0.10/GB a month

Storage:

50/TB a month = $0.15/GB
if above exceeded, 50/TB a month $0.14/GB
if above exceeded they continue this stepping model, see site for more info…

Requests:

PUT/COPY/POST/LIST $.01/1000 requests
GET/*.* $.01/1000 requests

Total price based on benchmark site: $176.43/month

Amazon EC2 + Amazon S3

The complete Amazon solution would be to combine Amazon EC2 with Amazon S3, it is worth mentioning that any bandwidth costs between EC2 and S3 are free as well.  But everything else is still the same, you do have another option for storage that I did not compare.  Amazon EBS, which is designed to act as a permanent file system for your EC2 instance, it differs from S3 because EBS can be directly attached to your EC2 instance and it can be used for storage of your DB files, etc.  It is not meant for public consumption to my understanding but more to be used as a static file system since EC2 lacks such.

With that said, the total price of Amazon EC2, and S3 above is: $291.27/month

RackspaceCloud Server (Windows BETA)

A couple of things about RackspaceCloud Server, first thing that is substantially different is that storage on their server IS persistent.  This is probably why you get less, because you can use it for storage, and this also may prevent you from purchasing an additional service for local storage up front.  Also each virtual instance gets 4 Virtual CPU’s as opposed to Amazons EC2 where they use a tier based model.  RackSpace Cloud also uses a different model for CPU power, they “weight” each instance so you are guaranteed a certain degree of CPU power, but you are also guaranteed burst capability in case you get a spike and need it.  You are also given much more flexibility on choosing your pricing tier, they offer a wider degree of choices.

Bandwidth:

Out: $0.22/GB a month
In: $0.05/GB a month

Usage (CPU/Memory/HD persistent/cores):

Tier 1:  at least 2Ghz/512MB/20GB/4 virtual cores = $.04/hr
Tier 2: at least 2Ghz/1 GB/40GB/4 virtual cores = $.08/hr
Tier 3:  at least 2Ghz/2 GB/80GB/4 virtual cores = $.16/hr
Tier 4:  at least 2Ghz/4 GB/160GB/4 virtual cores = $.32/hr
more tiers are offered, see their site for more information…

For proper comparison I want to mention that tier 3 is the closest match to the tier 1 Amazon EC2 version.

All prices are based on the benchmark site mentioned above:

Total price for tier 1: $107.28/month
Total price for tier 2: $137.56/month
Total price for tier 3: $195.12/month

RackspaceCloud Files

Bandwidth:

Out: $0.22/GB a month
In: $.08/GB a month

Storage:

Unlimited space/$0.15/GB a month

Requests:

Files over 250KB/Free
File under 250KB/$.01/500
HEAD/GET/DELETE Free

Total price based on benchmark site: $110.95

RackSpace Server + RackSpace Files

So the RackSpace Server + RackSpace Files solution seems pretty attractive, and from my research it really is pretty attractive.  Especially since they offer a substantially more compelling offer if you want to start small and move up as needed. Amazon kind of starts you off more medium to enterprise, while RackSpace you can go micro to enterprise, which is pretty compelling for a micro-isv in my opinion.  I want to also mention something that is kind of important, with Amazon if you want good support you need to purchase their “Gold” support.  With RackSpace you get their fanatical support for entirely free with your package.  There are some disadvantages although IMO minor, RackSpaceCloud is all based in Texas, USA.  The Amazon solution will allow you to setup servers around the world at various locations, however Amazon does charge quit the premium for those as well so it might not be worth it.

Total price for the whole RackSpaceCloud package with tier 3, Server + Files is  $206.07

Conclusion

The choice all depends on your needs, for my personally I am going to go with RackSpaceCloud I think.  This may change in the future but it costs me nothing to setup an account, and give it a go and see if it fits my needs or not.  For more information check out Amazon Cloud, or RackspaceCloud and compare for yourself.

Update: I ended up going with Amazon Cloud, and wrote a post about why I made that decision.

Micro-ISV Backup Strategy

Saturday, February 6th, 2010

A backup strategy for a micro-ISV is one of the most important things you could have, you are not typically working in an enterprise environment, you do not have the hardware, tools, or money to afford expensive backup solutions.  You also need a solution that is more redundant and automatic than the typical home user backup strategies.  I am going to discuss a couple of solutions, and ultimately the solution I chose to take, and future plans I intend to take.

On Site Backup (keeping it simple, and free)

First and foremost, getting a backup solution in place is very simple.  If you are using Windows you can simply use the built in back up tool, point it at a USB drive and be on your way. If you are using OSX you can use Time Machine.  I have a pretty good experience with Time Machine,  but a horrible experience with the Windows Backup Utility, even the one that comes with Windows 7 fails for me about 75% of the time.  So I chose not to use it, I still use my Time Machine for my mac computers.

On Site Backup (keeping it moderately simple)

The next choice is to use a server setup, you can buy a very cheap Windows Home Server for around 400 bucks, about 1TB of space.  It has an easy to use web interface, allows you to plugin more hard drives that it will automatically add to its virtual disk space.  It also comes with a nice set of backup tools, I have many friends that use this solution and it works great for them.  I however, do not have enough space at the moment to use it but I plan to implement this shortly.

Read more about Windows Home Server

HP EX475 MediaSmart Home Server 1TB (Amazon.com)

Off Site Backup

Next up is off site backup strategies, these are often used by enterprises in the event of a catastrophe, such as a fire, etc.  For a micro-ISV this is essential to have mainly because the hardware you are using to do your backups on is not going to be very redundant.  Redundancy is expensive, not only in hardware but in electricity to power all the extra hardware to implement it.  That is why it is more cost effective, in fact free in some cases to use an online backup strategy.

I chose a very popular online backup company to do this, that offers 2 GB for free.  They also encrypt your data using 448 bit encryption before it gets sent up the wire to protected your intellectual property.  They have a tool that you can download, it will run a backup every 12 hours and sync with their server.

They also have a Pro version that lets you get more involved, backing up servers, multiple computers, etc.

Read more about Mozy

Online File Storage

Not really a backup solution, but a way to protect your important documents.  Using an online file storage mechanism will let you keep your files on a server in the cloud that is running on redundant hardware, they also tend to have pretty serious disaster recovery plans in place to protect your data.  The most popular one I use is called DropBox, not only does it protect your file but it lets you keep these files in sync on all of your computers.  It installed a folder on your computer, you put file in it, and they get synced automatically to the cloud, and to any other computers you have DropBox installed.  It works seamlessly behind the scenes, and its awesome!

Read more about DropBox

Protecting Non-Documents

Last but least, and something that is often overlooked in backup strategies is notes.  Lets say you jot down a note, a phone number or something important.  This information is often lost by getting tossed, misplaced, or if you use your computer to save your notes off you may overlook that location when doing backups.  The best way to protect this is to store them in the cloud, much like DropBox, but more focused on less formal documents.  I use Evernote for this process, its easy, simple and they have support for it in multiple forms.  They have an iPhone Application, OSX App, Windows App, WebApp, etc.  so that at any time, any place, you can quickly save a note into the cloud.  These notes also get synced to all your other devices that have Evernote installed so its a seamless experience.

Read more about EverNote

Additionally if you need to protect your email, calendars, and documents in one central place you can use Google Apps for Business.  They offer GMail, Google Calendar, Google Docs, and more for your domain.  There is a free and a pay version, the free version is a little bit difficult to find on their site but its there with a couple of small limitations.  The pro version offers much more space, among other things.

Read more about Google Apps for Business

Building a Dev Machine for an ISV

Tuesday, January 26th, 2010

THE PROBLEM

The product I am developing is an enterprise platform, with which comes many difficulties.  Primarily, testing on multiple platforms in multiple configurations.  Typically I use Parallels or VMWare to accomplish this which works great.  However, my poor development machine is on its last leg, it only recognizes half of its memory now (2gb of 4gb) and its nearly 6 years old, which is like 60 years old in computer terms.

THE SOLUTION

In any business you must make wise decisions, I drew up the pros and the cons, and decided to take the plunge for a new machine.  After going to Dell and HP and such and building a machine, I was kind of shocked at the quality of the stuff you get for the price.  You get very poor quality components, and they are very expensive, although they use several techniques to make you think you are getting  a good deal.

So, as with all my previous systems I chose to build my own.  I wanted to go the cheapest route without sacrificing performance, so kind of a middle ground.  So I went to NewEgg (not cheapest but I have good experiences with them) and purchased a case, motherboard, cpu, memory, and a power supply.  I can salvage from my current computer the DVD-RW and the Hard Drives.

THE MACHINE

The specifications of the new machine are, Intel i7 2.66 GHZ QuadCore w/6GB DDR3 Memory, which should handle any VM problem I have quite nicely.  The motherboard I have has six memory slots so in the future if I need additional memory I could easily bump the 6GB up to 12GB and with quad cores I will have enough processing power to run these VMs quite nicely.

I chose the following components, for the following reasons:

  • Case: Antec Three Hundred Black ($59.95) – Chose this because its cheap and Antec makes excellent cases.
    Note: I no longer recommend this case for the configuration I have outlined here, the video card does not really fit, I had to sue a Dremel to cut a slot into the case to make it fit.
  • Motherboard: EVGA E758-A1 ($285) – This was a hard sell for me, its mainly a gaming motherboard but the x58 and the new LGA 1366, plus the 6 memory slots is what sold me on it.
  • PSU: CORSAIR CMPSU-650TX  ($90) – Cheap and lots of power for the i7, Corsair has the best and most reliable power supply systems.  A PSU that holds a steady power flow means a more reliable computer, spikes and dips can cause crashes and hangs.
  • CPU: Core i7 920 2.66 Ghz – I need quad cores for multiple VM instances. The next version up was almost $200 dollars more for 2.92, simply not worth it.
  • Memory: CORSAIR DOMINATOR 6GB (3 x 2GB) DDR 3 – Very high performance memory, low CAS latency, many people overlook the memory which is unfortunate because most of the time what you are working on is in the memory, so fast access is key. Also lots of memory means I can run more VMs concurrently.
  • Video: SAPPHIRE 100270SR Radeon HD ($210) – This is completely optional but I chose this video card because it has 4 DVI outputs.  I use a three and sometimes 4 monitor setup when I am developing, Scott Hanselman wrote an article on how important this is for developers and how it increases productivity.
  • HDD: WD 320 GB 10000RPM Raptor (salvaged from current) – Fastest non SDD hard drive on the market, makes a massive difference when running VMs due to read/write contingency especially in a fragmented scenario.

Total Cost: $1164

Do I think this business decision will repay itself?  Actually I do overtime, for me this included some convenience and practicality. But having a cutting edge development machine can’t hurt, and at just over 1k that is very cheap in comparison.  So are you running an ISV?  Do you need hardware to power your business?  I would recommend building it yourself to start out, you can save quite a bit of money and overall get a much better machine.

I plan on building  a couple of servers down the road, and I will make posts about those as well.  Remember that company called Google? Yup, they built all their hardware in house when they started out!