The Continuous Delivery Value - Codemotion Milano 2014
-
Upload
david-funaro -
Category
Technology
-
view
344 -
download
1
description
Transcript of The Continuous Delivery Value - Codemotion Milano 2014
![Page 1: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/1.jpg)
David Funaro !Crash dei sistemi, Migrazioni fallite, aggiornamenti interrotti: sono tutte problematiche che nessuno vorrebbe mai incontrare durante l'introduzione di nuove funzionalità nel proprio applicativo (deploy) e ... la speranza non basta. L'attività di deploy è importante tanto quanto quelle che la precedono. La Continuous Delivery è un insieme di strumenti e metodologie che permetteranno di rendere i rilasci a basso rischio, economici, veloci, predicibili e ... sonni tranquilli. !@ingdavidino - Dnsee
MILAN november 28th/29th 2014
The Continuous Delivery Value
![Page 2: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/2.jpg)
MILAN november 28th/29th 2014 – David Funaro
The Continuous Delivery
Value
![Page 3: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/3.jpg)
MILAN november 28th/29th 2014 – David Funaro
David Funaro
@ingdavidino
davidfunaro.com
![Page 4: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/4.jpg)
MILAN november 28th/29th 2014 – David Funaro
First Release
![Page 5: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/5.jpg)
MILAN november 28th/29th 2014 – David Funaro
Release Day
![Page 6: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/6.jpg)
MILAN november 28th/29th 2014 – David Funaro
WRONG WAY
This talk is for you…
![Page 7: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/7.jpg)
MILAN november 28th/29th 2014 – David Funaro
Overview
![Page 8: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/8.jpg)
MILAN november 28th/29th 2014 – David Funaro
Facts
release new features as soon as possible
IT Business
keep system up and running
![Page 9: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/9.jpg)
MILAN november 28th/29th 2014 – David Funaro
… with CD
ITBu
sine
ss
![Page 10: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/10.jpg)
MILAN november 28th/29th 2014 – David Funaro
RELEASE
FEEDBACK
new features monetize bug
performance layout
![Page 11: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/11.jpg)
MILAN november 28th/29th 2014 – David Funaro
RELEASE
? Miss Release Price ?
€
![Page 12: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/12.jpg)
MILAN november 28th/29th 2014 – David Funaro
Reaction MetricsC
hang
e
REL
EASE
![Page 13: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/13.jpg)
MILAN november 28th/29th 2014 – David Funaro
Reaction MetricsC
hang
e
REL
EASE
Time
Security
Skills
Cost
Predictable
Stress
Repeatability
![Page 14: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/14.jpg)
MILAN november 28th/29th 2014 – David Funaro
• How many time you need to release software
Time
![Page 15: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/15.jpg)
MILAN november 28th/29th 2014 – David Funaro
• Everything will be ok ?
• Can i be sure that every needed step will be done ?
• Exceptions, are managed ?
• Data migration goes well ?
• Can i go back (rollback) ?
Security
![Page 16: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/16.jpg)
MILAN november 28th/29th 2014 – David Funaro
• Have, the selected person, all the skill needed to terminate the procedure ?
• What about his behavior in some exception flow case
Skills
![Page 17: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/17.jpg)
MILAN november 28th/29th 2014 – David Funaro
• How many people you need ?
• For how many time ?
• Other Resources ?
Cost
![Page 18: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/18.jpg)
MILAN november 28th/29th 2014 – David Funaro
• are you able to indicate how much time will care ?
Predictable
![Page 19: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/19.jpg)
MILAN november 28th/29th 2014 – David Funaro
• What about the stress
• stress => error-prone
Stress
![Page 20: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/20.jpg)
MILAN november 28th/29th 2014 – David Funaro
• Just finish a deploy. Software released. A bug is found. You have to re-start the deploy procedure
Repeatability
![Page 21: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/21.jpg)
MILAN november 28th/29th 2014 – David Funaro
Reaction Metrics
REL
EASE
Production
![Page 22: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/22.jpg)
MILAN november 28th/29th 2014 – David Funaro
Reaction Metrics
REL
EASE
Production
Time
Security
Skills
Cost
Predictable
Stress
Repeatability
![Page 23: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/23.jpg)
MILAN november 28th/29th 2014 – David Funaro
Reaction Metrics
REL
EASE
Production
Staging
Time
Security
Skills
Cost
Predictable
Stress
Repeatability
![Page 24: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/24.jpg)
MILAN november 28th/29th 2014 – David Funaro
Reaction Metrics
REL
EASE
Production
Testing
Staging
Time
Security
Skills
Cost
Predictable
Stress
Repeatability
![Page 25: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/25.jpg)
MILAN november 28th/29th 2014 – David Funaro
No Automation Process ?
![Page 26: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/26.jpg)
MILAN november 28th/29th 2014 – David Funaro
Lots of things to consider
• Code evolution
• Code dependency management
• System evolution management
• Data management and architecture
• Component management
![Page 27: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/27.jpg)
MILAN november 28th/29th 2014 – David Funaro
Software Release
• Low Risk
• Cheap
• Frequent
• Rapid
• Predictable
... should be
Continuous Delivery
![Page 28: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/28.jpg)
MILAN november 28th/29th 2014 – David Funaro
CD Requirements
• Source Code Management
• Continuous Integration Server
• Automated Deploy
• Real Time Alerting
• Root Cause Analysis
![Page 29: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/29.jpg)
MILAN november 28th/29th 2014 – David Funaro
CD FLOW
Commit /push
Automated Deploy
Procedure
Notify TeamBasic Scenario
Real Time Alerting
Automated Testing
RELEASE
![Page 30: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/30.jpg)
MILAN november 28th/29th 2014 – David Funaro
CD FLOW
Commit /push
Automated Deploy
Procedure
Notify TeamBasic Scenario
Real Time Alerting
Automated Testing
RELEASE
![Page 31: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/31.jpg)
MILAN november 28th/29th 2014 – David Funaro
RELEASE
![Page 32: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/32.jpg)
MILAN november 28th/29th 2014 – David Funaro
Deploy Pipeline
Commit StageCompile UnitTest Analysis
ReleaseAutomated acceptance
testign
Automated capacity testing
Manual TestingShowcasesExplorarory
testing
example
![Page 33: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/33.jpg)
MILAN november 28th/29th 2014 – David Funaro
ContinuousDelivery
Tools
MethodologiesPractices
Cautions
![Page 34: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/34.jpg)
MILAN november 28th/29th 2014 – David Funaro
CD Anti-patterns• Deploy software manually
• Manual Configuration
• First Deploy when development is complete
• … to a production-like Environment
![Page 35: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/35.jpg)
MILAN november 28th/29th 2014 – David Funaro
CD Benefits• Empower Team
• Reducing Errors
• Lowering Stress
• Deployment Flexibility
• Practice Make Perfect
![Page 36: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/36.jpg)
MILAN november 28th/29th 2014 – David Funaro
Keep Everything in version control
Automate Almost Everything
If it hurts, do it more frequently
Done means released
Build quality in
Principles
![Page 37: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/37.jpg)
MILAN november 28th/29th 2014 – David Funaro
SECTION ISource Code Management
![Page 38: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/38.jpg)
MILAN november 28th/29th 2014 – David Funaro
The problem
i sent you a mail with the last change
... are you shure ?
i can’t find the new file ?!?
![Page 39: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/39.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 40: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/40.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 41: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/41.jpg)
MILAN november 28th/29th 2014 – David Funaro
SCM : What is it ?
3
57
10
Repository
![Page 42: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/42.jpg)
MILAN november 28th/29th 2014 – David Funaro
Check-out
Local
Pull
8
29
![Page 43: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/43.jpg)
MILAN november 28th/29th 2014 – David Funaro
Check-out
Local
Pull
8
2
9
![Page 44: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/44.jpg)
MILAN november 28th/29th 2014 – David Funaro
Check-in
Push
Local
3
![Page 45: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/45.jpg)
MILAN november 28th/29th 2014 – David Funaro
Check-in
Push
Local
34
![Page 46: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/46.jpg)
MILAN november 28th/29th 2014 – David Funaro
SCM : What it does ?
• Keeping multiple file version
• Collaboration
![Page 47: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/47.jpg)
David Funaro !Crash dei sistemi, Migrazioni fallite, aggiornamenti interrotti: sono tutte problematiche che nessuno vorrebbe mai incontrare durante l'introduzione di nuove funzionalità nel proprio applicativo (deploy) e ... la speranza non basta. L'attività di deploy è importante tanto quanto quelle che la precedono. La Continuous Delivery è un insieme di strumenti e metodologie che permetteranno di rendere i rilasci a basso rischio, economici, veloci, predicibili e ... sonni tranquilli. !@ingdavidino - Dnsee
MILAN november 28th/29th 2014
CHECK POINT
![Page 48: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/48.jpg)
MILAN november 28th/29th 2014 – David Funaro
Application Evolution
![Page 49: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/49.jpg)
MILAN november 28th/29th 2014 – David Funaro
Collaboration
![Page 50: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/50.jpg)
MILAN november 28th/29th 2014 – David Funaro
isn’t just for source code
Cautions
you need everything required to re-create your application’s binaries and the environments in
which they run.
![Page 51: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/51.jpg)
MILAN november 28th/29th 2014 – David Funaro
Best Practice
• Little Commit
• Frequent Commit
• Consistent commit
• Use Meaningful Commit message
![Page 52: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/52.jpg)
MILAN november 28th/29th 2014 – David Funaro
Different Products
![Page 53: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/53.jpg)
MILAN november 28th/29th 2014 – David Funaro
SECTION IIContinuous Integration
![Page 54: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/54.jpg)
MILAN november 28th/29th 2014 – David Funaro
Ops
INTEGRATION PROBLEM
(after one commit )
After your commit nothing works anymore
But ... “was working on my computer”
![Page 55: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/55.jpg)
MILAN november 28th/29th 2014 – David Funaro
Ops (after deploy in prod)
INTEGRATION PROBLEM
It was working on the stage environment !!!
![Page 56: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/56.jpg)
MILAN november 28th/29th 2014 – David Funaro
• sleepless nights before demo ... bug just after release
•
sleepless nights before demo ... bug just after release
![Page 57: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/57.jpg)
MILAN november 28th/29th 2014 – David Funaro
Resolve defectsC
ost
Analysis Design Implementation Testing Release
![Page 58: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/58.jpg)
MILAN november 28th/29th 2014 – David Funaro
t
integration
Regression
Working
Broken
![Page 59: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/59.jpg)
MILAN november 28th/29th 2014 – David Funaro
t
integration
Regression
Working
Broken
Effort
![Page 60: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/60.jpg)
MILAN november 28th/29th 2014 – David Funaro
Good Solution
In software development the components integration need to be tested continuosly...
!
in order to find inconsistenciesas soon as possible
![Page 61: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/61.jpg)
MILAN november 28th/29th 2014 – David Funaro
Continuous Integration
![Page 62: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/62.jpg)
MILAN november 28th/29th 2014 – David Funaro
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day.
Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.
Martin Fowler
![Page 63: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/63.jpg)
MILAN november 28th/29th 2014 – David Funaro
Requirements
Source Code Management
![Page 64: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/64.jpg)
MILAN november 28th/29th 2014 – David Funaro
Requirements
![Page 65: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/65.jpg)
MILAN november 28th/29th 2014 – David Funaro
Agile-Testing-Quadrants
![Page 66: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/66.jpg)
MILAN november 28th/29th 2014 – David Funaro
CI Flow
![Page 67: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/67.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
CI Flow
![Page 68: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/68.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
Checkout last Commit
CI Flow
Build and Tests Process
![Page 69: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/69.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
Checkout last Commit
CI Flow
Build and Tests Process
![Page 70: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/70.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
F
F
Checkout last Commit
CI Flow
Build and Tests Process
![Page 71: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/71.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
F
F
F
F
F
Checkout last Commit
CI Flow
Build and Tests Process
![Page 72: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/72.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
F
F
F
F
FF
F
Checkout last Commit
CI Flow
Build and Tests Process
![Page 73: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/73.jpg)
MILAN november 28th/29th 2014 – David Funaro
F
F
F
F
F
FF
F
Checkout last Commit
CI Flow
Build and Tests Process
![Page 74: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/74.jpg)
MILAN november 28th/29th 2014 – David Funaro
Build & Test
✓ Process creating executable code
✓ Unit test
✓ Quality criteria
✓ Functional Test
✓ Non Functional Test
Valid Syntax Compile
Code behavior
Code coverage, Mass detector
Business Acceptance Criteria
Application performance
PASS
![Page 75: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/75.jpg)
MILAN november 28th/29th 2014 – David Funaro
CI - Reduce Risk
• Say goodbye to long and tense integrations
• Increase visibility which enables greater communication
• Catch issues fast and nip them in the bud
• Spend less time debugging and more time adding features
• Proceed in the confidence you’re building on a solid foundation
• Stop waiting to find out if your code’s going to work
• Reduce integration problems allowing you to deliver software more rapidly
![Page 76: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/76.jpg)
MILAN november 28th/29th 2014 – David Funaro
CI - Output
System Status Documentation/Artifacts
Quality Check
![Page 77: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/77.jpg)
MILAN november 28th/29th 2014 – David Funaro
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.”
Martin Fowler
![Page 78: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/78.jpg)
MILAN november 28th/29th 2014 – David Funaro
Ci - Best practice
• CI server === Production Server
• Integrate it from the first commit
• Find best way to get notified
![Page 79: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/79.jpg)
MILAN november 28th/29th 2014 – David Funaro
Immediate feedback of the health of the system
![Page 80: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/80.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 81: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/81.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 82: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/82.jpg)
MILAN november 28th/29th 2014 – David Funaro
Ci - software
... more and more
![Page 83: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/83.jpg)
MILAN november 28th/29th 2014 – David Funaro
SECTION IIIAutomated Deploy
![Page 84: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/84.jpg)
MILAN november 28th/29th 2014 – David Funaro
Deployment
“all the activities that make a software system available for use”
Wikipedia
![Page 85: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/85.jpg)
MILAN november 28th/29th 2014 – David Funaro
Deploy
A Critical part of the application life-cycle
![Page 86: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/86.jpg)
MILAN november 28th/29th 2014 – David Funaro
RELEASE
Real ?
![Page 87: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/87.jpg)
MILAN november 28th/29th 2014 – David Funaro
RELEASE
Real ?
RELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASEfeedback
![Page 88: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/88.jpg)
MILAN november 28th/29th 2014 – David Funaro
• Low Risk
• Cheap
• Frequent
• Rapid
• Predictable
Deployment
![Page 89: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/89.jpg)
MILAN november 28th/29th 2014 – David Funaro
Low Risk
• Exception catched
• Rollback
• Data on secure
![Page 90: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/90.jpg)
MILAN november 28th/29th 2014 – David Funaro
Cheap
• no more than one click
• no more than one person
• no skilled person
![Page 91: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/91.jpg)
MILAN november 28th/29th 2014 – David Funaro
Frequent
• to get feedback
![Page 92: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/92.jpg)
MILAN november 28th/29th 2014 – David Funaro
Rapid
![Page 93: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/93.jpg)
MILAN november 28th/29th 2014 – David Funaro
Predictable
![Page 94: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/94.jpg)
MILAN november 28th/29th 2014 – David Funaro
Incomplete ways
![Page 95: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/95.jpg)
MILAN november 28th/29th 2014 – David Funaro
is that a deploy procedure ?
$ git pull origin master
$ svn update
Remote DesktopVersioning update
![Page 96: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/96.jpg)
MILAN november 28th/29th 2014 – David Funaro
Problems• Incomplete
• Manual procedure
• Slow
• Server Downtime
• No data migration
• No Rollback
![Page 97: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/97.jpg)
MILAN november 28th/29th 2014 – David Funaro
Automated Deployment Goals
![Page 98: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/98.jpg)
MILAN november 28th/29th 2014 – David Funaro
one click deploy
Deploy
Automated Deployment Goals
![Page 99: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/99.jpg)
MILAN november 28th/29th 2014 – David Funaro
AnyTime AnyWhere AnyOne
Automated Deployment Goals
![Page 100: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/100.jpg)
MILAN november 28th/29th 2014 – David Funaro
Rollback
Automated Deployment Goals
![Page 101: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/101.jpg)
MILAN november 28th/29th 2014 – David Funaro
no downtime
Automated Deployment Goals
![Page 102: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/102.jpg)
MILAN november 28th/29th 2014 – David Funaro
Scalable
Frontend 1 Frontend 1I Frontend III
Balancer
Automated Deployment Goals
![Page 103: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/103.jpg)
MILAN november 28th/29th 2014 – David Funaro
Deployment Elements• Executable Code
• Dependency Management
• Software configuration
• Infrastructure Management
• Data Migrations
• Manage Cache
![Page 104: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/104.jpg)
MILAN november 28th/29th 2014 – David Funaro
Executable code (SCM)
![Page 105: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/105.jpg)
MILAN november 28th/29th 2014 – David Funaro
Dependency Management
![Page 106: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/106.jpg)
MILAN november 28th/29th 2014 – David Funaro
How you keep updated your libraries dependencies ?
to get the feature 103 done, i use library XXX
ok, i’ll note it here ...
to get the feature 103 done, i use library XXX
OK
![Page 107: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/107.jpg)
MILAN november 28th/29th 2014 – David Funaro
PIP
![Page 108: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/108.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 109: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/109.jpg)
MILAN november 28th/29th 2014 – David Funaro
Data Migration
![Page 110: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/110.jpg)
MILAN november 28th/29th 2014 – David Funaro
What if, after your first production deployment, you have to change the Entity Relationship ?
![Page 111: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/111.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 112: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/112.jpg)
MILAN november 28th/29th 2014 – David Funaro
Infrastructure Management
![Page 113: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/113.jpg)
MILAN november 28th/29th 2014 – David Funaro
How you keep updated your OS componets/libraries ?
to get the feature 103 done, i use library XXX, that require
the module 288
ok, i’ll note it here ...
to get the feature 103 done, i use library XXX, that require
the module 903OK
![Page 114: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/114.jpg)
MILAN november 28th/29th 2014 – David Funaro
A way to setup your environment
![Page 115: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/115.jpg)
MILAN november 28th/29th 2014 – David Funaro
Write Configuration
Script
![Page 116: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/116.jpg)
MILAN november 28th/29th 2014 – David Funaro
Write Configuration
Script
Versionable
![Page 117: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/117.jpg)
MILAN november 28th/29th 2014 – David Funaro
Environment Management
![Page 118: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/118.jpg)
MILAN november 28th/29th 2014 – David Funaro
Production TestingStaging
![Page 119: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/119.jpg)
MILAN november 28th/29th 2014 – David Funaro
Manual - Follow recipe
• Integrity problems
• Problem with exception handling
• Basic Skills requirements
• Time consuming - expensive
• Error - prone
• Stress
![Page 120: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/120.jpg)
MILAN november 28th/29th 2014 – David Funaro
Build a custom Script
• Do a backup
• Create new directory
• Update the code
• Update dependencies
• Run migration data
• Update Environements
![Page 121: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/121.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 122: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/122.jpg)
MILAN november 28th/29th 2014 – David Funaro
Existing Tools
Fabric
... and more others
![Page 123: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/123.jpg)
MILAN november 28th/29th 2014 – David Funaro
SECTION IVRealtime Alerting
![Page 124: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/124.jpg)
MILAN november 28th/29th 2014 – David Funaro
Waiting for customers feedback ?
![Page 125: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/125.jpg)
MILAN november 28th/29th 2014 – David Funaro
Waiting for customers feedback ?
![Page 126: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/126.jpg)
MILAN november 28th/29th 2014 – David Funaro
Real Time Monitoring
• Application health
• System heatlh
• Services health
![Page 127: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/127.jpg)
MILAN november 28th/29th 2014 – David Funaro
Some tools
Sentry
Log - Exception
Errors Server Monitoring
Application Monitoring
![Page 128: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/128.jpg)
MILAN november 28th/29th 2014 – David Funaro
Example - NE
![Page 129: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/129.jpg)
MILAN november 28th/29th 2014 – David Funaro
Example - Sentry
![Page 130: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/130.jpg)
MILAN november 28th/29th 2014 – David Funaro
Keep Everything in version control
![Page 131: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/131.jpg)
MILAN november 28th/29th 2014 – David Funaro
Keep Everything in version control
Build quality in
Done means released
If it hurts, do it more frequently
Automate Almost Everything
![Page 132: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/132.jpg)
MILAN november 28th/29th 2014 – David Funaro
![Page 133: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/133.jpg)
MILAN november 28th/29th 2014 – David Funaro
David Funaro
@ingdavidinodavidfunaro.com
Thanks
![Page 134: The Continuous Delivery Value - Codemotion Milano 2014](https://reader034.fdocuments.us/reader034/viewer/2022042816/5598ec471a28ab6f118b4634/html5/thumbnails/134.jpg)
MILAN november 28th/29th 2014 – David Funaro