Agile Systems Administration




 Julian Simpson, ThoughtWorks Ltd.
Who the hell are you?
●   I am Julian Simpson
●   I've been a Solaris Admin since 1997
●   Now that I work on software projects I need
    excuses to do interesting things like this
And what's this Agile business?
●    Agile is an iterative and incremental
    (evolutionary) approach to software
    development
●   which is performed in a highly collaborative
    manner
●   with "just enough" ceremony
●   that produces high quality software
●    which meets the changing needs of its
    stakeholders. (Scott W Ambler)
Programming before Agile ...
Otto, since you checked in that last
change, I can't deploy the application ...




                       it works on my machine ...
And after ...
Otto, you broke the build ...




                   Oh, I didn't check in
                 FooBarImpl.java ... thanks
CruiseControl helps us in
Agile software projects ...
But is it any use in an
infrastructure context? ...
So I decided to find out: by
 building a web and mail
server using Puppet, Rake,
      Ruby, SVN and
       CruiseControl
Ruby
  ●   Dynamic Language
      like Perl
  ●   Object oriented
  ●   has a good testing
      framework
  ●   big in Japan
Puppet
   ●   Sysadmin framework
   ●   Very open
   ●   Declarative
   ●   Developed by a
       sysadmin for
       sysadmins
Rake
  ●   Make, for Ruby
Subversion
●   favourite source control
cruisecontrol
       ●   Continuous
           Integration tool
       ●   listens for Subversion
           commits and
           executes Rake
       ●   available in Java,
           .NET and Ruby
           versions
How does it all work then?
●   all configuration is in source control
How does it all work then?
●   changes are picked up by cruisecontrol
How does it all work then?
●   Cruise runs rake to run tests against the config
How does it all work then?
●   Puppet applies the config if the tests pass
How does it all work then?
●   Other puppet clients in your network can now
    retrieve the tested version of your configuration
    and apply it.
What is the benefit?
●   you always apply configuration that is tested
●   you can version your configuration
What is the benefit?
●   status is visible to everybody
●   and you can even drive a lava lamp off of it
Short Film
What do you think?
This work is licensed under the Creative Commons Attribution-
Share Alike 3.0 License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to
Creative Commons, 543 Howard Street, 5th Floor, San Francisco,
California, 94105, USA.

Agile Systems Admin

  • 1.
    Agile Systems Administration Julian Simpson, ThoughtWorks Ltd.
  • 2.
    Who the hellare you? ● I am Julian Simpson ● I've been a Solaris Admin since 1997 ● Now that I work on software projects I need excuses to do interesting things like this
  • 3.
    And what's thisAgile business? ● Agile is an iterative and incremental (evolutionary) approach to software development ● which is performed in a highly collaborative manner ● with "just enough" ceremony ● that produces high quality software ● which meets the changing needs of its stakeholders. (Scott W Ambler)
  • 4.
  • 5.
    Otto, since youchecked in that last change, I can't deploy the application ... it works on my machine ...
  • 6.
  • 7.
    Otto, you brokethe build ... Oh, I didn't check in FooBarImpl.java ... thanks
  • 8.
    CruiseControl helps usin Agile software projects ...
  • 10.
    But is itany use in an infrastructure context? ...
  • 11.
    So I decidedto find out: by building a web and mail server using Puppet, Rake, Ruby, SVN and CruiseControl
  • 12.
    Ruby ● Dynamic Language like Perl ● Object oriented ● has a good testing framework ● big in Japan
  • 13.
    Puppet ● Sysadmin framework ● Very open ● Declarative ● Developed by a sysadmin for sysadmins
  • 14.
    Rake ● Make, for Ruby
  • 15.
    Subversion ● favourite source control
  • 16.
    cruisecontrol ● Continuous Integration tool ● listens for Subversion commits and executes Rake ● available in Java, .NET and Ruby versions
  • 17.
    How does itall work then? ● all configuration is in source control
  • 18.
    How does itall work then? ● changes are picked up by cruisecontrol
  • 19.
    How does itall work then? ● Cruise runs rake to run tests against the config
  • 20.
    How does itall work then? ● Puppet applies the config if the tests pass
  • 21.
    How does itall work then? ● Other puppet clients in your network can now retrieve the tested version of your configuration and apply it.
  • 22.
    What is thebenefit? ● you always apply configuration that is tested ● you can version your configuration
  • 23.
    What is thebenefit? ● status is visible to everybody ● and you can even drive a lava lamp off of it
  • 24.
  • 25.
  • 26.
    This work islicensed under the Creative Commons Attribution- Share Alike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.