XPday London

Continuous Integration of the World

SORRY , I HAVE TO CANCEL MY SUBMISSION DUE TO HEALTH REASONS. Have FUN!

 

Patrick Debois , Patrick.Debois@jedi.be , http://www.jedi.be/blog

Description

Ok, maybe we exaggerated a bit. CI deployments focus on the testing and deployment of the application. The ‘world’ (OS, Application & DB server) within a CI doesn’t change that much.

It's pretty much, if it ain't broke don't fix it. Software development used to be like that some time ago.

But the world of infrastructure is changing too: uptime of a system is no longer considered the ultimate goal. It's all about bringing changes faster online - Agile Infrastructure.

In this session we will show you how to apply the continuous integration principles to infrastructure:

  • How do you define your applications environment as a kind of 'source' to build from
  • What about unit testing and integration testing with the environment. Is it similar to Monitoring?
  • How security patches can be considered 'refactoring' the environment, and why unit tests help you verify the behavior even without real code changes?
  • How you can automate the build process and define dependencies
  • Why you should test your deployment process and how this can help in disaster recovery situations.


The toolkit to make this happen is steadily growing: increasingly the ops and sysadmins are becoming active developers. The picture below describes the similarities mentioned and shows the multitude of tools in a visual way.

Off course we won't be able to explain everything tool in detail. During the presentation we will follow the actual build of a simple Linux/Apache environment to show you the principles.

  • building a virtual environment (based upon virtualbox)
  • setting up a linux/redhat provisioning system from scratch with dns, dhpc, ip (based on the cobbler framework)
  • defining a simple minimum environment of 1 linux system (based on kickstart and package repositories)
  • write unit tests for each part of the process (based on cucumber-nagios)
  • snapshotting and rollback between builds (based upon zfs)
  • deploy a simple http/mysql with using an system configuration management (based upon puppet)
  • integration it all in a simple CI build system (cruisecontrol.rb)


Aside from the parallel, the integration of both the development and infrastructure 'pipeline' , allows a common ground for the different groups like development, system administrator and operations. During each sprint they are ALL working on the same problem, increasing the collaboration between these typical silo-based enterprise entities.

ci overview

Source

  • What does it take to define the application world
  • Different levels of source : Network Config, Virtual machine, OS, standards recipes
  • Functional Operating systems: NixoS, Nix package manager

Build

  • Explain the existing tools to build the environment and how to automate this
  • Instalinux, EasyVMX, Puppet, Carpet, AutomateIT,
  • OpenQRM, Linmin

Test

  • How monitoring tools can apply to testing
  • Unit tests for infrastructure: OS, Memory, Disk
  • Regression tests for infrastructure
  • SNMP, nagios,
  • Validation, security checks

Package

  • Building appliances: rpath, ec2, thincrust
  • Building virtual machines: koan

Deploy/Publish

  • Publish to a physical machine (PXE)
  • Publish to a virtual machine (PXE, vm preparation)
  • Publish to a cloud

Integrating both pipelines

  • Rebuild it all and integrate in one pipeline
  • Introducing a security fix and see that happens in the pipeline
Learning outcomes
  • Better understanding of how to integrate your production environment into your CI setup
  • Discover new ways to avoid problems when release into production.
  • How you can apply the concepts of CI to infrastructure management
Featured participants
 
Primary target persona
Tara, Tester
Alex, Architect

Sam the Sysadmin

Duration: 90 minutes

Requirements: Beamer + possible internet connection

 

Comments

From Patrick Debois [193.191.148.194] - 2009-09-14

There is indeed a lot to cover in the session. I've updated the description , mentioning the tools we will show.

It will be a semi-live build of a basic environment making the point on how to integrate. It's like live bootstrapping a basic environment on my laptop. I also updated the duration (90min).

Audience interaction is hard, as it is a walk through to the whole build. Of course people may interact but it will break the velocity of the presentation.

 

From Antony Marcano and Andy Palmer [86.16.245.96] - 2009-09-09

It seems like there is a lot of ground to cover in this session. What was the format that you had in mind?

From Rachel Davies [212.84.97.237] - 2009-09-03

I like the scope of this session and the diagram helps!

I would like to understand better what the duration of this session is and whether there's any audience interaction.

Page

New
Edit
Rename
Versions

Menu

Edit Menu
Versions

Site

Changes
Index
Search
Templates

User

Log In

 
 

Last Modified 2009-10-18