Upload
andrii-shumada
View
86
Download
3
Embed Size (px)
Citation preview
How to deploy to production 10 times a day
Andrii ShumadaCiklum/e-conomic
eagleeye eagleeye_s [email protected]
What is contious deployment?
A software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time
Why to do Continuos deployment?
less queues
no waiting till next scheduled realease
more tasks get done
Speed
Developer satisfaction
code with feauture is isolated
less planings
less stress
Quality
Bugs can be found faster
Bugs can be fixed faster
More concentrated testing
Less risks
Recruitment
Hey, we deploy every day!
echo alias deploy=’mocha && git push heroku master‘ >> ~/.bash_profile
Let’s setup super simple CD
How about confilcts with other guys?
Centralized Workflow
Feature Branch Workflow
Manual testing(before) Prod
Staging
Manual testing(after) Prod
Staging-feature-1
feature-branch-1
Staging-feature-2
feature-branch-2
Staging-feature-3
feature-branch-3
Contious integration server
1.Trigger rules 2.Build steps
Checks VCS
by userdeploy
TeamCityJenkinsShippableTravis
run tests
Web hooks
Safe merge to master and deploy
Production
CI server
Write your feature
Push your feature to branch ready/feature1
delete ready/feature1 branch
deploy master
pulls master locally
merge ready/feature1 to master locally
run tests
push to origin/master
When we can release that?
PO/Manage(before)
Is it in production?
PO/Manager(after)
Demo
Don’t forget about monitoring
General recomendations
Split big tasks to fit 1-2 days release cycle
Don’t plan and estimate
Useful links
https://github.com/mafintosh/hmshttps://github.com/progrium/dokkuhttps://github.com/e-conomic/tcmergehttps://waffle.iohttps://travis-ci.org