1. Simple Release and Deploy
Tool chain in Action
Alex Honor
Friday, June 25, 2010 1
2. For DevOps need a way to let...
Developers Operations
specify packages they perform release and
need in operations deployment
Friday, June 25, 2010 2
3. Need: Developers specify
needed package versions...
Application Code
Application Configuration
Third Party Packages
Friday, June 25, 2010 3
4. Need: Release manager* controls
the release...
Issue tracking status
QA approval
Change control scheduling
Promotes the artifacts
(*Person or Role)
Friday, June 25, 2010 4
5. Need: Ops run deployment...
Assess scheduling conflicts
Decide how to batch updates
Deploys packages
Friday, June 25, 2010 5
6. Need: Managers want...
Responsibility and boundaries
Enforce process through authorization
Audit and trace changes
Friday, June 25, 2010 6
7. Need: Self service for everyone...
Each role works independently
Tools provide the self service interfaces
Friday, June 25, 2010 7
8. Need: Keep it simple...
Use freely available tools
Reflect roles and process
Is easy to understand at any level
copy/
check
create
out
repo
yum
install
http /
query Control
Hudson Center
Console
App hosts
Friday, June 25, 2010 8
9. Tool: The “Meta” Package...
Represents a coupled set of packages
Based on RPM dependencies
Spec just “Requires” statements
Requires
Friday, June 25, 2010 9
10. Tool: Yum Repository...
Central storage and index
Resolve and install package
dependancies
Allocate a repository to each
application team
app host
Friday, June 25, 2010 10
11. Tool: Sources in SCM...
RPM specification
RPM build procedure
Related files needed by release process
Developers have commit access
Friday, June 25, 2010 11
12. Tool: CI job...
Monitor .spec file checkins
Run rpmbuild for the “meta package”
Identify artifacts (RPMs)
Devs modify / run job when desired
Friday, June 25, 2010 12
13. Tool: Runbook Jobs...
Promote
Release Manager moves
artifacts to Yum Promote
Deploy
Control
Center Jobs
Deploy
Ops Admin deploys Distributed
packages to hosts
command
dispatch
Yum repo host App hosts
Friday, June 25, 2010 13
15. Process: CI Build
checkin
App spec
Developer
Detects and
builds meta
package rpms Hudson
Console Artifacts
REST call
Query artifact
list
Friday, June 25, 2010 15
16. Process: Promote
REST query create repo
Control
Hudson Center
Console
Detects and Promote
builds
metapackages
run job
Release manager
Friday, June 25, 2010 16
17. Process: Deploy
yum install
Control
Center
Deploy
app host
run job
Ops admin
Friday, June 25, 2010 17
18. Audit: Management traceability
SCM revision to package version
“Meta package” to required packages
Package to host
Friday, June 25, 2010 18
19. Audit: Audit compliance
SCM change log:
Only devs can commit
ControlCenter event log:
Only releaser role can run Promote
Only ops can run Deploy
Yum:
Only packages specified by devs should be
in their team’s repository
Friday, June 25, 2010 19
20. Discuss ideas like this...
DevOps Tool chain Project
http://google.com/group/devops-toolchain
Friday, June 25, 2010 20