alex honor - devops toolchain

20
Simple Release and Deploy Tool chain in Action Alex Honor 1 Friday, June 25, 2010

Upload: devopsdayusa2010

Post on 08-May-2015

1.882 views

Category:

Technology


4 download

DESCRIPTION

Alex Honor's lightning talk at devopsdays USA 2010, held 25th June 2010 in Mountain View, CA

TRANSCRIPT

Simple Release and Deploy Tool chain in Action

Alex Honor

1Friday, June 25, 2010

Operationsperform release and

deployment

Developersspecify packages they

need in operations

For DevOps need a way to let...

2Friday, June 25, 2010

Need: Developers specify needed package versions...

Application Code

Application Configuration

Third Party Packages

3Friday, June 25, 2010

Need: Release manager* controls the release...

(*Person or Role)

Issue tracking status

QA approval

Change control scheduling

Promotes the artifacts

4Friday, June 25, 2010

Need: Ops run deployment...

Assess scheduling conflicts

Decide how to batch updates

Deploys packages

5Friday, June 25, 2010

Need: Managers want...

Responsibility and boundaries

Enforce process through authorization

Audit and trace changes

6Friday, June 25, 2010

Need: Self service for everyone...Each role works independently

Tools provide the self service interfaces

7Friday, June 25, 2010

Need: Keep it simple...

Use freely available tools

Reflect roles and process

Is easy to understand at any level

Hudson Console

ControlCenter

http / query

copy/createrepo

checkout

App hosts

yum install

8Friday, June 25, 2010

Tool: The “Meta” Package...

Represents a coupled set of packages

Based on RPM dependencies

Spec just “Requires” statements

Requires

9Friday, June 25, 2010

Tool: Yum Repository...

Central storage and index

Resolve and install package dependancies

Allocate a repository to each application team

app host

10Friday, June 25, 2010

Tool: Sources in SCM...

RPM specification

RPM build procedure

Related files needed by release process

Developers have commit access

11Friday, June 25, 2010

Tool: CI job...

Monitor .spec file checkins

Run rpmbuild for the “meta package”

Identify artifacts (RPMs)

Devs modify / run job when desired

12Friday, June 25, 2010

Tool: Runbook Jobs...

PromoteRelease Manager moves artifacts to Yum

DeployOps Admin deploys packages to hosts

ControlCenter

PromoteDeploy

Jobs

Yum repo host App hosts

Distributed command dispatch

13Friday, June 25, 2010

Process: Specify package needs...

name: acme-rocketsversion: 1.0release: 0summary: The Acme Rockets app package setgroup: acme/rocketslicense: proprietary

requires: php >= 5.3.2requires: php < 5.3.0requires: acme-rockets = 1.2.3 requires: memcached = 1.4.5

%descriptionThe Acme Rockets app package dependencies.

%files# NONE

%changelog* Mon Jun 14 2010 Wiley Cayote <[email protected]> 1.0-0 - Initial spec file.

AppDeveloper

checkout/checkin

edit

14Friday, June 25, 2010

Process: CI Build

Hudson Console

Detects and builds meta

package rpms

specAppDeveloper

checkin

Artifacts

Query artifact list

REST call

15Friday, June 25, 2010

Process: Promote

Hudson Console

ControlCenter

Detects and builds

metapackages

run job

Promote

Release manager

REST query create repo

16Friday, June 25, 2010

Process: Deploy

app host

ControlCenter

Deploy

Ops admin

run job

yum install

17Friday, June 25, 2010

Audit: Management traceability

SCM revision to package version

“Meta package” to required packages

Package to host

18Friday, June 25, 2010

Audit: Audit compliance

SCM change log: Only devs can commit

ControlCenter event log: Only releaser role can run PromoteOnly ops can run Deploy

Yum: Only packages specified by devs should be in their team’s repository

19Friday, June 25, 2010

http://google.com/group/devops-toolchain

Discuss ideas like this...

DevOps Tool chain Project

20Friday, June 25, 2010