<?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>Web Admin Blog &#187; Automation</title>
	<atom:link href="http://www.webadminblog.com/index.php/category/automation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webadminblog.com</link>
	<description>Real Web Admins.  Real World Experience.</description>
	<lastBuildDate>Thu, 22 Jul 2010 16:18:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>A Case For Images</title>
		<link>http://www.webadminblog.com/index.php/2010/02/24/a-case-for-images/</link>
		<comments>http://www.webadminblog.com/index.php/2010/02/24/a-case-for-images/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:39:19 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=408</guid>
		<description><![CDATA[After speaking with Luke Kanies at OpsCamp, and reading his good and oft-quoted article "Golden Image or Foil Ball?", I was thinking pretty hard about the use of images in our new automated infrastructure.  He's pretty against them.  After careful consideration, however, I think judicious use of images is the right thing to do. My [...]]]></description>
			<content:encoded><![CDATA[<p>After speaking with Luke Kanies at OpsCamp, and reading his good and oft-quoted article "<a href="http://madstop.com/2009/02/04/golden-image-or-foil-ball/">Golden Image or Foil Ball?</a>", I was thinking pretty hard about the use of images in our new automated infrastructure.  He's pretty against them.  After careful consideration, however, I think judicious use of images is the right thing to do.</p>
<p>My top level thoughts on why to use images.</p>
<ol>
<li><strong>Speed - </strong>Starting a prebuilt image is faster than reinstalling everything on an empty one.  In the world of dynamic scaling, there's a meaningful difference between a "couple minute spinup" and a "fifteen minute spinup."</li>
<li><strong>Reliability</strong> - The more work you are doing at runtime, the more there is to go wrong.  I bet I'm not the only person who has run the same compile and install on three allegedly identical Linux boxen and had it go wrong somehow on one of 'em.  And the more stuff you're pulling to build your image, the more failure points you have.</li>
<li><strong>Flexibility</strong> - Dynamically building from stem cell kinda makes sense if you're using 100% free open source and have everything automated.  What if, however, you have something that you need to install that just hasn't been scripted - or is very hard to script?  Like an install of some half-baked Windows software that doesn't have a command line installer and you don't have a tool that can do it?  In that case, you really need to do the manual install in non-realtime as part of a image build.  And of course many suppliers are providing software as images themselves nowadays.</li>
<li><strong>Traceability</strong> - What happens if you need to replicate a past environment?  Having the image is going to be a 100% effective solution to that, even likely to be sufficient for legal reasons.  "I keep a bunch of old software repo versions so I can mostly build a machine like it" - somewhat less so.</li>
</ol>
<p>In the end, it's a question of using intermediate deliverables.  Do you recompile all the code and every third party package every time you build a server?  No, you often use binaries - it's faster and more reliable.  Binaries are the app guys' equivalent of "images."</p>
<p>To address Luke's three concerns from his article specifically:</p>
<ol>
<li><strong>Image sprawl </strong>- if you use images, you eventually have a large library of images you have to manage.  This is very true - but you have to manage a lot of artifacts all up and down the chain anyway.  Given the "manual install" and "vendor supplied image" scenarios noted above, if you can't manage images as part of your CM system than it's just not a complete CM system.</li>
<li><strong>Updating your images</strong> - Here, I think Luke makes some not entirely valid assumptions.  He notes that once you're done building your images, you're still going to have to make changes in the operational environment ("bootstrapping").  True.  But he thinks you're not going to use the same tool to do it.  I'm not sure why not - our approach is to use automated tooling to build the images - you don't *want* to do it manually for sure - and Puppet/Chef/etc. works just fine to do that.  So if you have to update something at the OS level, you do that and let your CM system blow everything on top - and then burn the image.  Image creation and automated CM aren't mutually exclusive - the only reason people don't use automation to build their images is the same reason they don't always use automation on their live servers, which is "it takes work."  But to me, since you DO have to have some amount of dynamic CM for the runtime bootstrap as well, it's a good conservation of work to use the same package for both. (Besides bootstrapping, there's other stuff like moving content that shouldn't go on images.)</li>
<li><strong>Image state vs running state</strong> - This one puzzles me.  With images, you do need to do restarts to pull in image-based changes.  But with virtually all software and app changes you have to as well - maybe not a "reboot," but a "service restart," which is virtually as disruptive.  Whether you "reboot  your database server" or "stop and start your database server, which still takes a couple minutes", you are planning for downtime or have redundancy in place.  And in general you need to orchestrate the changes (rolling restarts, etc.) in a manner that "oh, pull that change whenever you want to Mr. Application Server" doesn't really work for.</li>
</ol>
<p>In closing, I think images are useful.  You shouldn't treat them as a replacement for automated CM - they should be interim deliverables usually generated by, and always managed by, your automated CM.  If you just use images in an uncoordinated way, you do end up with a foil ball.  With sufficient automation, however, they're more like Russian nesting dolls, and have advantages over starting from scratch with every box.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2010/02/24/a-case-for-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Operations</title>
		<link>http://www.webadminblog.com/index.php/2010/02/17/agile-operations/</link>
		<comments>http://www.webadminblog.com/index.php/2010/02/17/agile-operations/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 19:59:42 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Operations]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=398</guid>
		<description><![CDATA[It's funny.  When we recently started working on an upgrade of our Intranet social media platform, and we were trying to figure out how to meld the infrastructure-change-heavy operation with the need for devs, designers, and testers to be able to start working on the system before "three months from now," we broached the idea [...]]]></description>
			<content:encoded><![CDATA[<p>It's funny.  When we recently started working on an upgrade of our Intranet social media platform, and we were trying to figure out how to meld the infrastructure-change-heavy operation with the need for devs, designers, and testers to be able to start working on the system before "three months from now," we broached the idea of "maybe we should do that in iterations!"  First, get the new wiki up and working.  Then, worry about tuning, switching the back end database, etc.  Very basic, but it got me thinking about the problem in terms of "hey, Infrastructure still operates in terms of waterfall, don't we."</p>
<p>Then when Peco and I moved over to NI R&amp;D and started working on cloud-based systems, we quickly realized the need for our infrastructure to be completely programmable - that is, not manually tweaked and controlled, but run in a completely automated fashion.  Also, since we were two systems guys embedded in a large development org that's using agile, we were heavily pressured to work in iterations along with them.  This was initially a shock - my default project plan has, in traditional fashion, months worth of evaluating, installing, and configuring various technology components before anything's up and running.   But as we began to execute in that way, I started to see that no, really, agile is possible for infrastructure work - at least "mostly."  Technologies like cloud computing help, but there's still a little more up front work required than with programming - but you can get mostly towards an agile methodology (and mindset!).</p>
<p>Then <a href="http://www.webadminblog.com/index.php/2010/02/05/opscamp-debrief/">at OpsCamp last month</a>, we discovered that there's been this whole Agile Operations/Automated Infrastructure/devops movement thing already in progress we hadn't heard about.  I don't keep in touch with The Blogosphere (tm) enough I guess.  Anyway, turns out a bunch of other folks have suddenly come to the exact same conclusion and there's exciting work going on re: how to make operations agile, automate infrastructure, and meld development and ops work.</p>
<p>So if  you also hadn't been up on this, here's a roundup of some good related core thoughts on these topics for your reading pleasure!</p>
<ul>
<li><a href="http://dev2ops.org/blog/2009/6/26/automated-infrastructure-enables-agile-operations.html">Automated Infrastructure enables Agile Operations</a></li>
<li><a href="http://blog.controltier.com/2008/12/virtualized-administration.html">Virtualized/Abstracted Administration</a></li>
<li><a href="http://agileoperations.net/index.php?/archives/20-Agile-Manifesto-co-author-encourages-Agile-Operations.html">Agile Manifesto Co-Author On Agile Operations</a></li>
<li><a href="http://www.agileweboperations.com/">Agile Web Operations Blog</a></li>
<li><a href="http://www.devopsdays.org/ghent09/programme">DevOpsdays</a> - one coming to the US in 2010, they say.</li>
<li><a href="http://en.oreilly.com/velocity2008/public/schedule/detail/2238">Building an Automated Infrastructure</a></li>
<li><a href="http://agilemanifesto.org/principles.html">Agile Manifesto</a> - if you're not a developer and only have a vague impression of what "agile" is</li>
<li><a href="http://www.kitchensoap.com/2009/07/18/extreme-automated-infrastructure/">Extreme Automated Infrastructure</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2010/02/17/agile-operations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Velocity 2009 &#8211; Introduction to Managed Infrastructure with Puppet</title>
		<link>http://www.webadminblog.com/index.php/2009/06/24/velocity-2009-introduction-to-managed-infrastructure-with-puppet/</link>
		<comments>http://www.webadminblog.com/index.php/2009/06/24/velocity-2009-introduction-to-managed-infrastructure-with-puppet/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 18:31:40 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2009]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocityconf]]></category>
		<category><![CDATA[velocityconf09]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=250</guid>
		<description><![CDATA[Introduction to Managed Infrastructure with Puppet by Luke Kanies, Reductive Labs You can get the work files from git://github.com/reductivelabs/velocity_puppet_workshop_2009.git, and the presentation's available here. I saw Luke's Puppet talk last year at Velocity 2008, but am more ready to start uptaking some conf management back home.  Our UNIX admins use cfengine, and puppet is supposed [...]]]></description>
			<content:encoded><![CDATA[<p>Introduction to Managed Infrastructure with <a href="http://reductivelabs.com/products/puppet/" target="_blank">Puppet</a><br />
by <a href="http://madstop.com/" target="_blank">Luke Kanies</a>, <a href="http://reductivelabs.com/" target="_blank">Reductive Labs</a></p>
<p>You can get the work files from git://github.com/reductivelabs/velocity_puppet_workshop_2009.git, and the <a href="http://reductivelabs.com/downloads/presentations/velocity_puppet_workshop_2009/project.html" target="_blank">presentation's available here</a>.</p>
<p><em>I saw Luke's Puppet talk <a href="http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/" target="_blank">last year at Velocity 2008</a>, but am more ready to start uptaking some conf management back home.  Our UNIX admins use cfengine, and puppet is supposed to be a better-newer cfengine.  Now there's also an (allegedly) better-newer one called chef I read about lately.  So this should be interesting in helping to orient me to the space.  At lunch, we sat with Luke and found out that Reductive just got their second round funding and were quite happy, though got nervous and prickly when there was too much discussion of whether they were all buying <a href="http://www.teslamotors.com/" target="_blank">Teslas </a>now.  Congrats Reductive!</em></p>
<p>Now, to work along, you git the bundle and use it with puppet.  <em>Luke assumes we all have laptops, all have git installed on our laptops, and know how to sync his bundle of goodness down.  And have puppet or can quickly install it.  Bah.  I reckon I'll just follow along.</em></p>
<p>You can get puppet support via IRC, or the puppet-users google group.</p>
<p>First we exercise "ralsh", the resource abstraction layer shell, which can interact with resources like packages, hosts, and users.  Check em, add em, modify em.</p>
<p>You define abstraction packages.  Like "ssh means ssh on debian, openssh on solaris..."  It requires less redundancy of config than cfengine.</p>
<p>"puppet"  consists of several executables - puppet, ralsh, puppetd, puppetmasterd, and puppetca.</p>
<p>As an aside, <a href="http://cft.et.redhat.com/" target="_blank">cft</a> is a neat config file snapshot thing in red hat.</p>
<p>Anyway, you should use puppet not ralsh directly.  Anyway the syntax is similar.  Here's an example invocation:</p>
<pre>puppet -e 'file { "/tmp/eh": ensure =&gt; present }'</pre>
<p>There's a file backup, or "bucket", functionality when you change/delete files.</p>
<p>You make a repository and can either distribute it or run it all from a server.</p>
<p>There is reporting.</p>
<p>There's a <a href="http://github.com/albanpeignier/gepetto/tree/master" target="_blank">gepetto</a> addon that helps you build a central repo.</p>
<p>A repo has (or should have) modules, which are basically functional groupings.  Modules have "code."  The code can be a class definition.  init.pp is the top/special one.   There's a modulepath setting for puppet.  Load the file, include the class, it runs all the stuff in the class.</p>
<p>It has "nodes" but he scoffs at them.  Put them in manifests/site.pp.  default, or hostname specific (can inherit default).   But you should use a different application, not puppet, to do this.</p>
<p>You have to be able to completely and correctly describe a task for puppet to do it.  This is a feature not a bug.</p>
<p>Puppet uses a client-server pull architecure.  You start a puppetmasterd on a server.  Use the SSH defaults because that's complicated and will hose you eventually.  Then start a puppetd on a client and it'll pull changes from the server.</p>
<p><em>This is disjointed.  Sorry about that.  The session is really just reading the slide equivalent of man pages while flipping back and forth to a command prompt to run basic examples.  I don't feel like this session gave enough of an intro to puppet, it was just "launch into the man pages and then run individual commands, many of which he tells you to never do."  I don't feel like I'm a lot more informed on puppet than when I started, which makes me sad.  I'm not sure what the target audience for this is.  If it's people totally new to puppet, like me, it starts in the weeds too much.  If it's for someone whohas used puppet, it didn't seem to have many pro tips or design considerations, it was basic command execution.  Anyway, he ran out of time and flipped through the last ten slides in as many seconds.  I'm out! </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/06/24/velocity-2009-introduction-to-managed-infrastructure-with-puppet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Velocity 2008 Conference Experience &#8211; Part VII</title>
		<link>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/</link>
		<comments>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 00:28:48 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2008]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocity08]]></category>
		<category><![CDATA[velocityconf08]]></category>

		<guid isPermaLink="false">http://webadminblog.com/?p=24</guid>
		<description><![CDATA[We've reached the last couple sessions at Velocity 2008. Read me! Love me! We hear about Capacity Planning with John Allspaw of Flickr. He says: No benchmarks! Use real production data. (How? We had to develop a program called WebReplay to do this because no one had anything. We're open sourcing it soon, stay tuned.) [...]]]></description>
			<content:encoded><![CDATA[<p>We've reached the last couple sessions at Velocity 2008.  Read me!  Love me!</p>
<p>We hear about <strong><a href="http://en.oreilly.com/velocity2008/public/schedule/detail/3208" target="_blank">Capacity Planning</a> </strong>with John Allspaw of Flickr.  He says: No benchmarks!  Use real production data.   (How?   We had to develop a program called WebReplay to do this because no one had anything.  We're open sourcing it soon, stay tuned.)</p>
<p>Use "safety factors" (from traditional engineering).  Aka a reserve, overhead, etc.</p>
<p>They use squid a bunch.  At NI we've been looking at Oracle's WebCache - mainly because it supports ESIs and we're thinking that may be a good way to go.  There's a half assed ESI plugin for squid but we hear it doesn't work; apparently Zope paid for ESI support in squid 3.0 but no traction on that in 4 years best as we can tell.  But I'd be happy not to spend the money.</p>
<p><span id="more-24"></span></p>
<p>Anyway.  You should do forecasting.  Assuming it's linear which it never is.  But you can take output from your stuff (ganglia, whatever) and <a href="http://www.unipress.waw.pl/fityk/" target="_blank">fityk</a> can give you a curve fit.</p>
<p>They use lots of <a href="http://www.nagios.org/ " target="_blank">nagios</a> for monitoring - about 10 checks per host.</p>
<p>Determine a ceiling, and high/low water marks, and alert outside the water marks.</p>
<p>Then have a simple capacity dashboard for everything - how close to ceiling you are.</p>
<p>Horizontal scaling is all well and good, but sometimes you should do some vertical by upgrading.  He calls it "diagonal."  By upgrading image proc servers, they got same CPU usage but 3x more work out of them.  (We saw the same when we upgraded our Java app servers from Sun V440s to Dell 2850s a year or two ago - 50% performance improvement.)  In their case, they also got faster processing time, less power usage, and less rack space.</p>
<p>Memcached.  You turn it on, and the DBs go idle!   Yay.  But then your Web servers heat up as they become the bottleneck.   So beware the wandering bottleneck.</p>
<p>Stupid Capacity Tricks!   Before Puppet and Capistrano there was dsh (distributed shell).  Ooo, I want it.</p>
<p>Shut Shit Off - they have software switches to disable various features when needed.  (We have a lot of those switches at NI, but they're not documented and under the control of business units not ops - sad.)  Their programmers are good, they put flags in config files in order of importance to turn things on/off, read on the fly.</p>
<p>Host an outage page NOT in your datacenter, and use it - users appreciate knowing what's up.</p>
<p>Bake dynamic into static.  Some Yahoo! properties have a big red button to bake/unbake at will.  Bye to DDoS attacks.</p>
<p>And at the end, a plaintive "We're Hiring..."  Like everyone else here.  Man I need some good Web ops people.  I have two open spots.  We're hiring too!!!</p>
<p>Question: You do lots of mini-code pushes (20/day).  How the heck do you manage that and keep the site up?   He says - culture is the biggest thing.  They have devs that think like ops and don't do retarded things.  They're ganglia addicted and they're the ones hitting the big red buttons.  Then less important are some technical parts, like a one button deploy and verbose logging of changes.</p>
<p>He uses more dirty words than I do.  Boss.</p>
<p>Artur Bergman of Wikia speaks again, on  <strong>Squid vs Varnish</strong>.</p>
<p>PHP is a pig and wikitext is hard to parse, so they need caching.  A hit is 8 ms and a miss is 200 ms, and they have a 75% hit rate.  You have to get the cache hits up, by making more cachable.  Ooo, they're playing around with ESI he says!</p>
<p>They decided to force caching for anonymous users.  They've only gone up to 30 seconds, but no complaints.  They ignore if-modified-since and purge. Be careful about vary-accept on encoding because there's an annoying browser bug with misplaced commas.</p>
<p>Mediawiki lives and dies by squid and puts cache control in the code, which is bad because developers are stupid.</p>
<p>Squid - the slide actually says "Me hates it" and "Still a piece of shit."  Awesome.</p>
<p>Varnish - he loves varnish.  He nearly cried when he read the source code (C).  But it's a little unstable.  He got it up to 65k hps (squid doing 2800).</p>
<p>Varnish has some "novel" techniques.  Its control language is VCL.  (Side note, they monitor with lvs).  This gets compiled down to C at runtime.  So you can put assembly in if you want.  Lawdy.  It segfaults from time to time under load and they're helping fix it.  In a month or two he'll have it crackin'!</p>
<p>And the last one - <strong>Puppet,</strong> by Luke Kanies, Puppet developer.</p>
<p>Automation tools are old and bad, and especially because they're SSH based.  (Agree!)  And also because there's not many people who cross the chasm between sysadmin and developer.  They decided they had to solve the problem and create something a billion times better than anything (where anything is cfengine).  Either you can manage many machines with little effort, or you can't.  You want to be able to.  So this required abstraction.  He's using the analogy of C scaring the bejeezus out of assembly programmers - a good analogy.</p>
<p>It's sad you have to do it, but he goes into why a more powerful tool should not scare people and put them all out of work.  Developers seem to have gotten over this but not sysadmins.  it's stupid especially because "we're understaffed" is the #1 thing I hear out of all of ours.</p>
<p>So they implemented Puppet with the metaphor of resources and resource providers, hiding all the file/command/UNIX admin stuff.  (Well, kinda.)  It's easily extensible.</p>
<p>The Web 2.0 crowd has made "microformats."  Your infrastructure can use that idea too.  Catch up with the times - if you're proud of doing something developers have been doing for 10 years (like moving to version control in Subversion) then you're behind.  (Use <a href="http://git.or.cz/" target="_blank">git</a>!)  Anyway, you have to use polymorphism (overloading) to make a system like Puppet understand ssh on system 1 vs 2 vs 3.</p>
<p>Also, have one solution per problem.  Not multiple.  And most of the problems you face are NOT unique to you or your organization - so using a common tool like this can benefit from the network effect.</p>
<p>And the third big principle (were there only two before?) is completeness.  Everything that matters in your config should be in the config.  Not some minimal set.  Relationships are important (dependencies).  You can do things like have a service subscribe to a file and restart when it changes, for example.</p>
<p>Puppet is mainly used as a central config management tool.  Each host gets a resource catalog.  Machines get put in classes and they get lists of resources.</p>
<p>Puppet clients retrieve their resource catalog, determine order, check em, fix, and repeat every 30 minutes.  "Like cfengine but sexier!"  The completeness approach means clean management through the lifecycle - a freshly kickstarted box doesn't end up different.  You just kickstart enough to run puppet and use it to do everything.  So all boxes are kept 100% up to date without artifacts.</p>
<p>And it has reporting underway too!  They're planning to charge for that to make some mooonay!  Google, Stanford, Sony, Rackspace all use Puppet.</p>
<p>Why Puppet vs Capistrano?  Cap is SSH in Ruby. Not something for yoru whole infrastructure.</p>
<p>Why Puppet vs cfengine?  More open dev community and better.</p>
<p>What about Puppet slowness?  It scales like HTTPS.</p>
<p>Puppet: Is XMLRPC but moving to REST.  Uses certs and SSL, not keypairs.  It's in Ruby.  He's had to learn to be a developer in the process.  It's also an API to the systems.  It supports VMs well and can get into the guts of the VMs unlike pure VM provisioning tools.  Buy me!  it's open source but he sells support/trainin/addons.  Discovery to come!  There's nagios integration of some sort.  Vertebra, like capistrano, is an ad hoc change tool - Puppet isn't (though you can use relsh for that).</p>
<p>That's the last session - wrapup later once I power up my laptop and get some booze in me!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
