<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Derivante &#187; IT Infrastructure</title>
	<atom:link href="http://www.derivante.com/tag/it-infrastructure/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.derivante.com</link>
	<description>to obtain or receive from a source</description>
	<lastBuildDate>Mon, 26 Apr 2010 18:44:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Is Amazon&#8217;s EC2 right for you?</title>
		<link>http://www.derivante.com/2009/01/26/is-amazons-ec2-right-for-you/</link>
		<comments>http://www.derivante.com/2009/01/26/is-amazons-ec2-right-for-you/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 20:50:11 +0000</pubDate>
		<dc:creator>Justin Leider</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[Hartware]]></category>
		<category><![CDATA[horizontal architecture]]></category>
		<category><![CDATA[horizontal database]]></category>
		<category><![CDATA[IT Infrastructure]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Site Architecture]]></category>

		<guid isPermaLink="false">http://justinleider.com/?p=49</guid>
		<description><![CDATA[I've been asked this and similar questions quite a bit lately. But before I delve into the answer to this I want to lay the foundation and ask you a question. This one question should play a large part in (&#8230;)</p><p><a href="http://www.derivante.com/2009/01/26/is-amazons-ec2-right-for-you/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom:0;">I've been asked this and similar questions quite a bit lately. But before I delve into the answer to this I want to lay the foundation and ask you a question. This one question should play a large part in your final assessment to go with EC2 or not. The question you should ask yourself is:</p>
<p style="margin-bottom:0;"><strong>How quickly do you actually need to scale either up or down? </strong></p>
<p style="margin-bottom:0;">The answer to this will likely influence the correct solution to your problems. The following bullet point list is how I classify levels of scalability, each one comes with its own pros and cons but generally the quicker you need something the more expensive it is going to be.</p>
<ul>
<li><strong>Immediate</strong> - within minutes - EC2 or other cloud computing networks</li>
<li><strong>Fast</strong> - within days to a week - Managed Hosting, Rackspace, The Planet, etc</li>
<li><strong>Average</strong> - within weeks to a month - Own your own hardware, Dell, HP, IBM, etc</li>
<li><strong>Corporate</strong> - within months/years - Good Luck</li>
</ul>
<p style="margin-bottom:0;">With this in mind, everyone hears the hype of EC2, with its scalability, fully managed hardware and virtualization but there really aren't that many people out there describing their experiences with it. When we made the decision to go with EC2 we did our research and due diligence before making the switch. There wasn't much to go on but the few articles and blog posts we did read were all positive. I guess we all got caught up in the hype here as well.</p>
<p style="margin-bottom:0;">Even after all our research it turns out that going with EC2 was one of the poorer IT decisions we have made. EC2 has turned out to be more expensive, more difficult to implement and with poorer performance than we had ever expected even with our worst case estimations. To top it all off, we didn't fully utilize the benefits of going with EC2 which was immediate scalability. Our traffic is relatively predictable and grows or shrinks in manageable percentages and can be scaled up within days instead of minutes. We never have any massive spikes in our traffic either up or down. Even if we did have spikes we are limited by our MySQL cluster.</p>
<p style="margin-bottom:0;">While we had to rethink a lot of our architecture to create a more horizontal platform instead of the traditional vertical scaling, MySQL was by far our biggest bottleneck. The source of the problem is rooted in Amazon's preset machine size. While they have done an adequate job of offering different types of instances with more memory in one line and more computational power in the other you are still limited to what they are offering. With the large database we have and the latencies between the instances and their permanent storage we were forced to keep as much of our database cached in RAM. Now this shouldn't have been too big a deal. Just get a machine with a ton of RAM. Well, unfortunately Amazon's biggest instance only offered us a maximum of 15GB. Needless to say this was not sufficient and forced us to adopt a cluster solution. This in and of itself is not ideal especially when you should be able to run off a single box with 32GB of RAM and access to fast local disks. However, it took us twelve (12) m1.xlarge instances to reach the level of performance and availability we desired. Not to mention the network IO latency between node and disk storage and node to node adding insult to injury.</p>
<p style="margin-bottom:0;">While the speed and size of the cluster was not desirable, it worked. However, we had to completely forfeit any sort of scalability to achieve a working database. To my knowledge there is no way to quickly and easily boot up more instances of MySQL to supplement a live cluster. In order for us to add more capacity we would have to perform a rolling reboot of every machine in the cluster. Its unfortunate that databases were not designed with EC2 in mind.</p>
<p style="margin-bottom:0;">However, there are companies who are trying to tap into this pain point. We were looking very intently at a company called Continuent who produces a MySQL cluster monitoring and management tool. Unfortunately, as of Jan 2009 the product was still in private beta and was unavailable to us. This tool would have allowed us to add nodes to the cluster on the fly without having to take it down in the process. Although, even then with this extra tool, which wasn't cheap, you still couldn't scale down the cluster without taking it off-line. As far as I am concerned, if you are already using the largest instance available to you (an m1.xlarge or c1.xlarge), there is no way to vertically scale up a database with EC2. Instead you are forced into a less than ideal environment for hosting a horizontal architecture which could have serious consequences for your code base and SQL queries.</p>
<p style="margin-bottom:0;">To be honest, EC2 offers a lot of benefits that are hard to come by with other solutions. EC2 is great for companies doing lots of non-real-time activities such as batch and queued processing. Companies who have a small database that can be cached in RAM and replicated easily will also benefit from EC2, just boot up a bunch of instances and go to town. However, the bottom line is if you have fairly consistent usage patterns and your applications are performance sensitive then there are much faster and more cost effective ways of abstracting your hardware requirements. We at citysquares are in the process of moving off of EC2 and onto a managed hosting platform. We still enjoy the benefits of leased hardware like we had with EC2 and the ability to quickly add new hardware. Granted, more servers aren't available to us at the drop of a hat but a couple days lead time to get another box up and running is more than sufficient for us. Not only that but we also have a whole team of IT people working with us to help alleviate our burden of supporting the entire hardware/software stack. We can now focus on what we do best which is our application.</p>
<p style="margin-bottom:0;">Keep in mind that there is no concrete answer as to whether EC2 or cloud computing in general will work for you or not. You need to determine if the capacity and latencies of the pre-determined instance sizes will meet your growing infrastructure needs. For us the bitter answer was a resounding no. We were able to spec out a solution in a fully managed hosting environment for about half the monthly cost of EC2 while increasing the performance of our application significantly.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">So, is Amazon's EC2 right for you?</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">
]]></content:encoded>
			<wfw:commentRss>http://www.derivante.com/2009/01/26/is-amazons-ec2-right-for-you/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Running your own hardware Vs. EC2 and RightScale</title>
		<link>http://www.derivante.com/2008/08/20/running-your-own-hardware-vs-ec2-and-rightscale/</link>
		<comments>http://www.derivante.com/2008/08/20/running-your-own-hardware-vs-ec2-and-rightscale/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 20:13:52 +0000</pubDate>
		<dc:creator>Justin Leider</dc:creator>
				<category><![CDATA[Web Architecture]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[citysquares]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[Flexibility]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[IT Infrastructure]]></category>
		<category><![CDATA[rightscale]]></category>
		<category><![CDATA[s3]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Server Hardware]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Site Architecture]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://justinleider.wordpress.com/?p=21</guid>
		<description><![CDATA[A couple weeks ago I began working with EC2 and RightScale in preparation of our big IT infrastructure change over. Ill start by giving a brief overview of our hardware infrastructure. Currently we're running the CitySquares' website on our own (&#8230;)</p><p><a href="http://www.derivante.com/2008/08/20/running-your-own-hardware-vs-ec2-and-rightscale/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">A couple weeks ago I began working with <a title="Amazon's Elastic Compute Cloud" href="http://aws.amazon.com/ec2" target="_blank">EC2</a> and <a title="RightScale" href="http://rightscale.com" target="_blank">RightScale</a> in preparation of our big IT infrastructure change over. Ill start by giving a brief overview of our hardware infrastructure. Currently we're running the <a title="CitySquares Online -- Hyper Local Neighborhood Search" href="http://citysquares.com" target="_blank">CitySquares'</a> website on our own hardware in a <a title="Somerville Businesses" href="http://ma.citysquares.com/somerville" target="_blank">Somerville</a> co-location not too far from our headquarters in Boston's trendy <a title="Boston's trendy South End neighborhood businesses" href="http://ma.citysquares.com/boston/south-end" target="_blank">South End</a> neighborhood.</p>
<p style="margin-bottom:0;">From the very beginning our contract IT guy set us up with a extremely robust and flexible IT infrastructure. It consists of a few machines running <a title="Xen Hypervisor" href="http://www.xen.org/" target="_blank">Xen</a> Hypervisors with <a title="Gentoo Linux" href="http://www.gentoo.org/" target="_blank">Gentoo</a> as the main host OS. Running Gentoo allows us to be as efficient as possible by specifically optimizing and compiling only the things we need. While this is a good step, it is Xen that really makes the big difference. It allows us to trade around resources as we see fit, more memory here, more virtual CPUs there, all can be done on the fly. For a startup or any company with limited resources this is rather essential. You never know where you are going to need to allocate resources in the months to come.</p>
<p style="margin-bottom:0;">While this is all well and good, we are still limited when it comes to scaling with increasing traffic or adding additional resource intensive features. We have a set amount of available hardware and adding more is an expensive upfront capital investment. Not only that but in order for us to really begin to take advantage of Xen and use it to its full potential we were presented with an expensive option, it required the purchase of a <a title="SAN Storage Area Network" href="http://en.wikipedia.org/wiki/Storage_area_network" target="_blank">SAN</a> and more servers. For those in the industry I don't think I need to mention that these get expensive in a hurry. This would have been a huge upfront cost for us, one we didn't want to budget for. The second option, which is the one we eventually went with was to drop our current hardware solution and make the plunge into cloud computing with Amazon's EC2.</p>
<p style="margin-bottom:0;">Here I am now. A couple of weeks into the switch with a lot of lessons learned. There are definitely pros and cons for each platform, either going with EC2 or rolling your own architecture. Before I get into the details I want to make clear that there are many factors involved in choosing a technology platform. I am only going to scratch the surface, touching upon the major pros and cons with respect to my own opinions with best interest for CitySquares in mind.</p>
<p style="margin-bottom:0;">Let me begin by starting with the pros for running your own hardware:</p>
<ul>
<li>
<p style="margin-bottom:0;">The biggest pro is most definitely 	persistence across reboots. I can not stress the importance of this 	one. You really take for granted the ability to edit a file and 	expect it to be there the next time the machine is restarted.</p>
<ul>
<li>
<p style="margin-bottom:0;">You only need to configure the 		software once. Once its running you don't really care what you did 		to make it work. It just works, every time you reboot.</p>
</li>
<li>UPDATE 8/21/08: <a title="Amazon releases the much anticipated Elastic Block Store" href="http://justinleider.com/2008/08/21/amazons-ebs-elastic-block-store/" target="_blank">Amazon releases persistent storage</a>.</li>
</ul>
</li>
<li>
<p style="margin-bottom:0;">Complete and utter control over 	everything that is running. This extends from the OS to the amount 	of RAM, CPU specs, hard drive specs, NICs, etc. The ability to have 	a economy or performance server is all up to you.</p>
</li>
<li>
<p style="margin-bottom:0;">Rather stable and unchanging 	architecture. Server host keys stay the same, the same number of 	servers are running today as there were yesterday and as there will 	be tomorrow.</p>
</li>
<li>
<p style="margin-bottom:0;">Reboot times. For those times when 	something is just AFU you can hit the reset button and be back up 	and running in a few minutes.</p>
</li>
<li>
<p style="margin-bottom:0;">You can physically touch it... Its 	not just in the cloud somewhere.</p>
</li>
</ul>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">Some cons for running your own hardware:</p>
<ul>
<li>
<p style="margin-bottom:0;">Companies with limited resources 	usually end up with architectures that exhibit single points of 	failure.</p>
<ul>
<li>
<p style="margin-bottom:0;">As an aside, you can be plagued 		by hardware failures at any time. This usually is accompanied by 		angry emails, texts and calls at 3am on Saturday morning.</p>
</li>
</ul>
</li>
<li>
<p style="margin-bottom:0;">Limited scalability options. For a 	rapidly expanding and growing website, the couple weeks it takes to 	order and install new hardware can be detrimental to your potential 	traffic and revenue stream.</p>
</li>
<li>
<p style="margin-bottom:0;">Management of physical pieces of 	hardware. Its a royal pain to have to go to a co-location to upgrade 	or fix anything that might need maintenance. Not to mention the 	potential down time.</p>
<ul>
<li>
<p style="margin-bottom:0;">Also, there are many hidden costs 		associated with IT maintenance.</p>
</li>
</ul>
</li>
<li>
<p style="margin-bottom:0;">Up front capital expenditures can 	be quite costly. This is especially true from a cash flow 	perspective.</p>
</li>
<li>
<p style="margin-bottom:0;">Servers and other supporting 	hardware are rendered obsolete every few years requiring the 	purchase of new equipment.</p>
</li>
</ul>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">These pros and cons for running your own hardware are pretty straight forward. Some people might mention managed hosting solutions which would mostly eliminate some of the cons related to server maintenance and hardware failures. However, this added service comes with an added price tag for the hosting. Whether it is right for you or your company is something to look into. We decided to skip this intermediary solution and go straight to the latest and greatest solution which is cloud computing. To be specific we sided with Amazon's EC2 (Elastic Compute Cloud) using RightScale as our management tool.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">Some of the pros for using EC2 in conjunction with the RightScale dashboard are as follows:</p>
<ul>
<li>
<p style="margin-bottom:0;">Near infinite resources (Server 	instances, Amazon's S3 Storage, etc) available nearly 	instantaneously. No more Slashdot DoS attacks if everything is 	properly configured and set to introduce more servers automatically. 	(RightScale Benefit)</p>
</li>
<li>
<p style="margin-bottom:0;">No upfront costs, everything is 	usage based. In the middle of the night if you are only utilizing 	one server thats all you pay for. Likewise, if during peak hours 	you're running twenty servers you pay for those twenty servers. 	(Amazon Benefit, RightScale is a monthly service)</p>
</li>
<li>
<p style="margin-bottom:0;">No hardware to think of. If fifty 	servers go down at Amazon we wont even know about it. No more angry 	calls at 3am. (Amazon Benefit)</p>
</li>
<li>
<p style="margin-bottom:0;">Multiple availability zones. This 	allows us to run our master database in one zone which is completely 	separate from our slave database. So if there is an actual fire or 	power outage in one zone the others will theoretically be 	unaffected. The single points of failure mentioned before are a 	thing of the past and this is just one example. (Amazon Benefit)</p>
</li>
<li>
<p style="margin-bottom:0;">Ability to clone whole deployments 	to create testing and development environments that exactly mirror 	the current production when you need them. (RightScale Benefit)</p>
</li>
<li>
<p style="margin-bottom:0;">Security updates are taken care of 	for the most part. RightScale provides base server images which are 	customized upon boot with the latest software updates. (RightScale 	Benefit)</p>
</li>
<li>
<p style="margin-bottom:0;">Monitoring and alerting tools are 	very good and highly customizable. (RightScale Benefit)</p>
</li>
</ul>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">Some of the cons for using EC2 and RightScale:</p>
<ul>
<li>
<p style="margin-bottom:0;">No persistence after reboot. I 	can't stress this one enough! All local changes will be wiped and 	you'll start with a blank slate!</p>
<ul>
<li>
<p style="margin-bottom:0;">All user contributed changes must 		be backed up to a persistent storage medium or they will be lost! 		We back up incrementally every 15 minutes with a full backup every 		night.</p>
</li>
<li>UPDATE 8/21/08: <a title="Amazon releases the much anticipated Elastic Block Store" href="http://justinleider.com/2008/08/21/amazons-ebs-elastic-block-store/" target="_blank">Amazon releases persistent storage</a>.</li>
</ul>
</li>
<li>
<p style="margin-bottom:0;">Writing scripts to configure 	everything upon boot is a time consuming and tedious process 	requiring a lot of trial and error.</p>
</li>
<li>
<p style="margin-bottom:0;">Every reboot takes approximately 	10-20 minutes depending on the number and complexity of packages 	installed on boot. Making the previous bullet point even that much 	more painful.</p>
</li>
<li>
<p style="margin-bottom:0;">A few of the pre-configured 	scripts are written quite well. The one for MySQL is as good as they 	get. You upload a config file complete with special tags for easy on the 	fly regular expression customization. The Apache scripts on 	the other hand are about as bad as they get. Everything must be 	configured after the fact.</p>
<ul>
<li>
<p style="margin-bottom:0;">With Apache however, you'll be writing regular expressions to 		match other regular expressions. Needless to say is a royal pain and you usually end up with unreadable gibberish.</p>
</li>
</ul>
</li>
</ul>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">So there you have it, take it as you wish. For CitySquares, EC2 and RightScale were the best options. It allows us to scale nearly effortlessly once configured. It is also a much cheaper option up front where as owning your own hardware is generally cheaper in the long run. We did trade a lot of the pros of owning your own hardware to get the scalability and hardware abstraction of EC2. It was a tough decision for us to switch away from our current architecture but in the end it will most likely be the best decision we've made. The flexibility and scalability of the EC2 and RightScale platform are by far the biggest advantages to switching and in the end its what <a title="CitySquares Online -- Hyper Local Neighborhood Search" href="http://citysquares.com" target="_blank">CitySquares</a> needs.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">
]]></content:encoded>
			<wfw:commentRss>http://www.derivante.com/2008/08/20/running-your-own-hardware-vs-ec2-and-rightscale/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
