Deployment is the new build        Andrew Phillips
Deployment is like the new build
Deployment is like the new build Deployment is the new build
Devops and Deployment    Q: What does a talk like “Deployment is the new build”have to do with Devops* anyway?            ...
Devops and DeploymentA: We’re here because of shared experience that delivering valuerequires a holistic view of software ...
The Road to Value
The Road to ValueWe have ideas…
The Road to Value…think about how to implement them…
The Road to Value…write source code…
The Road to Value…test the source code…
The Road to Value…convert source code into     deliverables…
The Road to Value…make those deliverables  accessible to users…
The Road to Value…test the deliverables    some more…
The Road to Value…make them available to      end users…
The Road to ValueGOTO TOP
The red bit
The red bit•   We have ideas…•   …think about how to implement them…•   …write source code…•   …test the source code…•   …...
Why the red bit?Because our industry as a   whole does this part      really badly
Why the red bit?Because, if we take a holistic     approach to softwaredelivery, we often identify this   as a key area to...
di-plȯi-mәnt• Deployment: taking the components that make up a  release (typically a specific version of an application)  ...
di-plȯi-mәnt• Deployment: taking the components that make up a  release (typically a specific version of an application)  ...
Deployment today Here be demons
Deployment here today   do     now     maybe          this     this  this  then    then      this  that    that     again ...
The Road to Value
Remember this?   make
Remember this?
Remember this?Here be demons
Build today   GO!
Build todayHow did this happen?
How did this happen?1. Reusable commands2. Models3. Conventions++
Reusable commands•    Recognising recurring low-level building blocks•    Replacing copy’n’paste snippets with reusable   ...
Models•    Common chunks work with common types of     data•    Formalise data chunks into a domain model•    Formalise ch...
Conventions++•    Modifying a rigid convention-based system is     cumbersome•    Domain-/language-specific defaults and f...
How did this happen?•   Not driven by industry standards! Just    observation of common patterns•   Changing out-of-the-bo...
Deployment todayIn here: “Reusable commands”          or a bit beyond
Deployment todayIn here: “Reusable commands”          or a bit beyond Out there: make (if you’re lucky)
Deployment tomorrow?        GO!
Getting to GO!• Develop a common model• (Re)discover vanilla• Support a “clean build”
Common model• Packages• Environments• Deployments
Common model• Version everything• Interoperability• “Something to work with”
Re(discover) vanilla• It Just Works™• KISS, YAGNI & more alphabet soup• Grandmother’s secrets
Re(discover) vanilla• Value reusability• Improve maintainability• Minimize “ripple” changes
“clean build”• Incremental as the goal• Clean as the fallback
“clean build”• Time To Rebuild < Time To Fix• Prerequisite: versioning• Prerequisite: known state for durable  resources
Deployment is like the new build Deployment is the new build
Virtual appliances• Deliverable: ready-to-run system• “Press Play to start”• Model:   Package: virtual app   Environment...
Making virtual appliances• Deployment “ahead of time”     TBD: dealing with customization• Deployment at build time
Making working virtual appliances•   Trust?•   Eyeball?•   Run and monitor?•   ...?
Spoiled by CI• Great expectations   Unit testing   Integration testing   Pattern, style, compliance etc. checkers   Do...
The new CI? Unit testing ► file verification, ping Integration testing ► QA tests,  application monitoring, DTrace Patt...
Test ≠ Test• Test the configuration, not the  configurator• Test the variable, not the template• Test what, not how
The new CI?• Food for thought   Quality builds   Dependent jobs   Platform agents   Virtual app repositories  …
Building source code…that’s so 2011
Thank you!
Upcoming SlideShare
Loading in...5
×

Deployment is the new build

3,491

Published on

Slides for the "Deployment is the new build" presentation by Andrew Phillips (XebiaLabs) at the Devopsdays 2011 conference in Boston.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,491
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Deployment is the new build

  1. 1. Deployment is the new build Andrew Phillips
  2. 2. Deployment is like the new build
  3. 3. Deployment is like the new build Deployment is the new build
  4. 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. 5. Devops and DeploymentA: We’re here because of shared experience that delivering valuerequires a holistic view of software development and maintenance
  6. 6. The Road to Value
  7. 7. The Road to ValueWe have ideas…
  8. 8. The Road to Value…think about how to implement them…
  9. 9. The Road to Value…write source code…
  10. 10. The Road to Value…test the source code…
  11. 11. The Road to Value…convert source code into deliverables…
  12. 12. The Road to Value…make those deliverables accessible to users…
  13. 13. The Road to Value…test the deliverables some more…
  14. 14. The Road to Value…make them available to end users…
  15. 15. The Road to ValueGOTO TOP
  16. 16. The red bit
  17. 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. 18. Why the red bit?Because our industry as a whole does this part really badly
  19. 19. Why the red bit?Because, if we take a holistic approach to softwaredelivery, we often identify this as a key area to improve
  20. 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. 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
  22. 22. Deployment today Here be demons
  23. 23. Deployment here today do now maybe this this this then then this that that again then then this this phew!
  24. 24. The Road to Value
  25. 25. Remember this? make
  26. 26. Remember this?
  27. 27. Remember this?Here be demons
  28. 28. Build today GO!
  29. 29. Build todayHow did this happen?
  30. 30. How did this happen?1. Reusable commands2. Models3. Conventions++
  31. 31. Reusable commands• Recognising recurring low-level building blocks• Replacing copy’n’paste snippets with reusable libraries• Chunking sequences of low-level commandsThinking Ant here
  32. 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 defaultsThinking Maven here
  33. 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 toThinking Gradle here
  34. 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
  35. 35. Deployment todayIn here: “Reusable commands” or a bit beyond
  36. 36. Deployment todayIn here: “Reusable commands” or a bit beyond Out there: make (if you’re lucky)
  37. 37. Deployment tomorrow? GO!
  38. 38. Getting to GO!• Develop a common model• (Re)discover vanilla• Support a “clean build”
  39. 39. Common model• Packages• Environments• Deployments
  40. 40. Common model• Version everything• Interoperability• “Something to work with”
  41. 41. Re(discover) vanilla• It Just Works™• KISS, YAGNI & more alphabet soup• Grandmother’s secrets
  42. 42. Re(discover) vanilla• Value reusability• Improve maintainability• Minimize “ripple” changes
  43. 43. “clean build”• Incremental as the goal• Clean as the fallback
  44. 44. “clean build”• Time To Rebuild < Time To Fix• Prerequisite: versioning• Prerequisite: known state for durable resources
  45. 45. Deployment is like the new build Deployment is the new build
  46. 46. Virtual appliances• Deliverable: ready-to-run system• “Press Play to start”• Model:  Package: virtual app  Environment: hypervisor/platform
  47. 47. Making virtual appliances• Deployment “ahead of time”  TBD: dealing with customization• Deployment at build time
  48. 48. Making working virtual appliances• Trust?• Eyeball?• Run and monitor?• ...?
  49. 49. Spoiled by CI• Great expectations  Unit testing  Integration testing  Pattern, style, compliance etc. checkers  Docs, change logs, reports etc.  …
  50. 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. 51. Test ≠ Test• Test the configuration, not the configurator• Test the variable, not the template• Test what, not how
  52. 52. The new CI?• Food for thought  Quality builds  Dependent jobs  Platform agents  Virtual app repositories …
  53. 53. Building source code…that’s so 2011
  54. 54. Thank you!

×