Releasing To Production Every Week

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Releasing To Production Every Week - Presentation Transcript

    1. Releasing to Production Every Week
    2. 1 year
    3. 46 releases
    4. 1 rollback
    5. summary
    6. lessons learned
    7. poll:
    8. how long is your release cycle?
    9. Company
    10. real-time energy monitoring
    11. building energy efficiency
    12. save $
    13. save kW
    14. save
    15. aggregate data
    16. hosted solution
    17. SaaS
    18. Java
    19. learn
    20. Team
    21. • 9 developers
    22. • 9 developers • 1 product manager
    23. • 9 developers • 1 product manager • 1 graphic designer
    24. • 9 developers • 1 product manager • 1 graphic designer • 1 tester*
    25. • 9 developers • 1 product manager • 1 graphic designer • 1 tester* * recently added
    26. what’s missing?
    27. operations?
    28. support?
    29. QA?
    30. project manager?
    31. DBA?
    32. generalizing specialists
    33. fungibility
    34. rotating responsibility
    35. daily support duty
    36. few hand-offs
    37. empowered
    38. Process
    39. Goal: • to surface risk as early as possible to keep problems out of production
    40. maximize feedback
    41. shrink time
    42. Continuous Integration
    43. Continuous Integration • 3-4 Commits/dev/day
    44. Automated Build
    45. Automated Build • 3 minute build
    46. Automated Build • 3 minute build • 30-40 builds/day
    47. Automated Build • 3 minute build • 30-40 builds/day
    48. Automated Test Deploy
    49. Automated Test Deploy • 4-5 times per day
    50. Automated Test Deploy • 4-5 times per day • Scheduled nightly at 11PM
    51. Daily Standup
    52. Daily Standup • Weekly company standup
    53. Daily Review
    54. Daily Review • Quick peer feature review
    55. Weekly Demo
    56. Weekly Demo • 15 minute company- wide user-driven demo
    57. weekly cycle Mon Tues Wed Thurs Fri 9:30AM 10:00AM Release 5pm Planning User-driven Testing Release Meeting Demo
    58. “agile”
    59. Scrum?
    60. XP?
    61. what’s missing?
    62. user stories?
    63. user stories?
    64. user stories?
    65. story boards?
    66. story boards?
    67. story boards?
    68. estimation?
    69. estimation?
    70. estimation? fits or it doesn’t
    71. pairing?
    72. pairing?
    73. pairing? as needed
    74. pairing? as needed code reviews
    75. TDD?
    76. TDD?
    77. TDD? 30% coverage
    78. TDD? 30% coverage + Selenium
    79. TDD? 30% coverage + Selenium
    80. retrospectives?
    81. retrospectives?
    82. retrospectives? Release Review
    83. retrospectives? Release Review 5 Whys
    84. 5 Whys
    85. lightweight RCA
    86. just-in-time
    87. within 24 hours
    88. 1 Jira per question
    89. Practices
    90. Daily support rotation
    91. 5 Whys
    92. Continuous Monitoring
    93. Continuous Monitoring Socket App Server LogMaster Logger WARN | ERROR
    94. Continuous Monitoring
    95. Continuous Monitoring • Proactive response to issues
    96. Continuous Monitoring • Proactive response to issues • Clean logs
    97. Continuous Monitoring • Proactive response to issues • Clean logs • Message throttling
    98. Continuous Monitoring • Proactive response to issues • Clean logs • Message throttling • Gmail
    99. Continuous Monitoring • Proactive response to issues • Clean logs • Message throttling • Gmail • Managing the signal-to-noise ratio
    100. Continuous Monitoring
    101. Continuous Monitoring
    102. Continuous Monitoring
    103. Continuous Monitoring App Server web app gmond gmetad UDP multicast RRD
    104. Continuous Monitoring
    105. Continuous Monitoring
    106. Continuous Monitoring
    107. Continuous Monitoring
    108. Test mirrors Prod
    109. Trust Test
    110. Zero-downtime Deployment
    111. Zero-downtime Deploys Load Balancer App Server App Server App Server Deploy
    112. Zero-downtime Deploys
    113. Zero-downtime Deploys • Fully automated deployment
    114. Zero-downtime Deploys • Fully automated deployment • One button deploy from TeamCity
    115. Zero-downtime Deploys • Fully automated deployment • One button deploy from TeamCity • Gracefully bring down servers
    116. Zero-downtime Deploys What about the DB?
    117. Zero-downtime Deploys Bering
    118. Zero-downtime Deploys 001_create_login_table 001_add_inv_constraint 002_add_login_id_index 002_drop_alias_column 003_create_user_table 004_create_group_table Expand Contract
    119. Zero-downtime Deploys
    120. Zero-downtime Deploys • Database migration decoupled from the release
    121. Zero-downtime Deploys • Database migration decoupled from the release • Simplified rollback
    122. Zero-downtime Deploys • Database migration decoupled from the release • Simplified rollback • Some additional complexity in writing migrations
    123. Incremental Rollout
    124. Incremental Rollout
    125. Incremental Rollout • New features are released to user subset (by role)
    126. Incremental Rollout • New features are released to user subset (by role) • “Release is a marketing term”
    127. Incremental Rollout • New features are released to user subset (by role) • “Release is a marketing term” • Production levers
    128. Incremental Rollout • New features are released to user subset (by role) • “Release is a marketing term” • Production levers • Selective degredation
    129. Production DB Restore
    130. Production DB Restore
    131. Production DB Restore • Nightly backups
    132. Production DB Restore • Nightly backups • Automated Test DB refresh every Monday morning
    133. Production DB Restore • Nightly backups • Automated Test DB refresh every Monday morning • Local DB refresh on demand
    134. Production DB Restore • Nightly backups • Automated Test DB refresh every Monday morning • Local DB refresh on demand • Cleansed
    135. WANGMI
    136. WANGMI aka the discipline to defer
    137. Single Feature Release
    138. • Daily Support Rotation • 5 Whys • Continuous Monitoring • Test mirrors Prod • Zero-downtime deployment • Incremental rollout • Production DB restore • WANGMI - the discipline to defer • Single Feature Release
    139. Tools
    140. Questions? owen@pulseenergy.com
    141. Nov 3, 4, 5 • Martin Fowler • Mary Poppendieck • Eric Evans • Michael Feathers • Michael Nygard
    142. Questions? owen@pulseenergy.com
    143. • Eric Ries: Continuous Deployment
    144. • Daily rotating support duty • Log: 100MB/server/day • 30 KLOC
    145. • ThoughtWorks • Working with clients to shorten their release cycle • “Agile” • CruiseControl.NET

    + exortechexortech, 4 months ago

    custom

    514 views, 0 favs, 1 embeds more stats

    Presented at DevTeach Vancouver 2009

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 514
      • 467 on SlideShare
      • 47 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds
    • 47 views on http://exortech.com

    more

    All embeds
    • 47 views on http://exortech.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories