4. Devops and Deployment
Q: What does a talk like
“Deployment is the new build”
have to do with Devops* anyway?
*yes, I know…
5. Devops and Deployment
A: We’re here because of shared
experience that delivering value
requires a holistic view of software
development and maintenance
17. The red bit
• We have ideas…
• …think about how to implement them…
• …write source code…
• …test the source code…
• …convert source code into deliverables…
• …make those deliverables accessible to users…
• …test the deliverables some more…
• …make them available to end users…
• GOTO TOP
18. Why the red bit?
Because our industry as a
whole does this part
really badly
19. Why the red bit?
Because, if we take a holistic
approach to software
delivery, we often identify this
as a key area to improve
20. di-'plȯi-mәnt
• Deployment: taking the components that make up a
release (typically a specific version of an application)
and getting them correctly set up in an infrastructure
environment so that the release is accessible to (end)
users
21. di-'plȯi-mәnt
• Deployment: taking the components that make up a
release (typically a specific version of an application)
and getting them correctly set up in an infrastructure
environment so that the release is accessible to (end)
users
Let’s talk “on-demand” environments and virtual appliances later
30. How did this happen?
1. Reusable commands
2. Models
3. Conventions++
31. Reusable commands
• Recognising recurring low-level building blocks
• Replacing copy’n’paste snippets with reusable
libraries
• Chunking sequences of low-level commands
Thinking Ant here
32. Models
• Common chunks work with common types of
data
• Formalise data chunks into a domain model
• Formalise chunks of work into phases
• Use language-/domain-specific defaults
Thinking Maven here
33. Conventions++
• Modifying a rigid convention-based system is
cumbersome
• Domain-/language-specific defaults and flow
works out-of-the-box
• Hook in with full control where you need to
Thinking Gradle here
34. How did this happen?
• Not driven by industry standards! Just
observation of common patterns
• Changing out-of-the-box processes to match
user expectation < user expectation changing
to match out-of-the-box processes
• “Mandatory” standards are quite flexible in
practice
49. Spoiled by CI
• Great expectations
Unit testing
Integration testing
Pattern, style, compliance etc. checkers
Docs, change logs, reports etc.
…
50. The new CI?
Unit testing ► file verification, ping
Integration testing ► QA tests,
application monitoring, DTrace
Pattern, style, compliance etc. checkers
► policy engines, configuration checkers
Docs, change logs, reports etc.
…
51. Test ≠ Test
• Test the configuration, not the
configurator
• Test the variable, not the template
• Test what, not how
52. The new CI?
• Food for thought
Quality builds
Dependent jobs
Platform agents
Virtual app repositories
…