Your SlideShare is downloading. ×
0
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
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 Delivery в продуктовой разработке"

2,041

Published on

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

No Downloads
Views
Total Views
2,041
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
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. Why / How / When Do I need CONTINUOS DELIVERY?
  • 2. Product Developer, E-conomic (Ciklum) Trainer, XP Injection beletsky.net @alexbeletsky github.com/alexanderbeletsky
  • 3. Why How When
  • 4. The story of one project  Very simple GTD web application  .NET technological stack based  VPS hosted  Nothing fancy, seriously
  • 5. •Prepare release branch and merge all required changes there •Update version in uppercut.config •Commit changes to SCM • Run build.bat • FTP package to deployment server •RDP to deployment server •Unpackage .zip content to temp folder •Manually backup staging database •Stop Stage Web site in IIS manager • Run migration scripts for staging database • Run deployment scripts for staging environment • Run Stage Web site in IIS manager • Test manually that on staging server, that build works fine •If something missed (note it is 60% of all cases) go to 1 •Manually backup production database •Stop Production Web site in IIS manager •Run migration scripts for production database • Run deployment scripts for production environment • Run Production Web site in IIS manager •Test manually that on production server, that build works fine Delivery Script ...
  • 6. If it FAILS in a MIDDLE — REPEAT Lucky day: 0.5 h Bad day: 2 h
  • 7. Read those figures as: My customers suffer for 2 hours once in 2 weeks, just becase I do update
  • 8. And by the way...  It's just takes too much developers time  It's boring  Sooner or later you start to hate deployments
  • 9. For bussiness people and managers  “Time-to-Market” factor is very low  Feedback cycle is very long  Customer dissatisfaction is very high
  • 10. Why How When
  • 11. Let's define our TERMINOLOGY
  • 12. Deployment != Delivery Deployment: product IS availble Delivery: product IS availble for users
  • 13. Deployment first Delivery after
  • 14. All you have to know, the secret formula of Continuous Deployment
  • 15. (Integration + Deployment) * Continuous = Continuous Deployment
  • 16. Integration is for: fetching latest sources build all product configuration items run unit tests run functional tests generate documentation package all artifacts Deployment is for: update test servers
  • 17. 1. Build and deploy locally with one click 2. Define SCM model based 3. Run it continuosly Recipe of Success:
  • 18.  Build and tests execution  Binaries versioning  SCM labeling  Database migration  Web application deployment Step 1 - Build and Deploy
  • 19.  Build and tests execution  Binaries versioning  SCM labeling  Database migration  Web application deployment Step 1 - Build and Deploy Solved by Chuck Norris tools
  • 20. UppercuT batch build framework RoundhousE database migrations DropicK application deployment Meet Chuck Norris Tools
  • 21. UppercuT Easy to use Configurable by XML Supports config for different environment RoundhousE Easy to use Supports MS SQL, MySQL, Postgress Migration by SQL Scripts DropkicK Deployment script as C# code Support for services and sites Different plans
  • 22. Available on a Github
  • 23. > deploy.bat LOCAL > deploy.bat STAGING > deploy.bat PRODUCTION Step 1 - Build and Deploy ACCOMPLISHED
  • 24.  DVCS are simply rule (Git, HG)  TRUNK is production ready  Keep interations in branches  Keep features in branches Step 2 - Define SCM model
  • 25. Ideal branches count = 2 master develop Typical branches count >= 2 master develop release hotfix
  • 26. Branch per Environment Layout
  • 27. Step 2 - Define SCM model ACCOMPLISHED > git checkout develop > git merge --no-ff myfeature > git branch -d myfeature > git push origin develop
  • 28.  Availability of Build Server  SCM build triggering  Automatically run deployment script  Roll out application to production Step 3 - Run it continuously
  • 29.  Fork of famous Hudson project  Open source  Java based  Easy start, easy go  Tons of available plugins Say 'Hello' to Jenkins
  • 30. All configuration could be done in UI
  • 31. Jenkins Instance is deployed for each environment
  • 32. Build/Deployment continuosly triggered by SCM
  • 33. As soon as Staging “Looks Alright”, deploy to production
  • 34. > git checkout master > git merge develop > git tag -a 1.2 > git push origin master Deployment is nothing more as pushing changes to origin/master
  • 35. Step 3 - Run it continuosly ACCOMPLISHED Changes are picked up, built, tested and deployed automatically
  • 36. Why How When
  • 37. As sooner as better
  • 38. And?
  • 39. Results:  Going live time improved 45x  Site down time reduced 300x  No more iterations, Kanban  Staging is updating with every push  Setup and forget
  • 40. THANK YOU! beletsky.net @alexbeletsky github.com/alexanderbeletsky

×