13. Our journey starts
13
•CNN.com created in 1995
•Everything manual
•Dev environments shared
•A lot of development being done in
production
•No configuration management
16. Shell script deployments
16
• Set of shell scripts monitoring a directory
handles deployments.
• UI created in front of folder to allow developers
select files to promote to an environment.
17. Conversations
17
Dev Lead Developer
Dev Lead Developer
The Customer reported
that this just broke – who
changed something?
It wasn’t me – the
change I just pushed
out was for this other
thing
Did you push
out the new
configs as
well?
Oh…
19. Partial CI Builds
19
•Replaced shell scripts with Ant and CI server
•UI allow Developers select files
•Files tagged in SCM with environment and
date
•Backend managed deployment to
environments
26. Challenges with CI/manual
26
•Files are passed around
•Manually maintained
•Builds are incremental, but release is not
•Prone to environmental inconsistencies
•Intra-project differences
27. CNN.com Elections
27
•AJAX based application
•Iteration developed
•One build plan per environment
•Deployment to production - manual
29. Conversations
29
Dev Lead
Developer
Dev Lead
QA
I thought that you said
that the fancy feature
would be in the build?
Done
Oh! I forgot to merge it
in time. Can you do
another build?
The new build that
was just delivered
broke a lot of
functionality.
31. Integration with CM
frameworks
31
•Integrated with CM for external
projects
•Infrastructure driven
Poll external
repository
Create
internal build
Package for
remediation
Send onto
internal
remediation
35. Continuous Delivery
35
• “A new” web development platform brought in
•Requirement of “zero-touch” of production
•Single build for all environments.
Developer
commits
Build
• Unit tests
• Functional
tests
Packaging
• Compressed
package
created
• Sent to central
artifact
repository
Auto-
Remediation
• CM Framework
receives
request from CI
Server
Developer
and QA
performs
final
verification
tests
Testing completed
and Customer
“blesses” a build
Development selects
build to promote
CM Framework
receives request from
CI Server
39. Why integrate build sys and
Release Mgmt?
39
•Source Code Correlation
•Guaranteed no manual steps
•For the developers – one tool
40. Conversations
40
Dev Lead
Developers
Dev Lead QA/Custome
r
I see you have changes
lined up– are they ready
to go into the staging
env?
Build 232 is
in staging
Yes.
Build 232
looks
good.
Dev Lead
Build 232
going out
to prod
44. What the Infrastructure team
sees
44
•Concentrate on automation
•Developer accountability for production increases
•Less firefighting
•Next project…
45. What Management sees
45
•NOC Awareness
•Unit and Functional tests
•QA Tested
•Automatic deployments with rollback
capability
•Speed to market with minimal delays
•Efficiency in the process
•Removal of artificial roadblocks
47. Challenges
47
•Full build concerns from various parties
•Development and Infrastructure teams must be in
sync
•Use SCM, Build and CM systems for their
purposes
•Initial investment cost for new project types
•One artifact to rule all environments
48. Impact
48
•Delivery time to market - down
•Quality of deliverables - up
•Cultural change (more collaboration)
•Change tracking on source changes
49. 49
Continuous delivery requires sharing
operational ownership between dev & ops, and
lets us rapidly develop sites in parallel
#summit11