Continuously Delivering: Compress the time from committed to consumed
-
Upload
atlassian -
Category
Technology
-
view
1.407 -
download
0
Transcript of Continuously Delivering: Compress the time from committed to consumed
![Page 1: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/1.jpg)
![Page 2: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/2.jpg)
Compress the time from committed to consumed
Jonathan GilbertConfluence Manager, Atlassian
2
Continuously Delivering
![Page 3: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/3.jpg)
Agenda
3
• Existing Processes
• Benefits of Continuous Delivery
• Approaches to achieving Continuous Delivery
• Atlassian Tools
![Page 4: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/4.jpg)
Atlassian Process
4
• Long lived feature branches for major features
• 98 day releases
• Feature integration
• Hardening• 2 week beta• 2 week RC
![Page 5: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/5.jpg)
What’s the problem?
5
![Page 6: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/6.jpg)
Value Timeline
6
Release
Release to Studio
![Page 7: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/7.jpg)
Large Releases
• Unaddressed risk• Large changes• Support burden• Impacts development speed
• No way to revert?• Need to double check everything
• Large release anti-pattern
7
![Page 8: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/8.jpg)
Branching
• Extends time to delivery
• Prevents iterative development
• Increases big-bang
• Merging pain
8
![Page 9: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/9.jpg)
Everyone does CI, right?
9
• Same reason as Continuous Integration• Don’t leave a manual, error-prone process to the end
![Page 10: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/10.jpg)
Rapid Release Cycles
10
![Page 11: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/11.jpg)
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
11
![Page 12: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/12.jpg)
Regular Deployments
• Company dogfooding server• Fortnightly
• Team dogfooding server• Nightly
• Stable releases• Fortnightly
12
![Page 13: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/13.jpg)
Packaged Release Automation
• SCM Tag
• Maven upload
• Release in JIRA
• Release notes in Confluence
• Push binaries to distribution
13
![Page 14: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/14.jpg)
Continuous Delivery
14
![Page 15: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/15.jpg)
Continuous Delivery
• Produce a regular, deployable-to-production build• Regular probably means daily
• Continuous Deployment would be to deploy each one
15
![Page 16: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/16.jpg)
Why?
16
![Page 17: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/17.jpg)
For Product…
17
![Page 18: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/18.jpg)
No Features Waiting in Queue
18
![Page 19: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/19.jpg)
Market New Releases “Whenever”
19
![Page 20: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/20.jpg)
Great Momentum
Happy & Forgiving Customers
20
![Page 21: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/21.jpg)
Small Changes, Immediate Validation
21
![Page 22: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/22.jpg)
Rapid Iteration
Hit => Double Down
Miss => Revert
22
![Page 23: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/23.jpg)
Agility
23
![Page 24: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/24.jpg)
For Engineering…
24
![Page 25: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/25.jpg)
Build what people want
25
![Page 26: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/26.jpg)
Less Fragility
Less time waiting in queue
26
![Page 27: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/27.jpg)
Smaller batches
Less integration pain
27
![Page 28: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/28.jpg)
More Focus
28
![Page 29: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/29.jpg)
Our Story…
29
![Page 30: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/30.jpg)
Which may apply to you…
• SaaS
• Installed Product
• Single Client
30
![Page 31: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/31.jpg)
Progress Summary
• Small Stories
• Removed Branches
• Accelerated Builds
• Automated Deployment
31
![Page 32: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/32.jpg)
Deployment Pipeline
• Environments• Dogfooding• Homogeneous
• Batched build pipeline
• Smoke tests
• Automated backup & rollback
32
![Page 33: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/33.jpg)
Rapid Continuous Integration
• Build Stages• Unit tests• UI tests• Functional tests
• Batching• EC2• Bamboo
33
![Page 34: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/34.jpg)
Deployment Speedup
• Previously…• 1-2 days effort• Every 2 weeks
• Now• 25min build, 15min deploy, zero downtime• Approx 10x / day
34
![Page 35: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/35.jpg)
Bamboo Support
• Tasks
• Plan Variables
• Parameterised Builds
• Artifact Passing
• Manual Stages (3.2)
35
![Page 36: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/36.jpg)
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
36
![Page 37: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/37.jpg)
Dark Features
37
• No long-lived branches
• Decouples deploy & launch
• Reduces risk
![Page 38: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/38.jpg)
Monitoring
• Log file analysis• Splunk
• Application instrumentation• Metrics
• Runtime VM instrumentation• New Relic
38
![Page 39: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/39.jpg)
Challenges
• Scrum vs. Kanban
• Downtime
• Code & test discipline• Pre-commit reviews?
• Change tracking• Release notes?• What environments have received a change?
39
![Page 40: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/40.jpg)
Tips
• Environment Independence
• Modular Code• Or “Branch by Abstraction”
• Version Everything• Especially the deploy scripts
• Team Changes• QA• DevOps
40
![Page 41: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/41.jpg)
Future
41
![Page 42: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/42.jpg)
Extending the pipeline
42
Team Company Studio
Studio
Studio
![Page 43: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/43.jpg)
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?43
![Page 44: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/44.jpg)
Issue-based Deployment
44
A B AC B DDBCB E
B BBB
master/default/trunk
deployment branch
![Page 45: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/45.jpg)
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
45
![Page 46: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/46.jpg)
Questions?
46
![Page 47: Continuously Delivering: Compress the time from committed to consumed](https://reader036.fdocuments.in/reader036/viewer/2022070315/554f4e84b4c905423f8b504a/html5/thumbnails/47.jpg)
More Information
• Bamboo 3.2
http://atlassian.com/sotware/bamboo
• Atlassian Dev Blog
http://blogs.atlassian.com/developer
• Recorded Summit Sessions
http://summit.atlassian.com47