Your SlideShare is downloading. ×
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Continuous Deployment at Kitchensurfing
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Continuous Deployment at Kitchensurfing

3,040

Published on

Continuous Deployment is gaining popularity with companies like Facebook and Etsy, but its successful implementation creates technical challenges and will require any team to make workflow …

Continuous Deployment is gaining popularity with companies like Facebook and Etsy, but its successful implementation creates technical challenges and will require any team to make workflow changes.

Learn how Kitchensurfing switched to continuous deployments and how they’ve grown from one deploy a week to 10+ deploys a day with zero downtime and zero worries, thanks to MongoDB.

Hear about our workflow, the tools we use, and how we manage communication with product owners to make sure everyone is always in the loop.

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

No Downloads
Views
Total Views
3,040
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
43
Comments
0
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CONTINUOUS DEPLOYMENT Lars Kluge, CTO and Co-founder of Kitchensurfing
  • 2. KITCHENSURFING
  • 3. WHO IS FAMILIAR WITH …?
  • 4. DEFINITION
  • 5. Continuous Deployment is the automated process of shipping your product to production, with every push to master.
  • 6. MOTIVATION? Earlier feedback for your business: get features in front of users as early as possible Faster development: develop, push, next feature Lower the risk of deployments Motivation for everyone involved: changes can be done immediately--no wait for the next scheduled release
  • 7. WHO IS USING IT? Facebook, Etsy, Quora, Linkedin, …
  • 8. IS IT PRACTICAL FOR SMALLER STARTUPS?
  • 9. YES. We use it and love it at Kitchensurfing.
  • 10. OUR STACK Ruby on Rails, MongoDB, Heroku, …
  • 11. OUR WORKFLOW
  • 12. 1. Pick up a ticket in Pivotal Tracker 2. Code 3. Commit with reference to ticket id 4. Pull Request on Github 5. Code Review 6. Multiple Staging Environments if manual check necessary 7. CI: Codeship runs test suite for pull request 8. Merge into master 9. Github notifies Pivotal Tracker that ticket is merged 10. CI runs again 11. On successful build, Codeship deploys to Heroku 12. Release Notes Email sent by Heroku
  • 13. OUR LEARNINGS
  • 14. MONGODB HELPS.
  • 15. NO SCHEMA.
  • 16. ETSY source
  • 17. WITH MONGODB: While (re)inventing your product, no* schema migration necessary.
  • 18. YOUNG PRODUCT = A LOT SCHEMA CHANGES
  • 19. TRUST YOUR TEST SUITE
  • 20. RELEASE BIG PRODUCTS IN SMALL PIECES
  • 21. USE FEATURE FLAGS Show new features only to your beta user group Avoid the 'big bang' release
  • 22. OBSERVE PRODUCTION AFTER DEPLOY Not only exception tracking How are business #s changing? Cloud behavior MMS (MongoDB Monitoring Service) New Relic
  • 23. BEHAVIOR CHANGE Is your team ready to make the behavior change? The whole team needs to support it. Introduce Continuous Deployment as early as possible; it's getting harder down the road.
  • 24. PRODUCT TEAM How to break down features into small, easy to release pieces? What is the order of operation?
  • 25. COMMUNICATION Keep your team in the loop Release Notes Email What is online, what's not? Ticket finished, does it mean it's online?
  • 26. RUNTIME OF TEST SUITE > 15 Min. tricky Context Switch is expensive for Engineers
  • 27. HEROKU PREBOOT $ heroku labs:enable -a myapp preboot
  • 28. OUR FUTURE PLANS Better Release Notes Email based on finished stories in Tracker Statistics in Pull Request to understand the change based on compiled JS, CSS size, test suite build time, # of database queries, etc. Engineering Dashboard: See how a deploy changes business #s
  • 29. THANK YOU. larskluge.com @aekym

×