持续交付软件之路 - Continuous Delivery

1,447 views

Published on

This slides introduce the concept of continuous delivery and relevant strategies for SCM/dependency/release plan/testing/db/environment to archive

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

No Downloads
Views
Total views
1,447
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
69
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

持续交付软件之路 - Continuous Delivery

  1. 1. Kent Beck
  2. 2. AB
  3. 3. "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operationCustomer Testing + Showcase Iteration 0 1 2 3 4 The "last mile"
  4. 4. "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operationCustomer Testing + Showcase Iteration 0 1 2 3 4 The "last mile"
  5. 5. "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operationCustomer Testing + Showcase Iteration 0 1 2 3 4 The "last mile"
  6. 6. "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operationCustomer Testing + Showcase Iteration 0 1 2 3 4 The "last mile"
  7. 7. Mary Poppendieck Tom Poppendieck
  8. 8. Product Product Product Final testing opportunity planning and Development Release discovery and approval assessment estimation 2 3 days 1 week 10 days 7 weeks 1 week hoursValue-added time Elapsed time 1 week 10 days 3 days 5 days 2 days
  9. 9. Product Product Product Final testing opportunity planning and Development Release discovery and approval assessment estimation 2 3 days 1 week 10 days 7 weeks 1 week hoursValue-added time Elapsed time 1 week 10 days 3 days 5 days 2 days
  10. 10. Delivery team Version control Build & unit Automated User acceptance Release tests acceptance tests tests Check in Trigger Feedback Check in Trigger Feedback Trigger Feedback Check in Trigger Feedback Trigger Feedback Approval Feedback Approval
  11. 11. Increasing confidence in builds production readiness Environments become more production-like User acceptance testingCommit stage Compile Acceptance Production Unit test test stage AnalysisBuild installers Performance testing Faster feedback
  12. 12. CustomerDelivery team Constant flow of new features into production
  13. 13. Professor Plum P1-2 P3-4 P1 P2 P3 P4 P5 P1-5 B1 B2Mainline B1 B2 P1-5 B1 B2 G1-6 G1 G2 G3 G4 G5 G6 G1-2 G3 Reverend Green G1-6Professor Plum P1 P2 P3 P4 P4 P1 P2 P3 P4 P5 P1 P3 P4 P5 P2 B2 G3 G1 B1 G2Mainline B1 B2 B1 B2 P4-5 G1 P1-2 G2 P3 G3 G4 G5 G6 G1 G2 G3 G4 G5 G6 Reverend Green G3 G4 G2
  14. 14. Professor Plum P1-2 P3-4 P1 P2 P3 P4 P5 B1 B2Mainline B1 B2 B1 B2 G1 G2 G3 G4 G5 G6 G1-2 G3 Reverend Green
  15. 15. Professor Plum P1-2 P3-4 P1 P2 P3 P4 P5 P1-5 B1 B2Mainline B1 B2 P1-5 B1 B2 G1-6 G1 G2 G3 G4 G5 G6 G1-2 G3 Reverend Green G1-6
  16. 16. Professor Plum P1-2 P3-4 P1 P2 P3 P4 P5 P1-5 B1 B2Mainline B1 B2 P1-5 B1 B2 G1-6 G1 G2 G3 G4 G5 G6 G1-2 G3 Reverend Green G1-6
  17. 17. Professor Plum P1-2 P3-4 P1 P2 P3 P4 P5 P1-5 B1 B2Mainline B1 B2 P1-5 B1 B2 G1-6 G1 G2 G3 G4 G5 G6 G1-2 G3 Reverend Green G1-6
  18. 18. Professor Plum P1 P2 P3 P4 P4 P1 P2 P3 P4 P5 P1 P3 P4 P5 P2 B2 G3 G1 B1 G2Mainline B1 B2 B1 B2 P4-5 G1 P1-2 G2 P3 G3 G4 G5 G6 G1 G2 G3 G4 G5 G6 Reverend Green G3 G4 G2
  19. 19. Config File some.jsp[featureToggles]wobblyFoobars: true <toggle name=wobblyFoobars>flightyForkHandles: false ... various UI elements </toggle>other.java forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle)
  20. 20. Framework Framework fluid 2.2.12 2.2.12 Pricing engine Pricing engine 1.0.3 2.2.13 1.0.3 static CDS pricing library 1.0.4 1.3.1 1.3.1CDS pricing library 1.3.2
  21. 21. 001_create_initial_tables.sql:CREATE TABLE customer ( id BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, firstname VARCHAR(255), lastname VARCHAR(255));002_add_customer_date_of_birth.sqlALTER TABLE customer ADD COLUMN dateofbirth DATETIME;--//@UNDOALTER TABLE customer DROP COLUMN dateofbirth;
  22. 22. BaselineDatabase
  23. 23. BaselineDatabase
  24. 24. DB MetadataBaseline ApplyDatabase Deltas
  25. 25. DB MetadataBaseline ApplyDatabase Deltas Fail Fast
  26. 26. DB MetadataBaseline Apply Apply Apply Apply Test!Database Deltas Deltas Deltas Deltas
  27. 27. app v205 app v230 app v234 app v241 app v248 compatible with db compatible with db compatible with db compatible with db compatible with db v13 and v14 v14 v14 v14 and 15 v15 DB DB DBversion version version 13 14 15 app v205 migrate app v230 app v234 app v234 migrate app v248 deployed db to v14 deployed deployed deployed db to v15 deployed Time
  28. 28. v1.1 v1.1 v1.1
  29. 29. v1.1 v1.1 v1.1
  30. 30. v1.1 v1.1 v1.1v1.2 v1.2 v1.2
  31. 31. v1.1 v1.1 v1.1v1.2 v1.2 v1.2
  32. 32. v1.1 v1.1 v1.1v1.2 v1.2 v1.2
  33. 33. ?

×