<story><title>How and Why Swiftype Moved from EC2 to Real Hardware</title><url>http://highscalability.com/blog/2015/3/16/how-and-why-swiftype-moved-from-ec2-to-real-hardware.html</url></story><parent_chain><item><author>snoopybbt</author><text>There&amp;#x27;s not much need for a fancy article on a fancy website in order to understand a key concept of cloud computing:&lt;p&gt;Cloud computing offers you the great and awesome advantages of being able to instantly scale your application, replicate your data and basically just grow according to your business volume, and all this without significant investments, delivery time, setup time, people time, maintenance or anything but it&amp;#x27;s expensive in the long run.&lt;p&gt;And this is OKAY, this is GREAT.&lt;p&gt;Once you&amp;#x27;re big enough, you know what your load is now and what your load will likely be, and you know &lt;i&gt;exactly&lt;/i&gt; what you need now and (approximately) what you&amp;#x27;re going to need in the near future, setting up your own datacenter is way, way more effective.&lt;p&gt;Amazon does not get free electricity, free servers and&amp;#x2F;or free people time.
Of course, you&amp;#x27;re paying that, and you&amp;#x27;re also paying Amazon&amp;#x27;s profits.&lt;p&gt;This is absolutely fine, as long their service fits you.&lt;p&gt;But when you grow enough, put simply, your needs change. It&amp;#x27;s just that.</text></item></parent_chain><comment><author>guru_meditation</author><text>The reason why it is extremely hard to engineer robust large scale AWS cloud apps can be summarized under the umbrella of performance &lt;i&gt;variance&lt;/i&gt;:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  - machine latency varies more, you can&amp;#x27;t control it

  - network latency varies more

  - storage latency varies more (S3, Redshift, etc.)

  - machine outages are more frequent
&lt;/code&gt;&lt;/pre&gt;
where more can be an order of magnitude more variation than on bare metal deployments. I am not saying the performance is that much worse, only that it will unpredictably vary for a certain instance. The interference is non gaussian and can happen in bursts as opposed to easy-to-model-and-anticipate white noise.&lt;p&gt;It&amp;#x27;s a lot harder to engineer cloud scale software to scale robustly and not degrade in latency when running on a large amount of nodes. For example, see [1]&lt;p&gt;Most of open-source cloud software does not come with these algorithms batteries included and it is not trivial to retrofit this kind of logic. Just being smart about loadbalancing won&amp;#x27;t cut it when at any given moment one of your nodes will become 10x slower than others even though your code is sound and in fact does not slow down like that.&lt;p&gt;In fact, what you lose in AWS convenience and &amp;quot;free&amp;quot; maintenance, you gain in simpler RPC&amp;#x2F;messaging&amp;#x2F;fault tolerance&amp;#x2F;storage infrastructure that can sometimes accommodate an order of magnitude more traffic or users on a machine then if deployed in AWS.&lt;p&gt;[1] &lt;a href=&quot;http://research.google.com/people/jeff/latency.html&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;research.google.com&amp;#x2F;people&amp;#x2F;jeff&amp;#x2F;latency.html&lt;/a&gt;</text></comment>
<story><title>How and Why Swiftype Moved from EC2 to Real Hardware</title><url>http://highscalability.com/blog/2015/3/16/how-and-why-swiftype-moved-from-ec2-to-real-hardware.html</url></story><parent_chain><item><author>snoopybbt</author><text>There&amp;#x27;s not much need for a fancy article on a fancy website in order to understand a key concept of cloud computing:&lt;p&gt;Cloud computing offers you the great and awesome advantages of being able to instantly scale your application, replicate your data and basically just grow according to your business volume, and all this without significant investments, delivery time, setup time, people time, maintenance or anything but it&amp;#x27;s expensive in the long run.&lt;p&gt;And this is OKAY, this is GREAT.&lt;p&gt;Once you&amp;#x27;re big enough, you know what your load is now and what your load will likely be, and you know &lt;i&gt;exactly&lt;/i&gt; what you need now and (approximately) what you&amp;#x27;re going to need in the near future, setting up your own datacenter is way, way more effective.&lt;p&gt;Amazon does not get free electricity, free servers and&amp;#x2F;or free people time.
Of course, you&amp;#x27;re paying that, and you&amp;#x27;re also paying Amazon&amp;#x27;s profits.&lt;p&gt;This is absolutely fine, as long their service fits you.&lt;p&gt;But when you grow enough, put simply, your needs change. It&amp;#x27;s just that.</text></item></parent_chain><comment><author>kovyrin</author><text>If only it were that simple... But every second relatively young engineer I interview points out that &amp;quot;But Netflix! Look how good the cloud works for them!&amp;quot; and once again I need to explain, that Netflix spends millions in engineering resources cost to handle EC2 issues and we are not (almost nobody is) Netflix (yet?).</text></comment>