<?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>maxgarrick.com &#187; WorkLog</title>
	<atom:link href="http://maxgarrick.com/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://maxgarrick.com</link>
	<description>Come take a look under the hood</description>
	<lastBuildDate>Sun, 08 Mar 2009 23:32:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Open Storage Summit Ben Rockwood Keynote</title>
		<link>http://maxgarrick.com/open-storage-summit-ben-rockwood-keynote/</link>
		<comments>http://maxgarrick.com/open-storage-summit-ben-rockwood-keynote/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 14:43:55 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[WorkLog]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://maxgarrick.com/?p=135</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object width="480" height="376"><param name="movie" value="http://mediacast.sun.com/flash/jw-flv-player/mediaplayer.swf?width=480&#038;height=360&#038;autostart=false&#038;type=flv&#038;file=http%3A%2F%2Fmediacast.sun.com%2Fusers%2FDeirdre%2Fmedia%2F0809opstorsumm_benr_Lg.flv"/><param name="allowFullScreen" value="true"/><embed src="http://mediacast.sun.com/flash/jw-flv-player/mediaplayer.swf?width=480&#038;height=360&#038;autostart=false&#038;type=flv&#038;file=http%3A%2F%2Fmediacast.sun.com%2Fusers%2FDeirdre%2Fmedia%2F0809opstorsumm_benr_Lg.flv" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="376"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://maxgarrick.com/open-storage-summit-ben-rockwood-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What would you do with your 20-percent time?</title>
		<link>http://maxgarrick.com/what-would-you-do-with-your-20-percent-time/</link>
		<comments>http://maxgarrick.com/what-would-you-do-with-your-20-percent-time/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 04:45:24 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[WorkLog]]></category>

		<guid isPermaLink="false">http://maxgarrick.com/?p=11</guid>
		<description><![CDATA[The Harvard Business Review article, &#8220;Reverse Engineering Google&#8217;s Innovation Machine&#8221; (April 2008), describes how Google is built for innovation. I highly recommend reading the article, and will focus on just a couple ideas here:

Budgeting for innovation
Superior infrastructure built for growth

Budgeting for innovation
Test if your organization values innovative activity: do they pay you for it?  [...]]]></description>
			<content:encoded><![CDATA[<p>The Harvard Business Review article, &#8220;<a href="http://harvardbusinessonline.hbsp.harvard.edu/b01/en/common/item_detail.jhtml;jsessionid=ZKSUCFZYICJ1KAKRGWDSELQBKE0YIISW?id=R0804C">Reverse Engineering Google&#8217;s Innovation Machine</a>&#8221; (April 2008), describes how Google is built for innovation. I highly recommend reading the article, and will focus on just a couple ideas here:</p>
<ul>
<li>Budgeting for innovation</li>
<li>Superior infrastructure built for growth</li>
</ul>
<h2>Budgeting for innovation</h2>
<p>Test if your organization values innovative activity: do they pay you for it?   Google&#8217;s engineers are required to spend 20% of their time on a side project of their choosing.  This means they take 20% of their time from search &amp; advertising&#8211;Google&#8217;s bread &amp; butter&#8211;and dedicate to risky, innovative activity.</p>
<p>Google&#8217;s organizational structure is effective at managing innovation.  They understand that in the long-term, it&#8217;s more risky to focus solely on search &amp; advertising.  Investment in innovative activity is a hedge against potential downturns in their core business and a likely generator of future growth.</p>
<h2>Superior infrastructure built for growth</h2>
<p>Growing applications, from development to production, is challenging<em>.</em> Growing applications easily and on-demand is down-right <em>hard.</em> Your web application environment needs to be easy to set up, easy to share with other devs, fault-tolerant, easy to launch for users to see, and easy to scale up to meet production demands.  Try building these capabilities into your infrastructure, then allowing your devs to do it without needing a sysadmin.</p>
<p>There are new tools that let us approach this level of superior infrastructure.  They may not be as fast, or as easy, or as scalable.  Tools like virtualization, re-usable web services and code libraries, and a solid architecture can bring us closer to this goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxgarrick.com/what-would-you-do-with-your-20-percent-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Idea for a RESTful Forum Engine</title>
		<link>http://maxgarrick.com/idea-for-a-restful-forum-engine/</link>
		<comments>http://maxgarrick.com/idea-for-a-restful-forum-engine/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 02:29:37 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[WorkLog]]></category>

		<guid isPermaLink="false">http://maxgarrick.com/?p=10</guid>
		<description><![CDATA[An Internet forum is a web application for holding discussions and posting user-generated content.  This functionality is found in several types of applications, including message boards and blogs that allow for posting of comments.
One approach to creating a message board and blog web application is to abstract out the shared functionality.  First, we [...]]]></description>
			<content:encoded><![CDATA[<p>An Internet forum is a web application for holding discussions and posting user-generated content.  This functionality is found in several types of applications, including message boards and blogs that allow for posting of comments.</p>
<p>One approach to creating a message board and blog web application is to abstract out the shared functionality.  First, we have to define the functionality, then see where the overlap is. If the functionality differs greatly, then sharing a common web service won&#8217;t make sense.  If there is a lot of shared functionality, or we design our applications with this goal of shared functionality in mind, then a web service component would result in an effective software design</p>
<p>Let&#8217;s look at what might be common across blogging and message board applications:</p>
<ul>
<li>Posts, including subject, author, and meta-data (reply-to, last modified, date created, etc&#8230;)</li>
<li>Post buckets, which could take the form of a forum or blog post and comments.</li>
</ul>
<p>URIs:</p>
<ul>
<li>List buckets: GET /appbase</li>
<li>List posts: GET /appbase/1</li>
<li>Retrieve post: GET /appbase/1/2</li>
</ul>
<p>Supported methods:</p>
<ul>
<li>GET</li>
<li>HEAD</li>
<li>PUT</li>
<li>DELETE</li>
</ul>
<p>Where have I seen something like this before???  Hmmm&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://maxgarrick.com/idea-for-a-restful-forum-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Re-usable, Slim-down Web VPS with OpenVZ</title>
		<link>http://maxgarrick.com/creating-a-re-usable-slim-down-web-vps-with-openvz/</link>
		<comments>http://maxgarrick.com/creating-a-re-usable-slim-down-web-vps-with-openvz/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 04:12:56 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[WorkLog]]></category>

		<guid isPermaLink="false">http://maxgarrick.com/?p=8</guid>
		<description><![CDATA[OpenVZ is a virtualization technology that allows many virtual private servers (VPS) to run on one hardware node.  This post shows how to create a slim down LAMP VPS using OpenVZ on a RHEL4 hardware node.
Outline:

Install OpenVZ
Install an OpenVZ template
Create a temporary VPS container and initialize
Set up NAT on your hardware node
Install vzyum and [...]]]></description>
			<content:encoded><![CDATA[<p>OpenVZ is a virtualization technology that allows many virtual private servers (VPS) to run on one hardware node.  This post shows how to create a slim down LAMP VPS using OpenVZ on a RHEL4 hardware node.</p>
<p>Outline:</p>
<ul>
<li>Install OpenVZ</li>
<li>Install an OpenVZ template</li>
<li>Create a temporary VPS container and initialize</li>
<li>Set up NAT on your hardware node</li>
<li>Install vzyum and related packages</li>
<li>Update the temporary VPS OS with latest packages</li>
<li>Replace OpenVZ template with the temporary VPS</li>
</ul>
<p>Start with the fairly straight-forward <a href="http://wiki.openvz.org/Quick_installation">quick installation guide</a> available on OpenVZ&#8217;s wiki.  Next, download a <a href="http://openvz.org/download/template/cache">pre-created OS Template</a> and place the tarball in /vz/templates/cache .  At this point, you should be able to create a temporary container using the OS template you chose by doing the following:</p>
<blockquote><p>vzctl create 1001 &#8211;ostemplate centos-5-i386-minimal</p></blockquote>
<p>Where 1001 is the CTID (you&#8217;ll use this number to manipulate your VPS), and centos-5-i386-minimal is the name of the pre-created OS template you downloaded.  Note: I tried a user-contributed centos 5 template, which required the installation of an additional <a href="http://www.neonhost.com/openvz/">metadata RPM</a> in order for OpenVZ to know the location of certain files (like the networking scripts, nameserver file, etc&#8230;)</p>
<p>Let&#8217;s set the IP and nameserver of the VPS:</p>
<blockquote><p>vctl set 1001 &#8211;ipadd 192.168.0.1 &#8211;nameserver &#8220;123.123.123.123 123.123.123.124&#8243; &#8211;save</p></blockquote>
<p>Next, set up NAT on the hardware node so that our VPS can make outbound network connections:</p>
<blockquote><p>iptables -t nat -A POSTROUTING -s src_nat -o eth0 -j SNAT &#8211;to ip_address</p></blockquote>
<p>I specified a src_nat of 192.168.0.0/24 to give me 255 NAT&#8217;d IPs to play around with.  ip_address is your hardware node&#8217;s IP.</p>
<p>Time to fire up the VPS:</p>
<blockquote><p>vctl start 1001</p></blockquote>
<p>Test that networking works:</p>
<blockquote><p>vctl enter 1001</p>
<p>ping yahoo.com</p>
<p>exit</p></blockquote>
<p>At this point, we have a working VPS, but it&#8217;s running woefully out-of-date software.  OpenVZ provides a wrapper around yum and rpm called &#8216;vzyum&#8217; and &#8216;vzrpm&#8217;.  Since I am running a centos 5 VPS, I&#8217;ll use vzyum.  First I need to install the required packages on the hardware node (remember the HN is RHEL4):</p>
<blockquote><p>rpm -Uvh python-elementtree-1.2.6-7.el4.rf.i386.rpm python-sqlite-1.0.1-1.2.el4.rf.i386.rpm python-urlgrabber-2.9.6-1.2.el4.rf.noarch.rpm vzrpm43-python-4.3.3-7_nonptl.6.i386.rpm vzrpm44-4.4.1-22.5.i386.rpm vzpkg-2.7.0-18.noarch.rpm vzrpm44-python-4.4.1-22.5.i386.rpm vzyum-2.4.0-11.noarch.rpm</p></blockquote>
<p>Many of the packages not provided by RHEL4 were found at <a href="http://dag.wieers.com/rpm/packages/">DAG</a> .</p>
<p>Finally, let&#8217;s update our centos 5 VPS with the latest packages:</p>
<blockquote><p>vzyum 1001 -y update</p>
<p>vzyum 1001 clean all</p>
<p>vzctl 1001 stop</p></blockquote>
<p>Now we have all the updated packages and cleaned up any headers leftover from yum.</p>
<p>Now to replace the pre-created OS template with our up-to-date centos 5 version:</p>
<blockquote><p>mv /vz/templates/cache/centos-5-i386-minimal.tar.gz /vz/templates/cache/centos-5-i386-minimal.tar.gz-old</p>
<p>cd /vz/private/1001</p>
<p>tar cvf /vz/templates/cache/centos-5-i386-minimal.tar.gz .</p></blockquote>
<p>That&#8217;s it!  Now you can vzctl create a slew of VPSs based on this template.   Next time I&#8217;ll discuss how to create a web node template with LAMP built-in.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxgarrick.com/creating-a-re-usable-slim-down-web-vps-with-openvz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why VPS Will Take Over The Planet</title>
		<link>http://maxgarrick.com/why-vps-will-take-over-the-planet/</link>
		<comments>http://maxgarrick.com/why-vps-will-take-over-the-planet/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 04:08:26 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[WorkLog]]></category>

		<guid isPermaLink="false">http://maxgarrick.com/?p=7</guid>
		<description><![CDATA[Virtual Private Servers (VPS) provide a chunk of computing power, coupled with storage space and networking.  Many commercial hosting providers offer &#8220;dedicated shared hosting&#8221;, meaning they split up a machine into multiple chunks and rent them out individually.  Often customers receive &#8220;root-level&#8221; access to their VPS, which are designed so that root in [...]]]></description>
			<content:encoded><![CDATA[<p>Virtual Private Servers (VPS) provide a chunk of computing power, coupled with storage space and networking.  Many commercial hosting providers offer &#8220;dedicated shared hosting&#8221;, meaning they split up a machine into multiple chunks and rent them out individually.  Often customers receive &#8220;root-level&#8221; access to their VPS, which are designed so that root in one VPS cannot touch another VPS running on the same hardware.</p>
<p>Why should I care about this?  I&#8217;m a part time sysadmin at best&#8230;</p>
<p>Purchasing, racking, installing, obtaining support, patching, and overall managing of physical machines is not a web technology, nor does it deliver academic value to our clients.  <strong>Web applications</strong> built into an <strong>academic portal</strong> deliver academic value to clients.  If there was some way to run our web applications on air, we could focus solely on our direct commitment to students and faculty.</p>
<p>As much as I would like to run our web applications on thin air, physical hardware is needed.</p>
<p>This is where virtual private servers come in.   VPS, if managed by highly responsible system administrators, completely eliminates the need for application developers to think about the care and feeding of physical machines.  Instead, they get a reliable OS container that can move from one machine to another depending on hardware failures or changes in usage patterns.  They get consistent, standardized chunks of computing power, making their application run exactly the same regardless of what physical hardware supports it.</p>
<p>I dig the idea of utility computing.  I think we&#8217;re approaching the point where the interface between a computing need and fulfillment is as simple as plugging a light into an outlet.</p>
<p>If I need more CPU units to satisfy high end-of-quarter usage, I&#8217;d love to have a new server up and running in a few minutes, with minimal admin.  I would love to have spare CPU units ready to go at a moments notice.  I&#8217;d also love to share some of &#8220;our&#8221; CPU units back to the spare pool during usage lulls&#8211;or better yet, let this happen dynamically without me or our users noticing.</p>
<p>Why would a computing department want to offer VPS as a service instead of letting each group manage their own physical machines?</p>
<ul>
<li>Greater department efficiency: some clients can share the same physical machine.</li>
<li>Simplified accounting: one chunk of computing power is the same as any other.</li>
<li>Higher-level capacity planning: aggregate all future computing needs into a pool.</li>
<li>Hardware cost savings: yearly bulk purchases for entire department instead of independent purchases.</li>
</ul>
<p>The next question: how would this impact our organization?  What changes would we need to make?</p>
]]></content:encoded>
			<wfw:commentRss>http://maxgarrick.com/why-vps-will-take-over-the-planet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
