SlideShare a Scribd company logo
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 ...
Agile Systems Admin
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.

More Related Content

Agile Systems Admin

  • 1. Agile Systems Administration Julian Simpson, ThoughtWorks Ltd.
  • 2. 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
  • 3. 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)
  • 5. Otto, since you checked in that last change, I can't deploy the application ... it works on my machine ...
  • 7. Otto, you broke the build ... Oh, I didn't check in FooBarImpl.java ... thanks
  • 8. CruiseControl helps us in Agile software projects ...
  • 10. But is it any use in an infrastructure context? ...
  • 11. So I decided to 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 it all work then? ● all configuration is in source control
  • 18. How does it all work then? ● changes are picked up by cruisecontrol
  • 19. How does it all work then? ● Cruise runs rake to run tests against the config
  • 20. How does it all work then? ● Puppet applies the config if the tests pass
  • 21. How does it all work then? ● Other puppet clients in your network can now retrieve the tested version of your configuration and apply it.
  • 22. What is the benefit? ● you always apply configuration that is tested ● you can version your configuration
  • 23. What is the benefit? ● status is visible to everybody ● and you can even drive a lava lamp off of it
  • 25. What do you think?
  • 26. 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.