continuously delivering - pushon · 2019-06-03 · say goodbye to long and tense integrations...
TRANSCRIPT
![Page 1: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/1.jpg)
James Cowie
Senior Magento Engineer @ Magento
Magento 2016 Master
Continuously delivering
![Page 2: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/2.jpg)
Continuous Integration
![Page 3: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/3.jpg)
Say goodbye to long and tense integrationsIncrease visibility which enables greater communicationCatch issues fast and nip them in the budProceed in the confidence you’re building on a solid foundationReduce integration problems allowing delivery of software more rapidly
Benefits
![Page 4: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/4.jpg)
![Page 5: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/5.jpg)
Continuous Delivery / Deployment
![Page 6: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/6.jpg)
short cyclesSprints
reliably releasedWorking software over comprehensive documentation
faster .. FrequentlyResponding to change over following a plan
![Page 7: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/7.jpg)
Accelerated Time to MarketBuilding the Right ProductImproved Productivity and EfficiencyReliable ReleasesImproved Product QualityImproved Customer Satisfaction
Benefits
![Page 8: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/8.jpg)
Code done Unit Tests IntegrateAcceptance Tests
Deploy toproduction
Code done Unit Tests IntegrateAcceptance Tests
Deploy toproduction
Manual
Continuous Delivery
Continuous Deployment
Auto
![Page 9: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/9.jpg)
Development process so far.
![Page 10: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/10.jpg)
Pipeline Servers
![Page 11: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/11.jpg)
QA
![Page 12: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/12.jpg)
QA UAT
![Page 13: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/13.jpg)
QA UAT Live
![Page 14: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/14.jpg)
QA UAT Live
![Page 15: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/15.jpg)
QA UAT Live
RELEASE
![Page 16: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/16.jpg)
QA UAT Live
RELEASE RELEASE
![Page 17: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/17.jpg)
QA UAT Live
RELEASE RELEASE
![Page 18: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/18.jpg)
QA UAT Live
RELEASE RELEASE
![Page 19: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/19.jpg)
What is time ?
![Page 20: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/20.jpg)
https://en.wikipedia.org/wiki/Scrum_(software_development)
![Page 21: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/21.jpg)
QA UAT Live
RELEASE RELEASE
2 Weeks ?
![Page 22: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/22.jpg)
How does this look in source control
![Page 23: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/23.jpg)
QA UAT Live
Develop
Release Candidate
Master
![Page 24: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/24.jpg)
QA UAT Live
Develop
Release Candidate
Master
![Page 25: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/25.jpg)
![Page 26: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/26.jpg)
Develop
Release Candidate
Master
![Page 27: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/27.jpg)
![Page 28: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/28.jpg)
Increased Time to deploy
![Page 29: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/29.jpg)
What did I want improved ?
![Page 30: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/30.jpg)
FeedbackFeedback Feedback
![Page 31: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/31.jpg)
Time started
Time Feedback
given = Feedback time
![Page 32: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/32.jpg)
Cognitive load & Human retention
Project flow
Validation
Feedback Time
![Page 33: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/33.jpg)
Feedback from who ?
QA Team
Team Lead StakeholderReal User
![Page 34: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/34.jpg)
WhyInternal Feedback External Feedback
![Page 35: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/35.jpg)
Why
Internal Feedback
Code analysis
Acceptance Criteria
Exploratory Testing
Regression Testing
![Page 36: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/36.jpg)
Why
External Feedback
Are people using this feature?
How are people using this feature?
Is this feature solving a problem?
How does it look?
![Page 37: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/37.jpg)
QA UAT
2 weeks
![Page 38: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/38.jpg)
UAT LIVE
2 weeks
![Page 39: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/39.jpg)
What options did I see?
![Page 40: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/40.jpg)
Feature Branches
![Page 41: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/41.jpg)
![Page 42: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/42.jpg)
Always deployable Feature completeTests
The rules of feature branching
![Page 43: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/43.jpg)
feature.project.pipeline.com
feature2.project.pipeline.com
Mainline Release V1
Live
QA.project.pipeline.com
![Page 44: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/44.jpg)
Manual process
Feature branch rot
Disadvantages Advantages
No reverse merging
Clear to see features
![Page 45: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/45.jpg)
![Page 46: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/46.jpg)
Disable / Enable
Logical switch
What are feature toggles ?
![Page 47: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/47.jpg)
Mainline Live
Feature toggle disabled
Feature toggle disabled
![Page 48: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/48.jpg)
![Page 49: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/49.jpg)
//$MyNewFeature->run();
Super simple toggle ( git commit –m ”Disable/Enable feature X”
![Page 50: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/50.jpg)
<?php…if ($someFeature)->isEnabled() {…..}…
![Page 51: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/51.jpg)
Packages
![Page 52: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/52.jpg)
Meet “Qandidate\Toggle”
![Page 53: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/53.jpg)
<?php// Create the ToggleManager$manager = new ToggleManager(new InMemoryCollection());
// A toggle that will be active when the user id is less than 42$operator = new LessThan(42);$condition = new OperatorCondition('user_id', $operator);$toggle = new Toggle('toggling', array($condition));
// Add the toggle to the manager$manager->add($toggle);
// Create and check a new context for a user with id 42$context = new Context();$context->set('user_id', 42);var_dump($manager->active('toggling', $context)); // false
![Page 54: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/54.jpg)
<?php// Create the ToggleManager$manager = new ToggleManager(new InMemoryCollection());
// A toggle that will be active when the user id is less than 42$operator = new LessThan(42);$condition = new OperatorCondition('user_id', $operator);$toggle = new Toggle('toggling', array($condition));
// Add the toggle to the manager$manager->add($toggle);
// Create and check a new context for a user with id 42$context = new Context();$context->set('user_id', 42);var_dump($manager->active('toggling', $context)); // false
![Page 55: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/55.jpg)
<?php// Create the ToggleManager$manager = new ToggleManager(new InMemoryCollection());
// A toggle that will be active when the user id is less than 42$operator = new LessThan(42);$condition = new OperatorCondition('user_id', $operator);$toggle = new Toggle('toggling', array($condition));
// Add the toggle to the manager$manager->add($toggle);
// Create and check a new context for a user with id 42$context = new Context();$context->set('user_id', 42);var_dump($manager->active('toggling', $context)); // false
![Page 56: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/56.jpg)
<?php// Create the ToggleManager$manager = new ToggleManager(new InMemoryCollection());
// A toggle that will be active when the user id is less than 42$operator = new LessThan(42);$condition = new OperatorCondition('user_id', $operator);$toggle = new Toggle('toggling', array($condition));
// Add the toggle to the manager$manager->add($toggle);
// Create and check a new context for a user with id 42$context = new Context();$context->set('user_id', 42);var_dump($manager->active('toggling', $context)); // false
![Page 57: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/57.jpg)
Adding toggles ?
![Page 58: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/58.jpg)
$ curl -XPUT 127.0.0.1:8000/toggles/search_beta -d '{ "name" : "search_beta", "status" : "conditionally-active", "conditions" : [
{ "name" : "operator-condition", "key" : "user_id", "operator" : {
"name" : "in-set", "values" : [42, 1337]
} }
]}'
![Page 59: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/59.jpg)
https://github.com/qandidate-labs/qandidate-toggle-ui
![Page 60: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/60.jpg)
Services
![Page 61: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/61.jpg)
Feature toggle dashboardMany rules for togglesStatistics
![Page 62: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/62.jpg)
Technical DebtExtra code and configurationJS / CSS ?
Disadvantages
![Page 63: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/63.jpg)
Deploy all the thingsA-B TestingEasy revert Client engagement in deploy
Benefits
![Page 64: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/64.jpg)
End to end workflow
![Page 65: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/65.jpg)
PHPMDPHPLintPHPCPDPHPUnit
![Page 66: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/66.jpg)
Peer review
![Page 67: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/67.jpg)
Build release candidate
![Page 68: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/68.jpg)
Static code analysis
![Page 69: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/69.jpg)
Deploy to first pipeline
![Page 70: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/70.jpg)
Testing
![Page 71: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/71.jpg)
Go live
![Page 72: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/72.jpg)
My proposed workflow
![Page 73: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/73.jpg)
Plan
Code
Build
TestDeploy
![Page 74: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/74.jpg)
BDDUser StoriesBusiness ValueExample WorkshopsFeature TogglesFeature BranchesTDD
Our solution
![Page 75: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/75.jpg)
Starts the conversationValueIntentThe Why!
BDD ( Behaviour Driven Development )
![Page 76: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/76.jpg)
Becomes Acceptance CriteriaThought about scenarios Validation of the work
User Stories
![Page 77: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/77.jpg)
What value does this story have.What does it impact How measurable is the story
Business Value
![Page 78: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/78.jpg)
Final chance to “pull a story” Understanding Readiness for development
Example Workshop
![Page 79: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/79.jpg)
Feature Toggles
![Page 80: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/80.jpg)
feature/PROJ-NumberDelete once passed reviewShort lived
Feature Branches
![Page 81: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/81.jpg)
No feature without • Behat• PHPSpec• * Some PHPUnit for M2 *
TDD ( Test Driven Development )
![Page 82: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/82.jpg)
How?
![Page 83: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/83.jpg)
Github + Git
![Page 84: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/84.jpg)
![Page 85: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/85.jpg)
Sysconfig for toggle
Helper module for validation
Magento 2
![Page 86: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/86.jpg)
Static Analysis
Running of tests
Deployment mechanism
Scrutinizer
![Page 87: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/87.jpg)
![Page 88: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/88.jpg)
Deploying ?
![Page 89: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/89.jpg)
![Page 90: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/90.jpg)
deployment:-
branch: developcommands:
- { command: '(cap qa deploy)', idle_timeout: 600 }
-
branch: mastercommands:
- sudo apt-get install -y sshpass- { command: '(cap uat deploy)', idle_timeout: 600 }
-
branch: release/*
commands:- sudo apt-get install -y sshpass- { command: '(cap prod deploy)', idle_timeout: 600 }
![Page 91: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/91.jpg)
State
![Page 92: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/92.jpg)
Every change needs a script
MigrationsMagento setup scripts.
![Page 93: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/93.jpg)
Every environments needs a config
![Page 94: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/94.jpg)
Environment variablesEnvironment config files
![Page 95: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/95.jpg)
![Page 96: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/96.jpg)
https://github.com/davidalger/capistrano-magento2
![Page 97: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/97.jpg)
gem install capistrano-magento2
mkdir -p tools/cap
![Page 98: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/98.jpg)
# Load DSL and set up stagesrequire 'capistrano/setup'
# Load Magento deployment tasksrequire 'capistrano/magento2/deploy'
# Load custom tasks from `lib/capistrano/tasks` if you have any definedDir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
![Page 99: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/99.jpg)
cap staging deploy
![Page 100: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/100.jpg)
Other services and platforms
![Page 101: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/101.jpg)
Many More..
![Page 102: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/102.jpg)
Further reading
![Page 103: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/103.jpg)
![Page 104: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/104.jpg)
![Page 105: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/105.jpg)
![Page 106: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/106.jpg)
![Page 107: Continuously delivering - PushON · 2019-06-03 · Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them](https://reader033.vdocuments.net/reader033/viewer/2022042318/5f07ec067e708231d41f6e2e/html5/thumbnails/107.jpg)
Q and A
@jcowieJamescowie (github)