Continuously Delivering: Compress the time from committed to consumed
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Continuously Delivering: Compress the time from committed to consumed

on

  • 1,836 views

 

Statistics

Views

Total Views
1,836
Views on SlideShare
1,692
Embed Views
144

Actions

Likes
1
Downloads
48
Comments
0

6 Embeds 144

http://summit.atlassian.com 102
https://summit.atlassian.com 28
http://www.atlassian.com 7
https://wacdev.internal.atlassian.com 5
http://magnolia-staging.private.atlassian.com:8080 1
url_unknown 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Explain: my team my mission prefer technical solutions Of all process changes – this is the best
  • Who uses CI?
  • All Hands Gestures!
  • Embedded Crowd
  • XHTML
  • How many people here dogfood?
  • Mention CI
  • Value always delivered
  • Value always delivered
  • Value always delivered
  • Value always delivered
  • Value always delivered
  • React more quickly to new opportunities Don’t need to wait on release boundaries Reallocate resources more easily
  • React more quickly to new opportunities Don’t need to wait on release boundaries Reallocate resources more easily
  • Value always delivered
  • Less integration pain
  • Value always delivered
  • Ask what the audience make up is Chrome is one example of CD infrastructure – although channel based, so not the same
  • Use XHTML as an example
  • Gestures!
  • Dependencies

Continuously Delivering: Compress the time from committed to consumed Presentation Transcript

  • 1.  
  • 2. Continuously Delivering
  • 3. Agenda
    • Existing Processes
    • Benefits of Continuous Delivery
    • Approaches to achieving Continuous Delivery
    • Atlassian Tools
  • 4. Atlassian Process
    • Long lived feature branches for major features
    • 98 day releases
    • Feature integration
    • Hardening
      • 2 week beta
      • 2 week RC
  • 5. What’s the problem?
  • 6. Value Timeline Release Release to Studio Release of cross-product features Customer Upgraded
  • 7. Large Releases
    • Unaddressed risk
      • Large changes
      • Support burden
      • Impacts development speed
    • No way to revert?
      • Need to double check everything
    • Large release anti-pattern
  • 8. Branching
    • Extends time to delivery
    • Prevents iterative development
    • Increases big-bang
    • Merging pain
  • 9. Everyone does CI, right?
    • Same reason as Continuous Integration
      • Don’t leave a manual, error-prone process to the end
  • 10. Rapid Release Cycles
  • 11. Dogfooding
    • Some are fortunate enough to use their own software
    • If you are, take advantage of it!
    • Find bugs, gather feedback
    • Instability won’t affect the customer
  • 12. Regular Deployments
    • Company dogfooding server
      • Fortnightly
    • Team dogfooding server
      • Nightly
    • Stable releases
      • Fortnightly
  • 13. Packaged Release Automation
    • SCM Tag
    • Maven upload
    • Release in JIRA
    • Release notes in Confluence
    • Push binaries to distribution
  • 14. Continuous Delivery
  • 15. Continuous Delivery
    • Produce a regular, deployable-to-production build
      • Regular probably means daily
    • Continuous Deployment would be to deploy each one
  • 16. Why?
  • 17. For Product…
  • 18. No Features Waiting in Queue
  • 19. Market New Releases “Whenever”
  • 20. Great Momentum
    • Happy & Forgiving Customers
  • 21. Small Changes, Immediate Validation
  • 22. Rapid Iteration
    • Hit => Double Down
    • Miss => Revert
  • 23. Agility
  • 24. For Engineering…
  • 25. Build what people want
  • 26. Less Fragility
    • Less time waiting in queue
  • 27. Smaller batches
    • Less integration pain
  • 28. More Focus
  • 29. Our Story…
  • 30. Which may apply to you…
    • SaaS
    • Installed Product
    • Single Client
  • 31. Progress Summary
    • Small Stories
    • Removed Branches
    • Accelerated Builds
    • Automated Deployment
  • 32. Deployment Pipeline
    • Environments
      • Dogfooding
      • Homogeneous
    • Batched build pipeline
    • Smoke tests
    • Automated backup & rollback
  • 33. Rapid Continuous Integration
    • Build Stages
      • Unit tests
      • UI tests
      • Functional tests
    • Batching
      • EC2
      • Bamboo
  • 34. Deployment Speedup
    • Previously…
      • 1-2 days effort
      • Every 2 weeks
    • Now
      • 25min build, 15min deploy, zero downtime
      • Approx 10x / day
  • 35. Bamboo Support
    • Tasks
    • Plan Variables
    • Parameterised Builds
    • Artifact Passing
    • Manual Stages (3.2)
  • 36. Delivery Gates
    • Checkpoints are necessary
      • Just make sure they’re automated
    • Manual checkpoints exist due to fear
      • Often they can be removed with no tangible impact
      • Sometime possible to partially automate
  • 37. Dark Features
    • No long-lived branches
    • Decouples deploy & launch
    • Reduces risk
  • 38. Monitoring
    • Log file analysis
      • Splunk
    • Application instrumentation
      • Metrics
    • Runtime VM instrumentation
      • New Relic
  • 39. Challenges
    • Scrum vs. Kanban
    • Downtime
    • Code & test discipline
      • Pre-commit reviews?
    • Change tracking
      • Release notes?
      • What environments have received a change?
  • 40. Tips
    • Environment Independence
    • Modular Code
      • Or “Branch by Abstraction”
    • Version Everything
      • Especially the deploy scripts
    • Team Changes
      • QA
      • DevOps
  • 41. Future
  • 42. Extending the pipeline Team Company Studio Studio Studio
  • 43. Issue-based Deployment
    • Smallest sensible chunk should be delivered
    • Used to be a whole release
      • Traditional Process
    • A feature?
      • Deployment after feature branch merges
    • A commit?
      • Deploy on green build
    • An issue?
  • 44. Issue-based Deployment A B A C B D D B C B E B B B B master/default/trunk deployment branch
  • 45. Summary
    • Commit -> Dogfooding
      • Time: 2 weeks to 30min
      • Frequency: Fortnightly to 10 times per day
    • It may require changes to existing processes
    • Atlassian tools are currently easy to automate
    • Continuous Delivery is a first-class feature of Bamboo
    • Stay tuned for more help from Atlassian
  • 46. Questions?
  • 47. More Information
    • Bamboo 3.2
    • http://atlassian.com/sotware/bamboo
    • Atlassian Dev Blog
    • http://blogs.atlassian.com/developer
    • Recorded Summit Sessions
    • http://summit.atlassian.com