<?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>Cloudscaling&#187; Internet Operations</title>
	<atom:link href="http://cloudscaling.com/blog/category/internet-operations/feed" rel="self" type="application/rss+xml" />
	<link>http://cloudscaling.com</link>
	<description>Cloud strategy &#38; infrastructure</description>
	<lastBuildDate>Mon, 01 Mar 2010 22:25:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Up, Out, Centralized, and Decentralized</title>
		<link>http://cloudscaling.com/blog/cloud-computing/up-out-centralized-and-decentralized</link>
		<comments>http://cloudscaling.com/blog/cloud-computing/up-out-centralized-and-decentralized#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:30:51 +0000</pubDate>
		<dc:creator>randybias</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet Operations]]></category>
		<category><![CDATA[centralization]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[commoditization]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[decentralization]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[sharding]]></category>

		<guid isPermaLink="false">http://cloudscaling.com/blog/?p=433</guid>
		<description><![CDATA[

It can be confusing to understand how to scale computing systems, but it&#8217;s not rocket science.  There are really only two main axes of scale: out and up.  Closely related to the axis of scale is the general type of architecture: centralized or decentralized.  In this article I&#8217;m going to briefly revisit scaling and then [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--></p>
<p><img class="alignright size-medium wp-image-439" title="vert-scaling-diagram1" src="http://cloudscaling.com/wp-content/uploads/2009/07/vert-scaling-diagram1-269x299.png" alt="vert-scaling-diagram1" width="269" height="299" /></p>
<p>It can be confusing to understand how to scale computing systems, but it&#8217;s not rocket science.  There are really only two main axes of scale: out and up.  Closely related to the axis of scale is the general type of architecture: centralized or decentralized.  In this article I&#8217;m going to briefly revisit scaling and then talk about centralized vs. decentralized architectures.</p>
<p class="MsoNormal"><strong>The Axes of Scale</strong></p>
<p class="MsoNormal">While ‘scaling’ is a popular topic, the scalability of a system is largely misunderstood.  You can scale ‘up’ (vertical) or ‘out’ (horizontal).<span> </span>Usually when people talk about scaling in the context of cloud computing, they mean a scale-out solution.<span> </span>This is because scale-up is not possible without control of the hardware, which you don&#8217;t usually have in a cloud computing scenario.<span> </span>Still, scale-up is a valid tactic for many situations such as scaling databases and fileservers.</p>
<p class="MsoNormal">Scale-out means use more of a single unit of resource (below), while scale-up means using fewer units while increasing the size of resource of each unit (up and right).</p>
<p class="MsoNormal">
<p class="MsoNormal"><span><!--[if gte vml 1]><v:shapetype  id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"  path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:308pt;  height:68pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file://localhost/Users/randyb/Library/Caches/TemporaryItems/msoclip/0clip_image001.png" mce_src="file://localhost/Users/randyb/Library/Caches/TemporaryItems/msoclip/0clip_image001.png"   o:title="" /> <v:textbox style="mso-rotate-with-shape:t" mce_style="mso-rotate-with-shape:t" /> </v:shape><![endif]--></span></p>
<p class="MsoNormal" style="text-align: center;"><img class="aligncenter size-large wp-image-434" title="horizontal-scaling-diagram" src="http://cloudscaling.com/wp-content/uploads/2009/07/horizontal-scaling-diagram-1024x227.png" alt="horizontal-scaling-diagram" width="614" height="136" /></p>
<p class="MsoNormal">I believe scaling a system from this perspective is relatively well understood, but not necessarily the main ways in which scaling is achieved.</p>
<p class="MsoNormal"><strong>Centralized and Decentralized Systems</strong></p>
<p class="MsoNormal">At the heart of most architectural or design decisions is whether to build a centralized or decentralized system.<span> </span>Centralized systems can generally be purchased off the shelf, come in high-availability (HA) pairs, are technically simple to operate, provide vertical scaling capabilities, and are delivered at a premium price per unit.<span> </span>Well-designed centralized systems provide very high uptimes and availability. They can also be prone to catastrophic failures due to mis-configurations.  This happens because they usually have a synchronized configuration and a misconfiguration in one is propagated immediately to the other.<span> Given that misconfiguration is the number one source of failures or security breaches, this can be a major concern. </span>Examples of centralized systems include: redundant load balancer pairs, NAS / SAN systems delivered as HA units, and centralized network switches.</p>
<p class="MsoNormal">Decentralized systems by contrast are scaled horizontally, can be technically complex to operate, usually written in-house or built from open source, and priced such that individual units are relatively cheap.<span> </span>Distributed systems tend to be highly resilient in the face of the failure of a single unit because configurations are not shared. A unit’s failure has no impact on neighboring units. At most, the overall capacity is affected. Examples include: shared-nothing web/app tiers, pools of virtualized servers, top of rack switch deployments, and peer-to-peer (P2P) systems.</p>
<p class="MsoNormal">Most web systems do not require an either/or decision as they use a combination of centralized and decentralized components. A good example is a typical 2-tier web application stack like Ruby-on-Rails.<span> </span>The web/app tier will be scaled-out and the databases will be scaled-up.  Despite the hype around cloud computing, this is <strong>still</strong> the norm.  Even on Amazon&#8217;s EC2, your typical web app starts with the smallest instance size possible and then when scaling limits are hit, is upgraded to the next biggest instance size.</p>
<p class="MsoNormal">The decentralized approach has been out of favor historically due to technical complexity and low margins.  Also larger enterprises tend to lean in the direction of simpler to manage, centralized, scale-up solutions.<span> </span>Vendors prefer to sell fewer, larger, high margin solutions while enterprises like technically simple solutions.  This is beginning to change as we can see with folks like <a href="http://www.cloudera.com">Cloudera</a> providing commercial support for decentralized data processing systems like <a href="http://en.wikipedia.org/wiki/Hadoop">Hadoop</a>.</p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal">Centralized approaches have the distinct disadvantage of scale-up limits.<span> Meaning y</span>ou can only build a single server that is so large.<span> If your growth needs fit neatly inside </span><a href="http://en.wikipedia.org/wiki/Moores_Law">Moore&#8217;s Law</a><span>, you&#8217;re in luck, if not, you&#8217;ll have to scale-out instead of up. </span>At some point only a scale-out approach can continue to grow capacity.  This is why companies like Google and Amazon have chosen their particular ‘web-scale’ approaches.</p>
<div>
<div id="ftn">
<p class="MsoFootnoteText"><strong>Conclusion</strong></p>
<p class="MsoFootnoteText">Scaling up via centralized systems is still a viable architectural decision for those whose growth needs fit Moore&#8217;s Law.  Given the advent of cloud computing and the ability to add more servers when needed, scale-out tactics for building decentralized systems has been gaining more prevalence.  We will begin to see more and more scale-out solutions even within the enterprise as startups like Cloudera, <a href="http://www.parascale.com">ParaScale</a>, <a href="http://www.stackjet.com/">StackJet</a>, and many others build easier to manage decentralized systems.  I am very much looking forward to this new world as it solves a great many hard problems in a very efficient manner.  Just remember that scaling up will always be a viable and, in some cases, cost effective architectural decision.</p>
</div>
</div>
<p><!--EndFragment--></p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=Please+RT:+@randybias+Up%2C+Out%2C+Centralized%2C+and+Decentralized+http://tinyurl.com/ktumt3" title="Post to Twitter"><img class="nothumb" src="http://cloudscaling.com/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://cloudscaling.com/blog/cloud-computing/up-out-centralized-and-decentralized/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Infrastructure as Code Presentations</title>
		<link>http://cloudscaling.com/blog/internet-operations/infrastructure-as-code-%e2%80%94-velocity-conf</link>
		<comments>http://cloudscaling.com/blog/internet-operations/infrastructure-as-code-%e2%80%94-velocity-conf#comments</comments>
		<pubDate>Fri, 26 Jun 2009 18:09:53 +0000</pubDate>
		<dc:creator>randybias</dc:creator>
				<category><![CDATA[Internet Operations]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://cloudscaling.com/blog/?p=356</guid>
		<description><![CDATA[If you&#8217;re into cloud and Internet/web operations this past few weeks saw several very important conferences, including Open Source Bridge, Velocity Conference, and Structure &#8216;09.  I&#8217;m not going to review either of these since I wasn&#8217;t at Structure and only spent a day at Velocity, but suffice it to say that some very smart people [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re into cloud and Internet/web operations this past few weeks saw several very important conferences, including <a href="http://opensourcebridge.org/">Open Source Bridge</a>, <a href="http://en.oreilly.com/velocity2009">Velocity Conference</a>, and <a href="http://events.gigaom.com/structure/09/">Structure &#8216;09</a>.  I&#8217;m not going to review either of these since I wasn&#8217;t at Structure and only spent a day at Velocity, but suffice it to say that some very smart people attend these events.  In particular, the Velocity Conference is more of a technology conference for people who are developers or operators and want to build highly scalable infrastructure.</p>
<p>There were a few particular presentations I wanted to point you to however.  There are some very important tectonic shifts at play now highlighted in these presentations.  One in particular, the notion of highly automated infrastructure and being able to describe <em>infrastructure as code</em>, is a particular hobby horse of mine.  My startup, <a href="http://cloudscaling.com/cloudscale">CloudScale Networks</a>, was one of the first to talk about &#8216;programmable infrastructure&#8217;, &#8216;infrastructure as code&#8217;, and &#8217;self-aware infrastructure.&#8217;[1]</p>
<p>Check these out when you can!  Most of the presenters and participants are friends of mine and I can vouch that they are very clued on this subject matter.</p>
<ul>
<li><a href="http://velocityconference.blip.tv/file/2285124/">Infrastructure as Code</a></li>
<li><a href="http://osbridge.blip.tv/file/2278426/">Configuration Management Panel</a></li>
<li><a href="http://velocityconference.blip.tv/file/2284377/">10+ Deploys Per Day: Dev and Ops Cooperation</a></li>
</ul>
<hr />[1] Pretty cool that Ezra picked the name &#8216;Control Tower&#8217; to describe the command &amp; control management system.  This was the same as for <a href="http://cloudscaling.com/cloudscale">CloudScale</a>.  You can see it at the top of one of the pics <a href="http://neotactics-public.s3.amazonaws.com/cs-snaps/cs-alpha-pic-provisioning.png">here</a>.</p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=Please+RT:+@randybias+Infrastructure+as+Code+Presentations+http://tinyurl.com/mebbxc" title="Post to Twitter"><img class="nothumb" src="http://cloudscaling.com/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://cloudscaling.com/blog/internet-operations/infrastructure-as-code-%e2%80%94-velocity-conf/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
