<?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>The long way round... &#187; scalability</title>
	<atom:link href="http://www.clevegibbon.com/wordpress/category/scalability/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clevegibbon.com/wordpress</link>
	<description>Stuff you pick up on the way...</description>
	<lastBuildDate>Tue, 02 Jun 2009 05:11:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Infrastructure as a Service : Just Compute and Go!</title>
		<link>http://www.clevegibbon.com/wordpress/2008/06/16/infrastructure-as-a-service-just-compute-and-go/</link>
		<comments>http://www.clevegibbon.com/wordpress/2008/06/16/infrastructure-as-a-service-just-compute-and-go/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 13:44:03 +0000</pubDate>
		<dc:creator>Cleve Gibbon</dc:creator>
				<category><![CDATA[cognifide]]></category>
		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/archives/107</guid>
		<description><![CDATA[Context: Some Investment Bank, Some large project, Some time ago&#8230;
Me: Wait up Scott (Scott is our SysAdmin.  Disclosure: We still are drinking buddies!)
Scott: What now Gibbon!  Whatever you&#8217;re selling, I ain&#8217;t buying&#8230;
Me: Stop your whinging you miserable jobsworth.  I need 10 Linux servers tomorrow for about 5 hours of performance testing.
Scott: LOL [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Context:</strong> Some Investment Bank, Some large project, Some time ago&#8230;</p>
<p><strong>Me</strong>: Wait up Scott (Scott is our SysAdmin.  Disclosure: We still are drinking buddies!)<br />
<strong>Scott</strong>: What now Gibbon!  Whatever you&#8217;re selling, I ain&#8217;t buying&#8230;<br />
<strong>Me</strong>: Stop your whinging you miserable jobsworth.  I need 10 Linux servers tomorrow for about 5 hours of performance testing.<br />
<strong>Scott</strong>: LOL &#8211; like that&#8217;s really gonna happen chump!<br />
<strong>Me</strong>: I&#8217;ve got budget, approval and all the necessary papers, plus fat cat sponsors.  Make it happen.<br />
<strong>Scott</strong>: Look at me!<br />
<strong>Me</strong>: &lt;sigh&gt;. Do I have to?<br />
<strong>Scott</strong>: Do you think our datacentre is a freakin&#8217; tardis?<br />
<strong>Me</strong>: Noooo&#8230;.but I do expect it have a few servers out the <em>hundreds</em> you claim to spend you time servicing.  Don&#8217;t be so greedy.  Share a little!<br />
<strong>Scott</strong>: Seriously. I&#8217;ve got  2 hands, 10 mission critical applications I need to provision servers for like yesterday and no more space for new machines.<br />
<strong>Me</strong>: I don&#8217;t want new machines.  Just recycle existing ones.<br />
<strong>Scott</strong>: That&#8217;s even worse.  First I have to <em>find</em> them (talking days here), then make sure no-ones using them (talking months here),  and <em>then and only then</em> install all your crap on them.  Next day &#8211; Get Real!  More like next month&#8230;<br />
<strong>Me</strong>: I could get to the moon and back in that time with decent alien SysAdmin in tow&#8230;seriously, this is bad news.</p>
<p><strong>Today</strong></p>
<p>1) I don&#8217;t have to ask Scott for servers, I can get them myself.  Hmmm, I wonder what Scott is doing these day <img src='http://www.clevegibbon.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>2) I don&#8217;t have to wait weeks for servers, I can get them in minutes.</p>
<p>3) I don&#8217;t have to buy nor own servers/licenses, I can pay on demand.</p>
<p style="text-indent:20pt;">&#8220;I don&#8217;t need my own datacentre policed by some power crazy SA, with <em>Infrastructure as a Service</em> (IaaS), now I just <strong><em>Compute and Go</em></strong>!</p>
<p>Did you pick up on the <a href="http://www.youtube.com/watch?v=xmJ-vpz_DHk&amp;NR=1">Wash and Go</a> tag line!  One of my favourites eighties commericials but let&#8217;s get back to the script.  IaaS is here and is picking up traction to point where I would seriously question any small to medium IT shop not thinking about downsizing their datacentre and/or putting to bed plans to create a new datacentre.  Having pretty much instantaneous access to compute resources in the form of servers and storage, delivered as a metered service, means that you are now only limited by your imagination.</p>
<p>IaaS enables your systems to scale out in a cost effective manner.  Grab more computing resources when you need them, release them when you don&#8217;t.  Neverland! For development shops, the ability to periodically fire up a test <em>environment</em> and tear it down in a shot is pure candy.  Not just test environments for that matter, but UAT, demos, integration, and so on.</p>
<p><strong>The Players</strong></p>
<p>First off the bat are <a href="http://aws.amazon.com">Amazon Web Services </a>with its S3 and EC2.  IMO, Amazon are clearly the leaders in this space, despite the <a href="http://www.businessweek.com/magazine/content/06_46/b4009001.htm">early critics </a>telling Amazon to stick to minding their shop!  If you want a server or storage, eight out of ten companies prefer Amazon.  I&#8217;m not going to say any more here because the best place to talk to about is on the <a href="http://aws.typepad.com/">AWS Blog</a>.</p>
<p>Another lesser known player is <a href="http://www.flexiscale.com/">Flexiscale</a>. Flexiscale is an outgrowth of <a href="http://www.xcalibre.co.uk/index.html">XCalibre</a> that has been in the hosting business for many years.  <a href="http://www.cognifide.com">Cognifide</a> have been using Flexiscale for about 6 months now.  The platform is new and continually improving.  We are actively pushing them to make the management of their servers better.  We work closely with their engineers and have built a console to manage our on-demand flexiscale servers.  <a href="http://cogniscale.cognifide.com/">Cogniscale</a> is freely available for download.  It is not a supported product, use at your own risk, but if you any requests or feature improvements, please talk to <a href="http://blog.najmanowicz.com/">Adam Najmanowicz</a> who is the lead developer.  He wrote a <a href="http://blog.najmanowicz.com/2008/06/02/cogniscale-virtual-hosting-made-easy/">blog post</a> about getting started with Cogniscale that is worth a read.</p>
<p>Then you get hybrids that sit on top of Amazon that provide management services such as <a href="http://www.rightscale.com/m/">RightScale</a>.  Also, you can of course roll your own IaaS in three easy steps.  (1) Buy a server.  (2) Install Xen or VMWare.  (3) Pick one from the X new servers.  Done!</p>
<p><strong>Next Steps</strong></p>
<p>IaaS is not rocket science.  The whole point is to make things simpler.  However, with IaaS, your SysAdmin is no longer the cable guy sweating under desk, fighting with wires, or banished to the datacentre/server room.   In fact, they can focus on doing the stuff they enjoy.  Administering infrastructure.  Which leads us onto the topic of &#8220;Automated Infrastructure&#8221;.   When a single physical box spawns say 12 servers, you cannot hope of continue to manage this infrastructure manually.  People don&#8217;t scale.  You need damned good tools to manage and monitor the enterprise.</p>
<p>Earlier, I wondered what Scott, our friendly SysAdmin would be doing these days.  If he had any sense, he would be looking into tools such as <a href="http://reductivelabs.com/trac/puppet">Puppet</a>, <a href="https://wiki.hjksolutions.com/display/IC/Home">iClassify</a>, <a href="http://www.capify.org/">Capistrano</a> to name a few to help automate infrastructure.  Something that is going to be real important to companies that wish to take full advantage of IaaS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clevegibbon.com/wordpress/2008/06/16/infrastructure-as-a-service-just-compute-and-go/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby is the R in Rails</title>
		<link>http://www.clevegibbon.com/wordpress/2008/06/11/ruby-is-the-r-in-rails/</link>
		<comments>http://www.clevegibbon.com/wordpress/2008/06/11/ruby-is-the-r-in-rails/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 08:46:22 +0000</pubDate>
		<dc:creator>Cleve Gibbon</dc:creator>
				<category><![CDATA[cognifide]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/archives/106</guid>
		<description><![CDATA[I would love to have attended RailsConf 2008 but alas you can only do so much in a day.  Although this was a Rails conference, it seems that this year there was less talk about Rails and more about Ruby.  This is hardly surprising really given that Rails is just a web framework. [...]]]></description>
			<content:encoded><![CDATA[<p>I would love to have attended <a href="http://en.oreilly.com/rails2008/public/content/home">RailsConf 2008</a> but alas you can only do so much in a day.  Although this was a Rails conference, it seems that this year there was less talk about Rails and more about Ruby.  This is hardly surprising really given that Rails is just a web framework.  Yep, Rails is just a web framework.  And just like any other web framework, its serves as a gateway from the web and into your enterprise.  Now, after a year of doing Rails, you&#8217;re basically done.  Coasting.  Yes, there are tips and tricks you can pick up along the way but for all intense purposes you&#8217;ve got the badge.  You&#8217;re done. You know Rails. </p>
<p>Now the more pressing problems and prickly questions around the enterprise, integration and scalability need to be addressed and this is where Ruby is  amore compelling story.  In fact, things in the Ruby space are really moving forward at break neck speed.  It&#8217;s not surprising really, given the relatively few Ruby conferences there are each year, that Ruby gets to play out and steal some of Rail&#8217;s thunder at RailConf.</p>
<p>So what is going on in Ruby space that&#8217;s so interesting?</p>
<p><strong>Ruby Implementations &#8211; Where integration is Key</strong></p>
<p>First up there&#8217;s <a href="http://jruby.codehaus.org/">JRuby</a>.  This is a 100% pure Java implementation of the Ruby programming language.  And right there is JRuby&#8217;s sweet spot.  The ability to seamlessly integrate with the Java platform through Ruby is a big win for some.  So running Rails under JRuby and using it as a web gateway into your Java enterprise, together with the ability to leverage mature/known Java tools and the free performance hikes that accompany it has been a very appealing proposition to some.  A prime example being the <a href="http://studios.thoughtworks.com/mingle-project-intelligence">ThoughtWorks Mingle</a> product.  Also, having access to the abstract syntax tree which can be shared between multiple Ruby runtimes hosted within the same JVM process is pretty neat and a highly efficient way of managing memory.</p>
<p><a href="http://ruby.macosforge.org/trac/wiki/MacRuby">MacRuby</a>!  As a Mac User I&#8217;m excited by this implementation of Ruby 1.9.  With MacRuby you can write Mac OS X applications in Ruby without the performance hit typically attributed to standard Ruby and Ruby Cocoa.   MacRuby is native to Mac OS X core technologies.  Damned quick with all the elegance of Ruby to boot.  </p>
<p><a href="http://www.ironruby.net/">IronRuby</a>, backed my Microsoft and sits on top of its Dynamic Language Runtime (check out <a href="http://www.microsoft.com/Downloads/details.aspx?FamilyID=b2a28e91-4ee3-4a79-8900-e4de253950bd&amp;displaylang=en">John Lam&#8217;s</a> talk on the DLR), is a .NET implemention of Ruby.  IronRuby enables Ruby programmers seamlessly integrate with the .NET platform, in much the same way that JRuby does on the Java platform.  <a href="http://rubydotnet.googlegroups.com/web/Home.htm">Ruby.NET</a> is open source .NET implementation that does not have the same pull as IronRuby.</p>
<p>In fact, the main draw for Ruby developers that target JRuby, MacRuby, Ruby.NET or IronRuby is integration with the Java, Mac OS X or .NET plaforms respectively.</p>
<p><strong>Ruby implementations &#8211; Standards are key</strong></p>
<p>Let&#8217;s park integration.  Let&#8217;s focus upon Ruby developers building Ruby apps with an Ruby-oriented environment.  Both <a href="http://rubini.us/">Rubinius</a> (a spec led Ruby implementation) and<a href="http://ruby-lang.org/en/about"> MRI</a>/<a href="http://www.atdot.net/yarv/">YARV</a> (currently the official Ruby) are competing VMs for running Ruby applications.  Everyone started with Matzs Ruby Interpreter  (MRI) but now we have many more alternatives.  The Yet Another Ruby VM (YARV) project has officially merged into MRI as of May 2008 to combine the best of both worlds to enhance the official Ruby implementation.</p>
<p><strong>RubySpec</p>
<p></strong>But unlike Smalltalk that was really killed by competing implementations, the Ruby community, through <a href="http://rubyspec.org/">RubySpec</a> are collaborating on standards and competing on implementation.  This is good.  No, hold up, this is great! This will hopefully provide more choice to the developers to select the appropriate Ruby implementation that best fits their solution requirements.  Hopefully, this will hold the community together and keep everyone pulling in the same direction.  So far, that appears to be the case&#8230;</p>
<p><strong>..but then there was Ruby for Scale &#8211; Maglev<br />
</strong><br />
<a href="http://ruby.gemstone.com/">Maglev</a> is a Ruby implementation built on top of Gemstone&#8217;s VM that is written in Smalltalk.  <a href="http://www.chadfowler.com/2008/6/5/maglev">Chad Fowler</a> goes into the why and when you would choose to use this Ruby implementation other the others.  But the problem is very few people have access to Maglev.  It promises the world and come on guys its time to <em>show me the money</em>!  The community has seen is a presentation.  A damned fine presentation I&#8217;m told but <a href="http://headius.blogspot.com/2008/06/maglev.html">Charles Nutter </a>of JRuby is not convinced and <a href="http://fukamachi.org/wp/2008/06/02/maglev-and-the-naiivety-of-the-rails-community/">other people</a> are already dismissing outright Maglev&#8217;s claim to scale.  100 times performance improvement is a big claim.   One to watch I guess.</p>
<p><strong>And Finally!</strong></p>
<p>Take a look at the following code snippet:</p>
<pre>#!/usr/local/bin/ruby

require 'scalability'

# your code
</pre>
<p>Now the Twitter guys must be get this all the time.  Twitter is growing in size and its architecture will mature and incorporate different technologies I&#8217;m sure that best fits their current problems.  Time will time.  But to say its Ruby&#8217;s fault is a little naive at best.  That said, wouldn&#8217;t it be just great if only you could <strong><em>include scalability</em></strong> in Ruby applications, Java apps, .NET apps, or whatever the platform.  </p>
<p>Now, that would be awesome.  But the simple fact is you can&#8217;t include it, you have design it in.  Boooooo say the crowd.  Kill joy chant the business.  But unfortunately, like so many things in the software industry, you have to go <em>the long way round (read as experience) </em>to get desired results.   Because there are no short cuts (<em>read as foolish hacks, or inexperience</em>) on the road to scalability&#8230;only blood, sweat and tears!  But there are leg ups, tools and techniques and people to assist, but that&#8217;s any story for another day&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clevegibbon.com/wordpress/2008/06/11/ruby-is-the-r-in-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
