• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Continuous Delivery
 

Continuous Delivery

on

  • 6,861 views

Presentation from XP Days Ukraine (December, 2011) about establishing continuous delivery process in development team

Presentation from XP Days Ukraine (December, 2011) about establishing continuous delivery process in development team

Statistics

Views

Total Views
6,861
Views on SlideShare
3,186
Embed Views
3,675

Actions

Likes
7
Downloads
0
Comments
0

17 Embeds 3,675

http://xpinjection.com 3021
http://xpdays.com.ua 508
http://cloud.feedly.com 47
http://agilebasecamp.org 34
http://www.newsblur.com 19
https://twitter.com 10
http://www.feedspot.com 9
http://us-w1.rockmelt.com 6
http://feeds.feedburner.com 4
http://plus.url.google.com 4
http://feedly.com 4
http://www.inoreader.com 2
http://inoreader.com 2
http://a0.twimg.com 2
http://reader128k.net 1
http://summary 1
http://webcache.googleusercontent.com 1
More...

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

    Continuous Delivery Continuous Delivery Presentation Transcript

    • CONTINUOUS DELIVERY Mikalai Alimenkou http://xpinjection.com 17.12.2011
    • Background• Java Technical Lead/Scrum Master at Zoral Labs• 7+ years in software development• 5+ years of working by Agile methodologies• Expert in Agile engineering practices• Founder and coach at XP Injection (http://xpinjection.com)• Organizer of Selenium Camp, JEEConf and XP Days Ukraine conferences
    • Every tool or practice should solve particular problemsWHY CONTINUOUS DELIVERY?
    • What changed in business? It is faster now!• Что изменилось в бизнесе? Он стал быстрее.
    • How long?
    • Still afraid of releases?
    • Your typical release
    • !!!
    • Kanban promotes continuous flow
    • XP style – ifit hurts, do it more often
    • “How long would it take your organization todeploy a change that involves just one single lineof code?Do you do this on a repeatable reliable basis?” - Mary and Tom Poppendieck
    • Continuous Delivery Keeping systems production- ready throughout development, so that they canbe released to users at any time
    • ”Continuous delivery is about putting the releaseschedule in the hands of the business, not in the handsof IT.Implementing continuous delivery means making sureyour software is always production ready throughoutits entire lifecycle – that any build could potentially bereleased to users at the touch of a button using a fullyautomated process in a matter of seconds or minutes.” - Jez Humble
    • Nobody tell you it is easy, but many people practice itREQUIRED STEPS FOR SUCCESS
    • 1. Select version Release should2. Select environment be simple3. Push the button
    • WTF?!? What about QA?Risk Management? Team Policies?
    • Automateeverything! Upgrade TestsBuild Deployment
    • Stable releasable trunk
    • How is it possible? Small features Slicing development Don’t show UI Feature flags
    • Global Continuous Integration
    • TDD at all levels ATDD TDDCustomer’s Tests Programmers’ Tests Acceptance Fixtures Production Unit Integration Tests Code Tests Tests
    • Detailed static code analysis
    • 1. Plan 2. Prepare 3. TestAlways thinkabout rollback
    • Deployment Load balancer sample XApp Server X DB Server
    • Deployment Load balancer sample X X 1. Start new App Server 2. Use slave DBApp Server App Server X X DB Server DB Server
    • Deployment Load balancer sample X X 1. Start new App Server 2. Use slave DB 3. Deploy in read only modeApp Server App Server 4. Switch load balancer X X DB Server DB Server
    • Deployment Load balancer sample Y X 1. Start new App Server 2. Use slave DB 3. Deploy in read only modeApp Server App Server 4. Switch load balancer 5. Update master DB 6. Deploy new code Y X DB Server DB Server
    • Deployment Load balancer sample Y X 1. Start new App Server 2. Use slave DB 3. Deploy in read only modeApp Server App Server 4. Switch load balancer 5. Update master DB 6. Deploy new code 7. Switch load balancer Y X DB Server DB Server
    • Deployment Load balancer sample Y 1. Start new App Server 2. Use slave DB 3. Deploy in read only modeApp Server 4. Switch load balancer 5. Update master DB 6. Deploy new code 7. Switch load balancer Y Y 8. Release old App Server 9. Synchronize slave DB DB Server DB Server
    • Don’t forget about…Monitoring Smoke testing5 whys technique Retrospective
    • How to start?Start with walking skeleton Automate step by stepReduce deploy batch size Reduce deployment cycle
    • Visualize path of your code from developers to end usersBUILD PIPELINES
    • Performance Dev Testing Testing Staging Demo UATProduction Different environments on code path
    • Build Pipeline sample
    • Build pipeline sequence
    • Jenkins BuildPipeline Plugin
    • TeamCityBuild Chain
    • Cruise Pipelines
    • Do nothing before benefits are not clear for youCONTINUOUS DELIVERY BENEFITS
    • Reduce errors in manual repeatable tasks
    • Fail early with deployment
    • Small changes reduce risks
    • Short feedback cycle
    • Everybody can deploy to production
    • Before After Dev Commit Monitor TestRelease QA Deploy • 2 week release cycles • code freeze • multiple releases a day • big events • non-events • large code changes • small number of changes
    • Books to read
    • @xpinjection http://xpinjection.commikalai.alimenkou@xpinjection.com