Agile Systems Admin

26
Agile Systems Administration Julian Simpson, ThoughtWorks Ltd.

description

My 2007 UKUUG presentation on Agile Systems Administration.

Transcript of Agile Systems Admin

Page 1: Agile Systems Admin

Agile Systems Administration

Julian Simpson, ThoughtWorks Ltd.

Page 2: Agile Systems Admin

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

Page 3: Agile Systems Admin

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)

Page 4: Agile Systems Admin

Programming before Agile ...

Page 5: Agile Systems Admin

Otto, since you checked in that last change, I can't deploy the application ...

it works on my machine ...

Page 6: Agile Systems Admin

And after ...

Page 7: Agile Systems Admin

Otto, you broke the build ...

Oh, I didn't check in FooBarImpl.java ... thanks

Page 8: Agile Systems Admin

CruiseControl helps us in Agile software projects ...

Page 9: Agile Systems Admin
Page 10: Agile Systems Admin

But is it any use in an infrastructure context? ...

Page 11: Agile Systems Admin

So I decided to find out: by building a web and mail

server using Puppet, Rake, Ruby, SVN and CruiseControl

Page 12: Agile Systems Admin

Ruby

● Dynamic Language like Perl

● Object oriented● has a good testing

framework● big in Japan

Page 13: Agile Systems Admin

Puppet

● Sysadmin framework● Very open ● Declarative● Developed by a

sysadmin for sysadmins

Page 14: Agile Systems Admin

Rake

● Make, for Ruby

Page 15: Agile Systems Admin

Subversion

● favourite source control

Page 16: Agile Systems Admin

cruisecontrol

● Continuous Integration tool

● listens for Subversion commits and executes Rake

● available in Java, .NET and Ruby versions

Page 17: Agile Systems Admin

How does it all work then?

● all configuration is in source control

Page 18: Agile Systems Admin

How does it all work then?

● changes are picked up by cruisecontrol

Page 19: Agile Systems Admin

How does it all work then?

● Cruise runs rake to run tests against the config

Page 20: Agile Systems Admin

How does it all work then?

● Puppet applies the config if the tests pass

Page 21: Agile Systems Admin

How does it all work then?

● Other puppet clients in your network can now retrieve the tested version of your configuration and apply it.

Page 22: Agile Systems Admin

What is the benefit?

● you always apply configuration that is tested● you can version your configuration

Page 23: Agile Systems Admin

What is the benefit?

● status is visible to everybody ● and you can even drive a lava lamp off of it

Page 24: Agile Systems Admin

Short Film

Page 25: Agile Systems Admin

What do you think?

Page 26: Agile Systems Admin

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.