Continuous Deployment is the automatedprocess of shipping your product to
production, with every push to master.
MOTIVATIONEarlier feedback for your business: get features in front ofusers as early as possibleFaster development: develop, push, next featureFewer merge conflictsLower the risk of deploymentsMotivation for everyone involved: changes can be doneimmediately--no wait for the next scheduled release
1. Pick up a ticket in Pivotal Tracker2. Code3. Commit with reference to ticket id4. Pull Request on Github5. Code Review6. Multiple Staging Environments if manual check necessary7. CI: Codeship runs test suite for pull request8. Merge into master9. Github notifies Pivotal Tracker that ticket is merged
10. CI runs again11. On successful build, Codeship deploys to Heroku12. Release Notes Email sent by Heroku
OBSERVE PRODUCTION AFTER DEPLOYNot only exception tracking
How are business #s changing?
Cloud behavior
MMS Monitoring for MongoDB
New Relic
BEHAVIOR CHANGEIs your team ready to make the behavior change?The whole team needs to support it.Introduce Continuous Deployment as early as possible; it'sgetting harder down the road.
PRODUCT TEAMHow to break down features into small, easy to release
pieces? What is the order of operation?
COMMUNICATIONKeep your team in the loopRelease Notes EmailWhat is online, what's not?Ticket finished, does it mean it's online?
FUTURE PLANSBetter Release Notes Email based on finished stories inTrackerStatistics in Pull Request to understand the change basedon compiled JS, CSS size, test suite build time, # of databasequeries, etc.Engineering Dashboard: See how a deploy changes business#s