<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Passing Curiosity: Posts tagged devops</title>
    <link href="https://passingcuriosity.com/tags/devops/devops.xml" rel="self" />
    <link href="https://passingcuriosity.com" />
    <id>https://passingcuriosity.com/tags/devops/devops.xml</id>
    <author>
        <name>Thomas Sutton</name>
        
        <email>me@thomas-sutton.id.au</email>
        
    </author>
    <updated>2014-02-11T00:00:00Z</updated>
    <entry>
    <title>Puppet Camp Sydney 2014</title>
    <link href="https://passingcuriosity.com/2014/puppet-camp-sydney/" />
    <id>https://passingcuriosity.com/2014/puppet-camp-sydney/</id>
    <published>2014-02-11T00:00:00Z</published>
    <updated>2014-02-11T00:00:00Z</updated>
    <summary type="html"><![CDATA[<p><a href="http://puppetlabs.com/community/puppet-camp">Puppet Camps</a> are regular, regional events for the Puppet community and
this is the second or third time I’ve attended one. They can feel a <em>tiny</em> bit
vendor-y (this should be unsurprising) but the quality of the talks and the
attendees is pretty good, in my experience.</p>
<p><strong>Nigel Kersten</strong>’s keynote talk was aimed at a pretty broad audience (a bit of
Puppet, what’s driving uptake, etc.) but also described some of the new
features in components included in the next release (IIRC) of Puppet
Enterprise. I was particularly interested to learn about <a href="http://docs.puppetlabs.com/puppet/latest/reference/ssl_autosign.html#policy-based-autosigning">policy based
auto-signing</a> and <a href="http://docs.puppetlabs.com/puppet/latest/reference/lang_variables.html#trusted-node-data">trusted node data</a> in Puppet 3.4+, <a href="http://docs.puppetlabs.com/guides/custom_facts.html#external-facts">external facts</a>
in Factor 1.7+, more readable ouput from Hiera 1.3+, and the news that
Puppet Labs will be supporting some of their modules from the <a href="http://forge.puppetlabs.com/">forge</a>.</p>
<p><strong>Peter Leschev</strong> from Atlassian described the process of introducing and
developing “infrastructure as code” in the Atlassian build engineering team. He
describe their introduction of a number of tools and measures and the impact on
confidence in infrastructure changes being made. It was interesting to see the
journey of adding code reviews, Puppet, Vagrant-based development (with
Veewee), behaviour based testing (with Cucumber), continuous integration
(Bamboo and Vagrant), profiling (Puppet’s <code>--evaltrace</code> flag), automated
deployment (to staging) and notification (in HipChat). Later on I wished I’d
asked if the graphs of confidence in his slides were from measurements, or for
illustrative purposes only.</p>
<p><strong>Lindsay Holmwood</strong> from Bulletproof described the <a href="http://puppetlabs.com/community/puppet-camp#previous">Flapjack</a> monitoring
system – which seems pretty cool – and how you’ll be able to configure it
with Puppet (when he releases the Puppet module). The architecture of Flapjack
looked pretty interesting and I plan to have a play with it this weekend.</p>
<p><strong>Rene Medellin</strong> spoke about NAB’s move to push some of their workloads into
“the cloud” (AWS). They used Puppet as part of their SEO machine image building
process <em>and</em> in deployment as one of their monitoring and compliance tools.
Lots of Jenkins and automated building of AMIs and CloudFoundry templates and
such.</p>
<p><strong>Aaron Hicks</strong> from Landcare Research NZ spoke about the way he uses Puppet in
a scientific research environment. Particularly interesting was the use of
Puppet to formalise the configuration of the many, many precious snowflake
machines used in the various research projects his organisation supports. The
idea of supplying Puppet manifests to help in the replication of scientific
computing sounds great.</p>
<p><strong>James Dymond</strong> and <strong>John Painter</strong> from Sourced Group described a series of
“Puppet in the AWS cloud” architectures they’d developed for clients in their
consulting engagements. Most interesting was their fourth (I think) solution,
where they implemented a “gateway” between AWS autoscaling notifications and
Puppet, allowing the master to sign certificates, delete node reports, etc. as
the AWS autoscaling system adds and removes nodes.</p>
<p><strong>Matt Moor</strong> from Atlassian described the way they use Puppet to manage their
SaaS offering. Each SaaS client has their own VM which, now, is managed using
Puppet. This allows them to manage service and version dependencies much more
reliably than their previous approach of building massive WAR files using Maven
and managing them with hack-y shell scripts.</p>
<p>The last talk was by <strong>Chris Barker</strong> from Puppet Labs who gave a product
demonstration of Puppet Enterprise. I’d already used most of the features
demoed but some of the newer stuff – especially the <a href="http://puppetlabs.com/presentations/introducing-puppet-enterprises-event-inspector">event inspector</a> –
looked pretty cool.</p>
<p>Puppet Camp Sydney 2014 was a great event and brought to mind again just how
much fun operations work (what little I’ve done) can be. In time, I expect the
slides and videos of the presentations will be available from the Puppet Labs
web-site on the <a href="http://puppetlabs.com/community/puppet-camp#previous">Previous Puppet Camps</a> page.</p>]]></summary>
</entry>
<entry>
    <title>Sydney Devops Meetup, August 2013</title>
    <link href="https://passingcuriosity.com/2013/sydney-devops-meetup-august/" />
    <id>https://passingcuriosity.com/2013/sydney-devops-meetup-august/</id>
    <published>2013-08-15T00:00:00Z</published>
    <updated>2013-08-15T00:00:00Z</updated>
    <summary type="html"><![CDATA[<p>Here are some nodes from the <a href="http://www.meetup.com/devops-sydney/events/117291642/">August 2013 Sydney Devops Meetup</a>.</p>
<h2 id="artur-ejsmont-on-release-management-at-yahoo7">Artur Ejsmont on release management at Yahoo!7</h2>
<p>Artur is a Senior Software Engineer at Yahoo!7. I think he said he’s on the
platforms team? The environment within the team is rather different environment
than many others – much more in common with release engineering and system
administration than in other roles.</p>
<p>Everything is released and deployed as packages using a suite of tools and
formats developed with the Yahoo! empire. Packages include (almost) everything:
PHP source code, crontabs, configurations, etc.</p>
<p>Release descriptions (CMR) include:</p>
<ul>
<li>package versions and clusters</li>
<li>conf and cron changes</li>
<li>database and process management</li>
</ul>
<h3 id="joined-team">Joined Team</h3>
<p>When he joined the team, the 5 members were responsible for 180 packages
(committing to 1-2 dozen packages in an average sprint).</p>
<p>There was a lack of visibility in not only the state of various packages
(deployed versions, build and test status, etc.) but even which packages there
<em>are</em> (commited to SVN but never made it into the package repository).</p>
<p>Problem with packages lingering without stable releases. Wanted to be able to
recreate environments, etc. but dependencies not being promoted to stable can
make it a pain in the arse to track down specific versions.</p>
<ul>
<li>Uncertainty what has to be released</li>
</ul>
<p>A great deal of manual work to assemble change management requests for
releases. Two days of work at the end of each sprint, trawling through
documentation, trackers, SVN, etc.</p>
<p>Ten different application clusters with different versions of different
packages on each.</p>
<ul>
<li>Manual testing of int stage prod</li>
</ul>
<p>Perception was that the team was doing way too much manual work.</p>
<p>Constantly searching for information in disparate sources; repos, code,
trackers, wikis, etc.</p>
<p>Ecosystem is too complex.</p>
<p>Too many moving parts &amp; chances to screw things up.</p>
<h3 id="vision">Vision</h3>
<p>Provide visibility</p>
<blockquote>
<p>I don’t want to guess, nor search.</p>
</blockquote>
<p>Automate</p>
<blockquote>
<p>Do it for me or telll me what to do next.</p>
</blockquote>
<p>Data aggregation</p>
<p>Single point of entry for Bugzilla, svn, ci, dist, CMR tool, etc.</p>
<p>Provide metrics</p>
<h3 id="development">Development</h3>
<p>Built it over Christmas period.</p>
<ol type="1">
<li><p>Automated job to prcoess entire SVN repo, discover packages and generate 190
static HTML reports.</p></li>
<li><p>Second release using MySQL.</p></li>
</ol>
<h3 id="package-list">Package List</h3>
<p>List of 190 packages. Sort by: CI state (broken at top), release state (commits
but no version released), package created (but not deployed everywhere yet), up
to date.</p>
<p>Provides information including:</p>
<ul>
<li><p>Version numbers (svn trunk, newest in package repo, oldest in production)</p></li>
<li><p>“Score” (higher is worse) so it can fudge things by priority.</p></li>
<li><p>Links to various sources of information (related CMRs, SVN, CI, repo)</p></li>
</ul>
<p>Rollup</p>
<ul>
<li>Healthy</li>
<li>Pending</li>
<li>Unhealthy</li>
</ul>
<h3 id="cmr-builder">CMR Builder</h3>
<p>Interrogates various data sources:</p>
<ul>
<li>SVN</li>
<li>Igor (server role manager)</li>
<li>Repository (dependencies)</li>
<li>Deployments</li>
</ul>
<p>Assemble changelogs, etc.</p>
<p>Some packages are based on old CVS repositories, need crazy date-based logic to
build a diff.</p>
<h3 id="dependencies">Dependencies</h3>
<p>Dependencies between packages are really annoying; lots of dependencies between
packages. 10 major applications, 190 packages. Only a few packages are
relatively independent.</p>
<p>Provides overview of dependencies:</p>
<ul>
<li>List of packages required by this package</li>
<li>List of packages which require this package</li>
</ul>
<h3 id="metrics">Metrics</h3>
<p>Metrics to tell:</p>
<ul>
<li><p>How are things? Good or bad?</p></li>
<li><p>How are things changing? Getting better?</p></li>
</ul>
<p>Lag-Score includes a range of factors (tests failing, production versions,
etc.) which tries to combine all the factors. Plotted, making very little
progress on this over 6 months.</p>
<h3 id="questions">Questions</h3>
<p>Why a custom packaging tool?</p>
<blockquote>
<p>It was invented at Yahoo! before there were existing tools like dpkg,
rpm, etc. Lots of tools to manage, e.g., 40,000 servers involved in
Yahoo! Mail.</p>
<p>Given the tools and scale, it probably won’t be going away.</p>
</blockquote>
<p>Release notes: if it’s bullshit, why not kill it completely?</p>
<blockquote>
<p>It’s an embedded part of the environment and culture of this team and
other teams. Also: comes from global.</p>
<p>CMRs provide communication channel between teams and sysadmins. It’s a
heavy process, and are trying to make it more lightweight, but safety
is important.</p>
</blockquote>
<p>How fast do you go?</p>
<blockquote>
<p>About two release windows a week.</p>
<p>Sprints are about 3 weeks, but not religious about it.</p>
<p>SCRUM-ish, but no product owner, etc. so only ish.</p>
</blockquote>
<p>Have you got your tool into other teams?</p>
<blockquote>
<p>New version is in use by three or four more teams.</p>
<p>Internal presentation, now crawling all the things. Using maintainer
information to group stuff into teams.</p>
</blockquote>
<p>Are all envrionments managed in the same way?</p>
<blockquote>
<p>Yeah, it’s all controlled using the same tools.</p>
</blockquote>
<p>Reproducing production in staging for incident response?</p>
<blockquote>
<p>Easy using the role-based server management system.</p>
</blockquote>
<p>Configuration management in packages?</p>
<blockquote>
<p>Packages declare the configuration options they have.</p>
</blockquote>
<p>More</p>
<blockquote>
<p>Command to override value for a configuration parameter declared by a
package.</p>
<p>Changes to databases aren’t managed, managed manually. Sometimes have
to make schema changes backward compatible and run before hand, etc.</p>
</blockquote>
<h2 id="james-gorman-on-plain-old-services">James Gorman on Plain Old Services</h2>
<p>A lot of this is about James having the shits with the way they do things at
Yahoo!7 and on the web in general.</p>
<p>Working in Java, metric shit ton of frameworks. JBoss got deprecated.</p>
<blockquote>
<p>Everything you can do with Tomcat is an awful hack.</p>
</blockquote>
<p>Found data intensive server container. Based on Jersey but simple. Also:
focussed on the web. Architecture three tier architecture.</p>
<p>Want more asynchronous: message queues, etc. Decoupling. Wrote a thing that
does this. Similar architecture but more ways of asking for things to be done
(cron, message queues, etc.)</p>
<blockquote>
<p>I don’t recommend anyone ever write server middleware.</p>
</blockquote>
<h2 id="peter-ericson-on-erlang-and-elixr">Peter Ericson on Erlang and Elixr</h2>
<p><a href="http://www.erlang.org">Erlang</a> is erlang; <a href="http://elixir-lang.org">Elixir</a> is a ruby-ish language which compiles directly
to Erlang bytecode.</p>
<p>Elixir Dynamo is a web framework for Elixir. Scaffolding, etc.</p>
<p>See <a href="https://bitbucket.org/pdericson/erlang_future">example code</a>.</p>
<h2 id="sergey-guzenkov-on-the-red-hat-summit">Sergey Guzenkov on the Red Hat Summit</h2>
<p>Been to the US for the <a href="http://www.redhat.com/summit/">RedHat summit</a> last
month.</p>
<p>They’ll be releasing a major new version of <a href="http://www.redhat.com/products/enterprise-linux/rhn-satellite/">Red Hat Satellite</a> (their
management thing) building on Puppet, Foreman, Katello, Pulp, Candlepin.</p>
<p>RHEL7 release is delayed. It’ll be based on Fedora 19 and the beta is due in
December 2013. The 7.0 release is expected early next year. Replacing MySQL
with MariaDB; adding MongoDB, nodejs; upgrading a bunch of programming
languages; systemd. Will include client and server support for pNFS – an
extension of NFS to be parallel.</p>
<h2 id="shaun-domingo-on-making-knife-and-support-play-nice">Shaun Domingo on making knife and support play nice</h2>
<p>Support get queries about rails apps, etc. Ask engineers but they are busy,
etc. Support staff should be able to interrogate things.</p>
<p>Building on top of <a href="http://docs.opscode.com/chef/knife.html">knife</a> and knifeblock (manage knife configurations).
Plugin allowing support staff to download application keys (to interact with
APIs on their behalf), talk to APIs, generate knifeblock configuration and then
help resolve issues.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>	<span class="co"># List apps.</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>	<span class="ex">knife</span> ninefold-internal <span class="at">-l</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a>	<span class="co"># Generate knifeblock configuration.</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a>	<span class="ex">knife</span> ninefold-internal <span class="at">-a</span> 23 <span class="at">-g</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a>	<span class="co"># Activate the knifeblock configuration.</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>	<span class="ex">knife</span> block dev-NF00000004-23</span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a>	<span class="co"># Do stuff to help investigate and resolve customer's problem.</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a>	<span class="ex">knife</span> ...</span></code></pre></div>]]></summary>
</entry>
<entry>
    <title>Devops Downunder 2013, Day Two</title>
    <link href="https://passingcuriosity.com/2013/devops-down-under-2013-day-two/" />
    <id>https://passingcuriosity.com/2013/devops-down-under-2013-day-two/</id>
    <published>2013-07-13T00:00:00Z</published>
    <updated>2013-07-13T00:00:00Z</updated>
    <summary type="html"><![CDATA[<p>I’m attending <a href="http://devopsdownunder.org/">Devops Downunder 2013</a> in Sydney, New South Wales. This is my
first devops event (and my first <a href="http://en.wikipedia.org/wiki/Open_Space_Technology">open spaces</a> event) but I’ve heard good
things about both. I’ll try to update this post over the course of the day. Not
real live blogging, more delayed telecast blogging.</p>
<p>I’m typing these notes during the sessions, so there may be errors and
omissions. Any such problems are my fault and not that of the speakers.</p>
<h2 id="lindsay-holmwood-on-cognitive-biases-in-devops">Lindsay Holmwood on Cognitive biases in devops</h2>
<p><a href="https://speakerdeck.com/auxesis/the-devops-field-guide-to-cognitive-biases">Slides are available on Speaker Desk</a></p>
<p>Confirmation bias: play devils advocate; us political bookmaking.</p>
<p>Negative views are often biased.</p>
<h3 id="provisioning-automation">Provisioning Automation</h3>
<p>Resolving problems the provisioning teams were seeing with automation.</p>
<ol type="1">
<li><p>VMware is hurting us.</p></li>
<li><p>Then load balancing.</p></li>
<li><p>The VMware again.</p></li>
<li><p>Then EC2.</p></li>
</ol>
<p>For 18 months.</p>
<h3 id="hindsight-bias">Hindsight bias</h3>
<p>: incorrectly recalling (rewriting history).</p>
<blockquote>
<p>petty good argument that Conservative media should go behind pay walls.</p>
</blockquote>
<p>You could have avoided bad circumstances but didn’t. Try harder.</p>
<p>Eg: devops ing the shit out of the alert that some you up last night (even of another one wakes you up twice add often).</p>
<p>Eg: higher conviction rates when prosecution sums up using hindsight language. Defence successful with foresight language.</p>
<h3 id="dunning-kruger-effect">Dunning-Kruger effect</h3>
<p>A little bit of knowledge is a dangerous thing. Judging skill in something (in self and others) requires skill.</p>
<p>Setting an impossible deadline: “it’s just typing.”</p>
<h3 id="curse-of-knowledge">Curse of knowledge</h3>
<p>Making decisions hard or impossible due to overload of options, knowledge, etc.</p>
<p>Poor performers don’t learn from feedback, because they think they know better.</p>
<p>I can X better than this.</p>
<p>Minimal training improves <em>self-assessment</em>, even in the absence of improved skill.</p>
<p>Non-technical management, lean on engineers.</p>
<p>East Asian societies seem to exhibit an inverted DK effect.</p>
<h3 id="better-than-average-effect">better than average effect</h3>
<p>People believe they have above average susceptibility to good attributes.</p>
<h3 id="rhyme-as-reason">Rhyme as reason</h3>
<p>Aesthetics affect perception of truth. You are more likely to believe them.</p>
<h3 id="fluency-heuristic">Fluency heuristic</h3>
<p>How many fs? Skipping the ones in words like “of”.</p>
<p>Induce randomness. Avoid s patterns the brain can fall into.</p>
<p>Checklist and formalise.</p>
<p>Make text styling simple. Simple fonts are more likely to answer a question correctly than in cursive font.</p>
<h3 id="normalcy-bias">normalcy bias</h3>
<p>Ignore stuff which makes you uncomfortable about yourself. Organisation s have it bag.</p>
<h3 id="conclusion">conclusion</h3>
<blockquote>
<p>Twain: it ain’t what you know…</p>
</blockquote>
<p>See also:</p>
<ul>
<li>You are not so smart</li>
<li>The field guide to understanding human error - Sidney Dekker</li>
</ul>
<h2 id="devops-pay-raise">Devops pay raise</h2>
<blockquote>
<p>Quantify your value to move up the ladder.</p>
</blockquote>
<p>Devops:</p>
<blockquote>
<p>Developers writing together with operations to get things done faster in an automated and repeatable way.</p>
</blockquote>
<p>How do you know you’re getting it right? Pager quiet?</p>
<blockquote>
<p>it worked fine in dev, ops problem now.</p>
</blockquote>
<p>Nine nines is meaningless.</p>
<p>Grinding for a year on application support.</p>
<p>Business doesn’t care about P1s, SLAs, etc. All they care about is money. They could never really prove that P1=£</p>
<p>Every one viewed him as a pain in the arse.</p>
<p>The 4am call about a <em>staging</em> server.</p>
<p>False alarms costing $70k per year. Mean time to innocence.</p>
<p>How many people have considered:</p>
<ul>
<li><p>How much have we saved the business?</p></li>
<li><p>How much have qr cost the business?</p></li>
</ul>
<h3 id="missing">Missing</h3>
<ol type="1">
<li><p>Automation</p></li>
<li><p>Collaboration</p></li>
<li><p>Visibility of the system</p></li>
<li><p>Business metrics. P1 is supposed to be business is impacted.</p></li>
</ol>
<h3 id="should-have-done">should have done</h3>
<ol type="1">
<li><p>Baseline starting position.</p></li>
<li><p>Measure progress.</p></li>
<li><p>Calculate impact on business. Allows you to</p></li>
<li><p>promote success instead of problems.</p></li>
<li><p>Sell value</p></li>
</ol>
<h3 id="now">Now</h3>
<p>Monitoring and visibility tools.</p>
<p>Seeing utilisation, application performance monitoring.</p>
<p>Correlate business metrics.</p>
<h3 id="automation">Automation</h3>
<p>Time is money. Business people like money.</p>
<p>Infrastructure automation with puppet, chef, etc. How much time did these tools save?</p>
<p>Deployment automation. Jenkins, Capistrano, err yc.</p>
<p>Log automation. Log stash, spunk</p>
<p>Graphite, nagios, etc</p>
<h3 id="collaboration">collaboration</h3>
<p>What is the value of collaboration?</p>
<h3 id="value">value</h3>
<p>Evaluate the cost of the tools and automation, etc. vs the savings. That’s your value as a practitioner.</p>
<p>Tell type business how much devops culture has saved them.</p>
<h2 id="sam-newman-sebastian-cole-on-puppet-on-windows-linux-in-the-cloud">Sam Newman &amp; Sebastian Cole on Puppet On Windows &amp; Linux In The Cloud</h2>
<p>Sebastian is from <a href="http://mi9.com.au/">Mi9</a> and Sam is a consultant from ThoughtWorks. Mi9 is a
joint venture between Channel 9 and Microsoft. Run <a href="http://www.ninemsn.com.au/">ninemsn.com.au</a> which
they’ve been trying to move to cloud-y sorts of things.</p>
<p>Main site moved to AWS, trying to move everything else to the cloud too. Not
just AWS, also looking to Azure.</p>
<p>Using tools and techniques new to the business: Puppet, Linux (cost savings on
licensing). 250 instances, 70/30 Windows/Linux, equally divided between
Singapore and Sydney.</p>
<h3 id="puppet-vs-powershell">Puppet vs Powershell</h3>
<p>Windows administration tool of choice is Powershell. Have a lot of stuff already
written in Powershell, don’t want to replace it.</p>
<p>Common pattern of Puppet <code>File</code> resource and <code>Exec</code> resource (with appropriate
<code>unless</code>, etc. attributes). Interface between Puppet and the script is blurry.</p>
<h3 id="developing-on-windows">Developing on Windows</h3>
<ul>
<li>Rspec-puppet (but it wants symlinks)</li>
</ul>
<p>Puppet Agent on Windows</p>
<p>Restarting Nagios client on Windows; Puppet Enterprise wasn’t able to restart
services on Windows correctly, Puppet run turns the whole production
infrastructure red.</p>
<p>Package management is crappy on Windows (find, download, run an MSI) vs unix
(apt-get, yum, etc.); no consistent place to applications to store data and
configuration for Windows apps; there’s rarely a single tool which can be used
across both platforms (percountermonitor vs collectd, curl vs .Net class)</p>
<p>Ease the pain with Nagios (agents for both platforms), Chocolatey (attempt at
package management for Windows), Graphite, Amanda (backups).</p>
<h3 id="amazon-web-services">Amazon Web Services</h3>
<p>Initial move was a little wild-west; everyone had AWS keys, same account;
couldn’t control access to specific resources (accidentally kill production
instead of staging).</p>
<p>IAM federation is good, but some services (“beta”) like Beanstalk don’t support
IAM federation.</p>
<p>Saw EC2 costs split between compute and network. Think about structuring
networking. Shutdown all the things that aren’t tagged with “stay on all the
time”.</p>
<p>Netflix Edda to inspect and record states of AWS resources. Hopefully be able to
record changes that happen, with or without failures in change control.</p>
<h3 id="access-control">Access control</h3>
<ul>
<li><p>First uses Puppet to push SSH keys out.</p></li>
<li><p>Goal to start using Active Directory (already using for OS-level auth).</p></li>
</ul>
<h3 id="continuous-integration">Continuous Integration</h3>
<p>Can be mismatch between using Puppet Master and continuous integration.</p>
<ol type="1">
<li><p>Code is committed.</p></li>
<li><p>Compile.</p></li>
<li><p>Tests pass.</p></li>
<li><p>It deploys!</p></li>
<li><p>Production.</p></li>
</ol>
<p>Each of the stages may put the application into different environments – dev,
test, staging, production. How does this work when the code is Puppet
configuration.</p>
<p>Using Puppet environments to dev, test, prod Puppet code. Need to use Puppet 2.5
with changes. Need to be able to manage Puppet as part of the environments.</p>
<p>Solution: the Puppet master for each environment is <em>part of</em> that environment.
Makes testing of changes to Puppet itself possible. No more breaking all the
things.</p>
<h3 id="azure">Azure</h3>
<p>Don’t want to double team for another platform. Want to use existing tools –
Puppet – in Azure too.</p>
<p>Automating Puppet master deployment means being able to run a Puppet master
within Azure.</p>
<p>Azure will be the 5th platform in use.</p>
<h3 id="puppet-and-windows">Puppet and Windows</h3>
<p>Windows loves Puppet, but Puppet (the development process) loves Windows quite
a bit less.</p>
<h3 id="qa">Q&amp;A</h3>
<p>What are you using?</p>
<blockquote>
<p>Quite an array of platforms:</p>
<ul>
<li>News site is .Net; purchased CMS.</li>
<li>NodeJS.</li>
<li>Ruby on Rails apps.</li>
<li>A few purchased Java apps.</li>
<li>Older sites are classic ASP.</li>
<li>Newer are .Net 2-4; rolling out 4.5</li>
</ul>
<p>Puppet focusses on newer side of things (Amazon, .Net 4)</p>
</blockquote>
<p>Can Cygwin help with the cross platform issues?</p>
<blockquote>
<p>Started with this “paper over the differences” mentality but it just doesn’t
work. There are corner cases where Cygwin <em>isn’t</em> like unix and you’ll have
to touch real Windows anyway.</p>
<p>Also: it’s essentially a Windows team.</p>
<p>Also: The models aren’t the same: registry, OO controls, etc. You can’t just
awk the registry. If you’re trapped in Cygwin, you can’t use apps that don’t
know the Cygwin filesystem stuff.</p>
<p>Instead, use tools and processes which work on <em>both</em> platforms, rather than
trying to pretend there’s only one platform.</p>
<p>Building higher-level tools which can support the different platforms, both
OS and cloudish.</p>
</blockquote>
<h2 id="ignite-talks">Ignite Talks</h2>
<h3 id="zendesk-guy-sorry-for-no-name">Zendesk guy (sorry for no name)</h3>
<p>Trust</p>
<p>Processes: build processes that you – and your team – believe in; breaking
the processes breaks trust. Don’t be the one who commits to master!</p>
<p>Being excellent isn’t enough; all the people should improve all the things all
the time.</p>
<p>It’s hard to regain trust that you’ve broken.</p>
<p>Be visible so that your team – and other teams – can see what you’re doing.</p>
<h3 id="tom-sulston-failure---a-love-story">Tom Sulston: Failure - a love story</h3>
<p><span class="citation" data-cites="tomsulston">@tomsulston</span></p>
<p>Really like failure. Once destroyed all the telephones in Glasgow with a single
perl script.</p>
<p>Also likes schadenfrued: Zune, Vanilla Coke, Nokia nGage, Google Wave, betamax.
All seemed like good ideas at the time.</p>
<ul>
<li>Design</li>
<li>Marketing and pricing</li>
<li>Don’t know what you’re doing</li>
</ul>
<p>These were all large failures. They didn’t fail soon enough; failing before
your ship leaves port is a really good idea.</p>
<p>We have tools like Jenkins and continuous integration to fail early, before it
goes like.</p>
<p>Fail fast, learn the lessons and don’t have massive projects blow up. Failing
leads to deep, strong learnings; break cognitive biases. Failure is always an
option.</p>
<p>Failcake: when you fail and something breaks, you have to buy the team cake. It
makes the failure OK; it’s hard to be angry with a mouthful of cake.</p>
<p>Also: ThoughWorks Australia is hiring, go talk to one of them if you’re
interested.</p>
<h3 id="renesp-from-nab">Rene(sp?) from NAB</h3>
<p>“Devops Doesn’t Work” but a few years later it’s in CIO Magazine, Gartner are
looking into it, etc. Is this jumping the shark?</p>
<p>Job trends for technologies in, e.g., Puppet. Big enterprises which are trying
to “buy” devops.</p>
<p>Devops as succeeding together</p>
<h2 id="open-spaces">Open Spaces</h2>
<h3 id="sharing-and-reuse-with-puppet">Sharing and Reuse with Puppet</h3>
<p>20 infastructures running different apps, etc. Standardisation and
centralisation, but engineering teams won’t want to be able to see <em>their</em>
environment and be able to <em>change</em> their environment. Keeping standardisation
but allowing specialisation, versioning for specific configurations.</p>
<p>Possible:</p>
<ul>
<li><p>Use heira and allow them to see their heira values. Would need to update to
Puppet 3.0 to make that useful.</p></li>
<li><p>Possibly publish versions and such as facts in /etc/fact.d/ and expose the
facts to them.</p></li>
<li><p>Is Puppet doing too much? Where’s the demarkation between system configuration
and application configuration? Perhaps the version information, etc. belongs
in the application repo rather than the Puppet configuration.</p></li>
</ul>
<p>Diverse requirements: rubies (MRI 1.9.1, 1.9.2, 1.9.3, jRuby, etc.), databases
(MySQL, PostgreSQL). All on Ubuntu and AWS.</p>
<ul>
<li><p>A YAML file per environment (i.e. project) containing overrides with versions
and the like.</p></li>
<li><p>Package the application and use the native package manager to handle the
dependency and version requirements.</p></li>
<li><p>Perhaps: pre-baked AMI; cloud init script to <code>apt-get</code> install the package;
configure details like DB credentials in Puppet, etc. Again: may be getting
Puppet to do too much.</p></li>
<li><p>The whole thing of reusable Puppet modules which are all things to all people
is just rubbish.</p></li>
<li><p>Another suggestion (from Rio Tinto) of using Hiera with “project” layer for
version pinning, etc. (Lots of modules are pre-Hiera.) Put logic into the
Hiera tree to avoid conditionals in the manifests: common, $sdlc_env (capture
test, stage, etc.), $site (DC, etc.)</p></li>
<li><p>Take existing Puppet 3.0 stack and adapt it for Windows. Doing it by
overriding a bunch of stuff in Hiera based on <code>$os_family</code>.</p></li>
<li><p>To branch or not to branch Puppet modules and such.</p>
<blockquote>
<p>I don’t always test but when I do, I do it live.</p>
</blockquote>
<p>Avoid branching if we can – no divergence, etc. Some good workflows around,
e.g. using the git sha as the environment name.</p>
<p>Maybe use a normal git workflow of dev, stage, prod branches.</p>
<p>Dude from Puppet Labs published a ruby script for synching branches into
environments on the Puppet master.</p>
<p>Using buildbot with quiescent VMs to deploy pushed Puppet code and do
functional testing. Want to add a noop run against changes and catch errors
quicker than deploying to test machines.</p></li>
</ul>]]></summary>
</entry>
<entry>
    <title>Devops Downunder 2013, Day One</title>
    <link href="https://passingcuriosity.com/2013/devops-down-under-2013/" />
    <id>https://passingcuriosity.com/2013/devops-down-under-2013/</id>
    <published>2013-07-12T00:00:00Z</published>
    <updated>2013-07-12T00:00:00Z</updated>
    <summary type="html"><![CDATA[<p>I’m attending <a href="http://devopsdownunder.org/">Devops Downunder 2013</a> in Sydney, New South Wales. This is my
first devops event (and my first <a href="http://en.wikipedia.org/wiki/Open_Space_Technology">open spaces</a> event) but I’ve heard good
things about both. I’ll try to update this post over the course of the day. Not
real live blogging, more delayed telecast blogging.</p>
<p>I’m typing these notes during the sessions, so there may be errors and
omissions. Any such problems are my fault and not that of the speakers.</p>
<h2 id="introduction">Introduction</h2>
<p>Thanks to the gold sponsors: anchor, puppetlabs, realestate.com.au</p>
<p>Open Spaces is all unconferency. Un-organised or dis-organised, it’s our call.</p>
<p>There’s a function this evening with a bar tab, etc.</p>
<h2 id="andrew-clay-shafer-on-there-is-no-talent-shortage">Andrew Clay Shafer on There is no talent shortage</h2>
<p>My notes from this talk are pretty sloppy. Sorry.</p>
<blockquote>
<p>According to the <a href="http://www.devopsdays.org/events/2013-downunder/program/">programme</a> <a href="http://www.devopsdays.org/events/2013-downunder/proposals/There_is_no_talent_shortage/">this talk</a> is the first devops days event
which started ahead of schedule.</p>
</blockquote>
<p>The talent shortage, if there is one, is unevenly distributed.</p>
<p>Puppet (and similar tools) were attempts to build a competitive advantage:
organisations without it would be faced with a critical disadvantage. 2008
presentation slides include pictures of the Gatling gun.</p>
<p>Andrew joined the Puppet project as a developer; never worked in and wasn’t
passionate about operations, and <em>worked</em> as a software developer (also not a
passion).</p>
<p>Fascinated with the dynamics of high performance organisations and the
individuals that comprise them. You often see sports teams of exceptional
individuals who can’t play well together.</p>
<p>Reference to karate master being beaten at UFC-2. Mentally and physically
unprepared for “combat”.</p>
<p>GM dominated the US car and truck market in the 1960s. Their executives visited
Japan when their auto industry (with lean, just-in-time, etc.) was nascent and
came away convinced that it wasn’t true because of the lack of inventory,
stockpiles, etc.</p>
<p>Tools like CFEngine, Puppet, Chef, Jenkings, TravisCI, Vagrant, AWS, Docker.
Books like Release It!, Continuous Delivery, Web Operations, Phoenix Project,
Dev and Ops. The game has changed.</p>
<p>Devops is many things to many people. Elephants and blind men. Molesting the
elephant in the room.</p>
<p>Working with organisations, etc. who ask “what should we do?” respond “we can’t
do that.” And “who should we hire?” These people wind up thinking devops doesn’t
work and we can’t hire the right people.</p>
<h3 id="patterns-for-success">Patterns for success</h3>
<p>People often say “devops doesn’t work” or “agile doesn’t work” missing the fact
that work is done by <em>people</em>, not abstract practices.</p>
<blockquote>
<p><a href="http://www.amazon.com/dp/0446670553/">Maverick</a>. Book about a guy who ran a company doing everything
backwards.</p>
</blockquote>
<p>Anecdote about is/has eaten the world.</p>
<p>Netflix.</p>
<blockquote>
<p>The <em>real</em> comapny values are shown by who gets rewarded and promoted and who
is let go.</p>
</blockquote>
<p>You are either building a software business or you’re loosing to someone who is.</p>
<p>Either you’re building a learning organisation or you’re loosing to one that is.
We need to incentivise learning within our organisations:</p>
<p>7 dimensions:</p>
<ol type="1">
<li><p>Continuous learning - create continuous learning opportunities.</p></li>
<li><p>Inquiry and feedback</p></li>
<li><p>Team learning - collaboration</p></li>
<li><p>Empowerment - avoid C&amp;C hierarchies</p></li>
<li><p>Embedded systems - capture and share learning within teams and communities.
Jargon, etc.</p></li>
<li><p>System connection - active effort to connect systems, within and without.</p></li>
<li><p>Strategic leadership</p></li>
</ol>
<p>See the Dimensions of Organisational Learning Questionnaire.</p>
<p>Stop conflating “learning” with “training”. If you don’t experiment before you
build the system, then the system is an experiment.</p>
<p>Learning happens <em>within</em> the process. Continuous integration &amp; deployment work
by providing feedback and learning within the process. Do the same thing with
learning: continuous learning.</p>
<h3 id="qa">Q&amp;A</h3>
<blockquote>
<p>People intrinsically <em>want</em> to learn, be challenged, etc. Introducing some of
these practices will result in people picking up or leaving (pushed too far
out of their comfort zone).</p>
</blockquote>
<h2 id="david-lutz-on-devops-dungeons-dragons">David Lutz on Devops, Dungeons &amp; Dragons</h2>
<p>http://www.devopsdays.org/events/2013-downunder/proposals/Devops%20Dungeons%20and%20Dragons/</p>
<blockquote>
<p>Hi. My name is David and I’m a sysadmin. I’ve been on call (rosters) for 10
years.</p>
</blockquote>
<h3 id="beginner-vs-expert">Beginner vs expert</h3>
<p>Scenario One: Johnny’s first week in his first sysadmin job. When the phone
rings at 3am, the web site is running slow so he reboots the servers. Causing a
complete outage. Seeing a highload on the DB he reboots the DB server. He’s
doing everything wrong; it’s a train wreck. “The site was a cluster fuck but
it’s coming back up now.”</p>
<p>Scenario Two: John is an experienced sysadmin. The first thing John does is to
communicate with the rest of the team: “I’m on it.” Then he looks at the change
log (the developers probably broke something). He looks at some graphs;
methodically gets a view of the state of system: 7s page loads instead of 5s.
Look at the DB and see lots of connections from some servers, notice it’s caused
by an external outage; disable that bit, log tickets with external and developer
team to fix issues.</p>
<p>Johnny hasn’t fixed the problem so he’ll get worken up again in an hour.</p>
<p>Jo’burg has the highest rate of gun violence in the world. Their hospital is
world renowned, interns come to learn from all over the world.</p>
<h3 id="how-to-level-up">How to level up?</h3>
<p>We need to practice.</p>
<p>Four stages to learning a new skill:</p>
<ol type="1">
<li><p>Unconcious incompetance - I don’t know what I don’t know. 6 days</p></li>
<li><p>Concious incompetance - I know what I don’t know. 6 weeks</p></li>
<li><p>Concious competance - I know it, but it’s hard. 6 months</p></li>
<li><p>Unconcious competance - I know it, and don’t have to think about it. 6 years</p></li>
</ol>
<p>The purpose of training and practice is to reduce the time between the four
stages.</p>
<h3 id="learning">Learning</h3>
<p>Observing the world and making a mental model. Adults do this by reading, by
observing others. Children learn by doing things.</p>
<p>Role-play, drills and games have been imporant in practice for centuries.</p>
<p>Practice dealing with emergencies: either at 3AM or scheduled.</p>
<h3 id="tips">Tips</h3>
<p>Run them like a D&amp;D campaign. Put team in a room for a few hours. Appoint a
dungeon master and rotate the role regularly.</p>
<p>The DM plans the scenario before hand, and explains the problem. If you have a
robust environment, break production. Monitor and track events during the course
of the exercise. Conduct the postmortem.</p>
<p>Pass on knowledge by doing and practice!</p>
<p>Wouldn’t it be interesting to use this to interview people?</p>
<p>Hopefully this exercise will result in a reduction of MTTR.</p>
<h3 id="teams">Teams</h3>
<p>Think about how you want your team structures. In D&amp;D, a party of 4 dwarves
wouldn’t work very well. Balanced teams are as important as balanced parties.</p>
<p>Can we distil and describe the attributes of team members like we do in
roleplaying games.</p>
<ul>
<li>Dwarves = specialists</li>
<li>Wizards = devs</li>
<li>Elves = sysadmins</li>
<li>Humans = generalists</li>
</ul>
<p>Specialists have extremely high skills in one area.</p>
<p>Generalists have a wide range of skills but may not be expert in any particular
field.</p>
<p>Just like a D&amp;D party, a team need to be balanced and diverse.</p>
<h3 id="qa-1">Q&amp;A</h3>
<blockquote>
<p>Performing tasks should be a function of skill, not of job description.</p>
</blockquote>
<h2 id="matt-palmer-on-soa-everywhere">Matt Palmer on SOA Everywhere</h2>
<p>More about microservices architecture than the traditional gigantic SOAP
monster.</p>
<p>Anchor started in 2000 (no Twitter and Facebook, Google didn’t matter). They
grew and needed to build systems (tcl and python tools talking to customer DB,
rt, wiki, physical asset tracking, config management, etc.) Wind up with a
complicated [set of] system, circular dependancies, etc. Plethora of interfaces
direct Postgres DB access, RESTful, XML-RPC, etc. No integration testing.</p>
<p>Upgrading RT 3.8 to 4.0 broke almost everything; everyone has learned “don’t
touch anything” (except Matt because he’s the boss). Stagnation.</p>
<p>Solution: rebuild with SOA</p>
<ul>
<li><p>loosely-coupled RESTful APIs on all data.</p></li>
<li><p>Mandated consistent core behaviour for all APIs. Allows you to learn the whole
system (rather than each part).</p></li>
<li><p>Conformance test suites; they are the documentation/spec.</p></li>
</ul>
<p>New architecture is horizontal, with an API service for each functional unit.</p>
<p>Consistent interface to everything, easier to learn. RESTful, JSON, document
formatting, common attributes, authentication, etc. Allows a service directory,
common library infrastructure.</p>
<h3 id="how">How?</h3>
<p>Talk about it incessantly until everyone is sick of the topic. Nut out all of
the issues. Write a spec based on discussions.</p>
<p>Build an API based on it and discover the bits you missed. Iterate.</p>
<p>Build consumers, to help discover problems, etc.</p>
<p>Provide tutorials and examples for everyone to use. Unexpected use cases
(vendor import process is broken, use the API instead and things work).</p>
<p>Provide client libraries for talking to your APIs.</p>
<p>Provide a framework for building more, additonal APIs. A lot of commonalities
between APIs can be implemented in common too.</p>
<p>Provide lots of documentation, especially “getting started”.</p>
<h3 id="results">Results</h3>
<p>Managed to cut across on time, in spite of a few teething problems.</p>
<blockquote>
<p>The proof of a transition project is that you don’t go back.</p>
</blockquote>
<p>Less division between support staff and developers. People working together,
empowerment, etc.</p>
<h3 id="qa-2">Q&amp;A</h3>
<p>Tools and systems to check and enforce consistency?</p>
<blockquote>
<p>Small organisation, so social enforcement is reliable.</p>
<p>However, a lot of the consistency requirements are testable. E.g., common
representations, attributes, etc. These sorts of issues are readily testable.</p>
</blockquote>
<p>Anything that was too hard?</p>
<blockquote>
<p>Haven’t found anything, yet. REST is good data and state changes and such.</p>
<p>A few situations with many-to-many relationships were tricky, but using
consumer-focussed design to guide making these workable (possibly ignoring
the underlying craziness).</p>
</blockquote>
<p>Layering?</p>
<blockquote>
<p>The API services are the single point of truth for specific types of data.
Some access the same backends, but focus on different parts.</p>
</blockquote>
<p>Limiting.</p>
<blockquote>
<p>Built in load limiting and horizontal scalability from the start.</p>
</blockquote>
<p>Organisations build systems which reflect their communication structures.</p>
<blockquote>
<p>Yes. It is.</p>
</blockquote>
<p>Versioning APIs?</p>
<blockquote>
<p>One of the first things that was discussed.</p>
<p>Code uses semantic versioning. Responses all include software version
information.</p>
<p>Clients can request specific versions.</p>
<p>Rules for deprecation of specific features, etc.</p>
</blockquote>
<p>Did you consider available models for the data in your domain?</p>
<blockquote>
<p>Yes, but there was nothing out there that felt right. Only needed 5% of
OAuth, for example.</p>
<p>There are lots of APIs, almost all of them do things their own way. There
aren’t any standards until you get to things like SOAP.</p>
</blockquote>
<h2 id="ignite-talks">Ignite Talks</h2>
<h3 id="rea-lead-guy">REA lead guy</h3>
<p>Teach someone to fish they eat for a day, etc.</p>
<p>Devops teams seem to self-limit sizes.</p>
<p>Flow and afforances for creativity. Env affordances are aspects which promote
or enable actions.</p>
<p>Information radiators: dashboards, etc. Give info to the knowledgable and
promote learning amongst others.</p>
<p>Popup classes</p>
<p>Brownbag classes: more formal.</p>
<p>Kata sessions: everyone brings a small (3 minutes) to share.</p>
<p>Dojos: longer, may involve pre- and post-work.</p>
<p>Hackdays: larger still, form adhoc teams, address problems.</p>
<p>Should share as much information in these processes as possible; enough to make
you feel uncomfortable. Prevent the presence of high priests.</p>
<p>Don’t share your financial servers root password, but share that there are two
and located in X and Y. They can learn from the architecture, etc.</p>
<h3 id="dr.-liming-zhu">Dr. Liming Zhu</h3>
<p>Development background (from NICTA). Operation of software at scale in the cloud
requires engineering specifically.</p>
<p>80% of outages caused by people/process maturity issues. Mitigations often cause
or exacerbate large issues.</p>
<p>Log analysis, static configuration analysis, etc.</p>
<p>Treat operations as set of steps:</p>
<ul>
<li>Executed by fault-prone agents</li>
<li>Which use and require fault-prone resources.</li>
<li>?</li>
<li>?</li>
</ul>
<p>Three ideas:</p>
<ul>
<li><p>Undo-framework and undo-ability of operations:</p>
<ul>
<li>A wrapper around AWS API which can undo operations.</li>
<li>Use AI planning to check undo-ability of operations</li>
</ul></li>
<li><p>Model, track, and simulate operations:</p>
<ul>
<li>Monitor steps and verify post-conditions.</li>
<li>Use tracked process context for error diagnosis and recovery.</li>
<li>Simulate large-scale operations: provide guidance on probably/time of
successful completion, help identify bottlenecks, etc.</li>
</ul></li>
<li><p>Mine and model existing processes from log data:</p>
<ul>
<li><p>Mine a process from existing log files.</p></li>
<li><p>Detect deviations early or help error detection. Presumably real-time
mining to detect deviations from model, etc.</p></li>
</ul></li>
</ul>
<h3 id="trent">Trent</h3>
<p>The Phoenix Project. Company in the book had a bus factor of one: Brent was the
single guy who was critical.</p>
<p>Increasing the number of Brents in your organisation can be expensive to grow.</p>
<p>Look for people who are collaborative, passionate and love to share information.
But Brent is still Brent, even with these people around. Allow Brent to work on
big picture, important work (not fire fighting).</p>
<p>20 people, lucky to do deploy a week. Now deploy 5 distinct components a day.</p>
<p>Question: how do we remunerate people based on value they bring, rather than
their job title?</p>
<h2 id="open-spaces-session-one">Open Spaces: Session One</h2>
<h3 id="cloud-without-guests-and-configuration-management">Cloud without guests and configuration management</h3>
<p>Scrapping the towering stack of abstractions that is a app in a guest in a
hypervisor on metal. See Erlang on Xen, golang circuit, etc.</p>
<p>But containerisation, Solaris Zones, etc.</p>
<p>Looks like this is the direction some stuff is going.</p>
<p>Cutting out overheads by passing network layers straight to applications
(Intel’s drivers). But talking about optimising for performance is a bit silly
when we’re running Ruby and Python.</p>
<p>But VMs give more than abstraction: separation, security. And OS engineers have
done a lot in the last few decades.</p>
<p>Over arching question is: what are you optimising for?</p>
<p>Doing continuous delivery requires automation, push button, etc.</p>
<p>0VM based NaCl?</p>
<h3 id="organisational-learning">Organisational Learning</h3>
<p>How spread it foot with devops? Essentially devops organisations are learning
organisations.</p>
<p>From Maverick: measure everything wasn’t helping, just growing the number of
people for numbers. Go from 12 layers of people to 3 layers.</p>
<p>Dunbar’s number (150) limits size of social graphs, so spilt company into
business units. Build small clusters for products and make all the things for
your work. Everyone learn all the machines.</p>
<p>Organisational structures. Often decisions are zero sum. If you treat IT as a
cost centre then it always will be.</p>
<p>Incentivise fixing things (flat rate for on call, fix it and you get paid and
get to sleep). Can be problematic with established roles, etc.</p>
<p>Technical debt has an organisational parallel. Doing kanban, etc. can help
give value and measures to work, etc. Doing one point a week vs the five
everyone else does, clearly there’s a problem.</p>
<p>Peter Senger, The Fifth Discipline.</p>
<ul>
<li>Personal mastery</li>
<li>Mental models (shared metaphors from XP; jargon, etc.)</li>
<li>Shared vision (expressed in the models)</li>
<li>Team work</li>
<li>Systems thinking? Didn’t catch the fifth.</li>
</ul>
<p>First responder. Train every week, won trophies but sucked at fires. Training
and learning aren’t the same thing; we learn because we want to, not because
we’re in a class room.</p>
<p>Maverick: staff reviewed managers every six months, public.</p>
<p>Mastery: learn one new thing every day.</p>
<p>Training/learning: from Seven Samurai: “if we were using swords, I’d kill you.”</p>
<h2 id="open-spaces-session-two">Open Spaces: Session Two</h2>
<h3 id="configuration-management-2.0">Configuration Management 2.0</h3>
<p>Using Puppet for 3 years, killed master and using fabric to push configs out and
apply them as required. <a href="http://palletops.com/">Pallet</a> (Clojure), <a href="http://www.ansibleworks.com/">Ansible</a> &amp; <a href="http://saltstack.com/">Salt</a> (Python),
orchestration in Puppet. Wanting to unify the code for system configuration,
harding, etc. and whole stacks (CloudFormation, etc.)</p>
<blockquote>
<p>Did a spike of Chef, did a spike of Puppet. Puppet won.</p>
</blockquote>
<p>Minimise resource usage in tweaking 10,000 instances by doing things like
immutable servers. Don’t tweak 10k, just redeploy instances. <a href="https://github.com/Netflix/aminator">animator</a> to
make AMIs.</p>
<p>Some of the configuration management tools will have/are having their lunch
eaten by tools like CloudFoundry, BOSH, etc. Continuous delivery, configuration
management, etc. are all coming together to result in a platform-oriented
approach.</p>
<p>What’s the lead time between having an idea to live? All of these technologies
– configuration management, platform management, orchestration, etc. – are
about automating and minimising this delay.</p>
<p>Better chance to achieve “security” using automation, policy as code, etc. than
with traditional pens ‘n’ paper security policies. Standardisation, consistency,
monitoring, reporting, etc.</p>
<p>Vagrant for testing Puppet, continuous integration, etc.</p>
<p>Combine chef client and nanite over Rabbit MQ. Sounds kind of salt-ish.</p>
<p>Plugging all the things into MCollective and get a message queue by accident.</p>
<ol type="1">
<li>Configuration management.</li>
<li>Orchestration (because configuring a single system isn’t enough).</li>
<li>We need monitoring (so we can describe services and SLAs).</li>
</ol>
<p>All the technologies are separate, do we need something that knows the system
end-to-end? Hooking monitoring up to orchestration up to configuration
management.</p>
<h3 id="session-four-war-stories">Session Four: War stories</h3>
<p>Telephone exchanges are feeble, monitoring software wedged the Glasgow phone
system by running twice.</p>
<p>Cron job: cron running as root to clean up a directory; root’s $HOME is /. Three
or four days.</p>
<p>HPUX: rm -rf followed symlinks; put a symlink to / in home directory.</p>
<p>/ full, move something big, /lib say, onto a separate partition.</p>
<p>New job; we need a UPS for all the servers. Configure network alerts but the
switch wasn’t on the UPS.</p>
<p>Why is crontab -r so close to crontab -e? Or at least ask for confirmation.</p>]]></summary>
</entry>

</feed>
