Upload
devopsdayusa2010
View
1.879
Download
4
Embed Size (px)
DESCRIPTION
Alex Honor's lightning talk at devopsdays USA 2010, held 25th June 2010 in Mountain View, CA
Citation preview
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
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