SlideShare a Scribd company logo
1 of 134
Download to read offline
MILAN november 28th/29th 2014 
The Continuous Delivery Value 
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 – David Funaro 
The 
Continuous Delivery 
Value
MILAN november 28th/29th 2014 – David Funaro 
David Funaro 
davidfunaro.com 
@ingdavidino
MILAN november 28th/29th 2014 – David Funaro 
First Release
MILAN november 28th/29th 2014 – David Funaro 
Release Day
MILAN november 28th/29th 2014 – David Funaro 
WRONG WAY 
This talk is for you…
MILAN november 28th/29th 2014 – David Funaro 
Overview
MILAN november 28th/29th 2014 – David Funaro 
Facts 
IT Business 
release new features as 
soon as possible 
keep system up and running
MILAN november 28th/29th 2014 – David Funaro 
… with CD 
IT 
Business
MILAN november 28th/29th 2014 – David Funaro 
RELEASE 
FEEDBACK 
new features monetize bug 
performance layout
MILAN november 28th/29th 2014 – David Funaro 
? Miss Release Price ? 
RELEASE 
€
MILAN november 28th/29th 2014 – David Funaro 
Reaction Metrics 
Change 
RELEASE
MILAN november 28th/29th 2014 – David Funaro 
Reaction Metrics 
Change 
RELEASE 
Time 
Security 
Skills 
Cost 
Predictable 
Stress 
Repeatability
MILAN november 28th/29th 2014 – David Funaro 
Time 
• How many time you need to release 
software
MILAN november 28th/29th 2014 – David Funaro 
Security 
• 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) ?
MILAN november 28th/29th 2014 – David Funaro 
Skills 
• Have, the selected person, all the skill 
needed to terminate the procedure ? 
• What about his behavior in some 
exception flow case
MILAN november 28th/29th 2014 – David Funaro 
Cost 
• How many people you need ? 
• For how many time ? 
• Other Resources ?
MILAN november 28th/29th 2014 – David Funaro 
Predictable 
• are you able to indicate how much time will 
care ?
MILAN november 28th/29th 2014 – David Funaro 
Stress 
• What about the stress 
• stress => error-prone
MILAN november 28th/29th 2014 – David Funaro 
Repeatability 
• Just finish a deploy. Software released. A bug 
is found. You have to re-start the deploy 
procedure
MILAN november 28th/29th 2014 – David Funaro 
Reaction Metrics 
RELEASE 
Production
MILAN november 28th/29th 2014 – David Funaro 
Reaction Metrics 
RELEASE 
Production 
Time 
Security 
Skills 
Cost 
Predictable 
Stress 
Repeatability
MILAN november 28th/29th 2014 – David Funaro 
Reaction Metrics 
RELEASE 
Staging 
Production 
Time 
Security 
Skills 
Cost 
Predictable 
Stress 
Repeatability
MILAN november 28th/29th 2014 – David Funaro 
Reaction Metrics 
RELEASE 
Staging 
Production 
Testing 
Time 
Security 
Skills 
Cost 
Predictable 
Stress 
Repeatability
MILAN november 28th/29th 2014 – David Funaro 
No Automation Process ?
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
MILAN november 28th/29th 2014 – David Funaro 
Software Release 
• Low Risk 
• Cheap 
• Frequent 
• Rapid 
• Predictable 
... should be 
Continuous Delivery
MILAN november 28th/29th 2014 – David Funaro 
CD Requirements 
• Source Code Management 
• Continuous Integration Server 
• Automated Deploy 
• Real Time Alerting 
• Root Cause Analysis
MILAN november 28th/29th 2014 – David Funaro 
CD FLOW 
Commit / 
push 
Automated 
Deploy 
Procedure 
Basic Scenario Notify Team 
Real Time 
Alerting 
Automated 
Testing 
RELEASE
MILAN november 28th/29th 2014 – David Funaro 
CD FLOW 
Commit / 
push 
Automated 
Deploy 
Procedure 
Basic Scenario Notify Team 
Real Time 
Alerting 
Automated 
Testing 
RELEASE
MILAN november 28th/29th 2014 – David Funaro 
RELEASE
MILAN november 28th/29th 2014 – David Funaro 
Deploy Pipeline 
Commit Stage 
Compile 
UnitTest 
Analysis 
Release 
Automated 
acceptance 
testign 
Automated 
capacity 
testing 
example 
Manual Testing 
Showcases 
Explorarory 
testing
MILAN november 28th/29th 2014 – David Funaro 
Tools 
Continuous 
Delivery 
Practices Methodologies 
Cautions
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
MILAN november 28th/29th 2014 – David Funaro 
CD Benefits 
• Empower Team 
• Reducing Errors 
• Lowering Stress 
• Deployment Flexibility 
• Practice Make Perfect
MILAN november 28th/29th 2014 – David Funaro 
Principles 
Keep Everything in version control 
Automate Almost Everything 
If it hurts, do it more frequently 
Done means released 
Build quality in
MILAN november 28th/29th 2014 – David Funaro 
SECTION I 
Source Code Management
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 ?!?
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro 
SCM : What is it ? 
3 
5 
7 
10 
Repository
MILAN november 28th/29th 2014 – David Funaro 
Check-out 
Local 
Pull 
8 
29
MILAN november 28th/29th 2014 – David Funaro 
Check-out 
2 
9 
Local 
Pull 
8
MILAN november 28th/29th 2014 – David Funaro 
Check-in 
Push 
Local 
3
MILAN november 28th/29th 2014 – David Funaro 
Check-in 
Push 
Local 
34
MILAN november 28th/29th 2014 – David Funaro 
SCM : What it does ? 
• Keeping multiple file version 
• Collaboration
MILAN november 28th/29th 2014 
CHECK POINT 
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 – David Funaro 
Application Evolution
MILAN november 28th/29th 2014 – David Funaro 
Collaboration
MILAN november 28th/29th 2014 – David Funaro 
Cautions 
isn’t just for source code 
you need everything required to re-create your 
application’s binaries and the environments in 
which they run.
MILAN november 28th/29th 2014 – David Funaro 
Best Practice 
• Little Commit 
• Frequent Commit 
• Consistent commit 
• Use Meaningful Commit message
MILAN november 28th/29th 2014 – David Funaro 
Different Products
MILAN november 28th/29th 2014 – David Funaro 
SECTION II 
Continuous Integration
MILAN november 28th/29th 2014 – David Funaro 
Ops 
(after one commit ) 
After your commit 
nothing works anymore 
But ... “was working on 
my computer” 
INTEGRATION PROBLEM
MILAN november 28th/29th 2014 – David Funaro 
Ops (after deploy in prod) 
It was working on the 
stage environment !!! 
INTEGRATION PROBLEM
MILAN november 28th/29th 2014 – David Funaro 
• sleepless nights before demo ... bug just after 
release 
• 
sleepless nights before demo ... bug just after release
MILAN november 28th/29th 2014 – David Funaro 
Resolve defects 
Cost 
Analysis Design Implementation Testing Release
MILAN november 28th/29th 2014 – David Funaro 
t 
integration 
Regression 
Working 
Broken
MILAN november 28th/29th 2014 – David Funaro 
t 
integration 
Regression 
Working 
Broken 
Effort
MILAN november 28th/29th 2014 – David Funaro 
Good Solution 
In software development the components 
integration need to be tested continuosly... 
! 
in order to find inconsistencies 
as soon as possible
MILAN november 28th/29th 2014 – David Funaro 
Continuous Integration
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
MILAN november 28th/29th 2014 – David Funaro 
Requirements 
Source Code Management
MILAN november 28th/29th 2014 – David Funaro 
Requirements
MILAN november 28th/29th 2014 – David Funaro 
Agile-Testing-Quadrants
MILAN november 28th/29th 2014 – David Funaro 
CI Flow
MILAN november 28th/29th 2014 – David Funaro 
F 
CI Flow
MILAN november 28th/29th 2014 – David Funaro 
F 
Checkout last Commit 
CI Flow 
Build and Tests Process
MILAN november 28th/29th 2014 – David Funaro 
F 
Checkout last Commit 
CI Flow 
Build and Tests Process
MILAN november 28th/29th 2014 – David Funaro 
F 
F 
F 
Checkout last Commit 
CI Flow 
Build and Tests Process
MILAN november 28th/29th 2014 – David Funaro 
F 
F 
F 
F 
F 
F 
Checkout last Commit 
CI Flow 
Build and Tests Process
MILAN november 28th/29th 2014 – David Funaro 
F 
F 
F 
F 
F 
F 
F F 
Checkout last Commit 
CI Flow 
Build and Tests Process
MILAN november 28th/29th 2014 – David Funaro 
F 
F 
F 
F 
F 
F 
F F 
Checkout last Commit 
CI Flow 
Build and Tests Process
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
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
MILAN november 28th/29th 2014 – David Funaro 
CI - Output 
System Status Documentation/ 
Artifacts 
Quality Check
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
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
MILAN november 28th/29th 2014 – David Funaro 
Immediate feedback of the health of the system
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro 
Ci - software 
... more and more
MILAN november 28th/29th 2014 – David Funaro 
SECTION III Automated Deploy
MILAN november 28th/29th 2014 – David Funaro 
Deployment 
“all the activities that make a software 
system available for use” 
Wikipedia
MILAN november 28th/29th 2014 – David Funaro 
Deploy 
A Critical part of the application life-cycle
MILAN november 28th/29th 2014 – David Funaro 
RELEASE 
Real ?
MILAN november 28th/29th 2014 – David Funaro 
RELEASE 
Real ? 
RRRRREEEELELLLELEEEAEAAAASSSSESEEEE RRRRREEEELELLLELEEEAEAAAASSSSESEEEE RELEASE 
feedback
MILAN november 28th/29th 2014 – David Funaro 
Deployment 
• Low Risk 
• Cheap 
• Frequent 
• Rapid 
• Predictable
MILAN november 28th/29th 2014 – David Funaro 
Low Risk 
• Exception catched 
• Rollback 
• Data on secure
MILAN november 28th/29th 2014 – David Funaro 
Cheap 
• no more than one click 
• no more than one person 
• no skilled person
MILAN november 28th/29th 2014 – David Funaro 
Frequent 
• to get feedback
MILAN november 28th/29th 2014 – David Funaro 
Rapid
MILAN november 28th/29th 2014 – David Funaro 
Predictable
MILAN november 28th/29th 2014 – David Funaro 
Incomplete ways
MILAN november 28th/29th 2014 – David Funaro 
is that a deploy procedure ? 
$ git pull origin master 
$ svn update 
Remote Desktop 
Versioning update
MILAN november 28th/29th 2014 – David Funaro 
Problems 
• Incomplete 
• Manual procedure 
• Slow 
• Server Downtime 
• No data migration 
• No Rollback
MILAN november 28th/29th 2014 – David Funaro 
Automated 
Deployment Goals
MILAN november 28th/29th 2014 – David Funaro 
Automated Deployment Goals 
Deploy 
one click deploy
MILAN november 28th/29th 2014 – David Funaro 
Automated Deployment Goals 
AnyTime AnyWhere AnyOne
MILAN november 28th/29th 2014 – David Funaro 
Automated Deployment Goals 
Rollback
MILAN november 28th/29th 2014 – David Funaro 
Automated Deployment Goals 
no downtime
MILAN november 28th/29th 2014 – David Funaro 
Automated Deployment Goals 
Frontend 1 Frontend 1I Frontend III 
Balancer 
Scalable
MILAN november 28th/29th 2014 – David Funaro 
Deployment Elements 
• Executable Code 
• Dependency Management 
• Software configuration 
• Infrastructure Management 
• Data Migrations 
• Manage Cache
MILAN november 28th/29th 2014 – David Funaro 
Executable code (SCM)
MILAN november 28th/29th 2014 – David Funaro 
Dependency Management
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
MILAN november 28th/29th 2014 – David Funaro 
PIP
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro 
Data Migration
MILAN november 28th/29th 2014 – David Funaro 
What if, after your first production 
deployment, you have to change the Entity 
Relationship ?
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro 
Infrastructure 
Management
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 
OK the module 903
MILAN november 28th/29th 2014 – David Funaro 
A way to setup your environment
MILAN november 28th/29th 2014 – David Funaro 
Write 
Configuration 
Script
MILAN november 28th/29th 2014 – David Funaro 
Write 
Configuration 
Script 
Versionable
MILAN november 28th/29th 2014 – David Funaro 
Environment 
Management
MILAN november 28th/29th 2014 – David Funaro 
Staging Production Testing
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
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
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro 
Existing Tools 
Fabric 
... and more others
MILAN november 28th/29th 2014 – David Funaro 
SECTION IV Realtime Alerting
MILAN november 28th/29th 2014 – David Funaro 
Waiting for customers 
feedback ?
MILAN november 28th/29th 2014 – David Funaro 
Waiting for customers 
feedback ?
MILAN november 28th/29th 2014 – David Funaro 
Real Time Monitoring 
• Application health 
• System heatlh 
• Services health
MILAN november 28th/29th 2014 – David Funaro 
Some tools 
Mail 
Errors Server Monitoring 
Sentry 
Log - Exception 
Application Monitoring
MILAN november 28th/29th 2014 – David Funaro 
Example - NE
MILAN november 28th/29th 2014 – David Funaro 
Example - Sentry
MILAN november 28th/29th 2014 – David Funaro 
Keep Everything in version control
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
MILAN november 28th/29th 2014 – David Funaro
MILAN november 28th/29th 2014 – David Funaro 
Thanks 
David Funaro 
davidfunaro.com 
@ingdavidino
MILAN november 28th/29th 2014 – David Funaro

More Related Content

Similar to The Continuous Delivery Value - Codemotion Milano 2014

Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]Francesco Novelli
 
Delivering Continuous Delivery Continuously
Delivering Continuous Delivery ContinuouslyDelivering Continuous Delivery Continuously
Delivering Continuous Delivery Continuouslysihil
 
Microsoft products 2014
Microsoft products 2014Microsoft products 2014
Microsoft products 2014Ashraf Atef
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous DeliveryHitesh Lad
 
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud NativeFrom 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud NativeKlaus Enzenhofer
 
Fundamental Concepts of DevOps
Fundamental Concepts of DevOpsFundamental Concepts of DevOps
Fundamental Concepts of DevOpsKiril Serebnik
 
Backend as a Service: Parse - Moriconi
Backend as a Service: Parse - MoriconiBackend as a Service: Parse - Moriconi
Backend as a Service: Parse - MoriconiCodemotion
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
 

Similar to The Continuous Delivery Value - Codemotion Milano 2014 (13)

Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
Bluetooth 4.0 and iBeacons in your iOS [Codemotion Milan 2014]
 
Delivering Continuous Delivery Continuously
Delivering Continuous Delivery ContinuouslyDelivering Continuous Delivery Continuously
Delivering Continuous Delivery Continuously
 
Tech talk march 12 2015 2
Tech talk march 12 2015 2Tech talk march 12 2015 2
Tech talk march 12 2015 2
 
Microsoft products 2014
Microsoft products 2014Microsoft products 2014
Microsoft products 2014
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous Delivery
 
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud NativeFrom 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
From 0 to DevOps: Lessons Learned Moving from On-Prem to Cloud Native
 
On the Go With Clio
On the Go With ClioOn the Go With Clio
On the Go With Clio
 
Fundamental Concepts of DevOps
Fundamental Concepts of DevOpsFundamental Concepts of DevOps
Fundamental Concepts of DevOps
 
Backend as a Service: Parse
Backend as a Service: ParseBackend as a Service: Parse
Backend as a Service: Parse
 
Backend as a Service: Parse - Moriconi
Backend as a Service: Parse - MoriconiBackend as a Service: Parse - Moriconi
Backend as a Service: Parse - Moriconi
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
DevOps is dead
DevOps is deadDevOps is dead
DevOps is dead
 
DEVOPS IS DEAD.
DEVOPS IS DEAD.DEVOPS IS DEAD.
DEVOPS IS DEAD.
 

More from David Funaro

The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...
[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...
[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...David Funaro
 
Graph db: time for serious stuff @ codemotion 23/03/2012
Graph db: time for serious stuff @ codemotion 23/03/2012Graph db: time for serious stuff @ codemotion 23/03/2012
Graph db: time for serious stuff @ codemotion 23/03/2012David Funaro
 
Graph databases in PHP @ PHPCon Poland 10-22-2011
Graph databases in PHP @ PHPCon Poland 10-22-2011Graph databases in PHP @ PHPCon Poland 10-22-2011
Graph databases in PHP @ PHPCon Poland 10-22-2011David Funaro
 
NoSQL overview #phptostart turin 11.07.2011
NoSQL overview #phptostart turin 11.07.2011NoSQL overview #phptostart turin 11.07.2011
NoSQL overview #phptostart turin 11.07.2011David Funaro
 
CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011David Funaro
 

More from David Funaro (8)

The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...
[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...
[2007] Tesi: Confronto tra riconoscitori vocali embedded e distribuiti per te...
 
Graph db: time for serious stuff @ codemotion 23/03/2012
Graph db: time for serious stuff @ codemotion 23/03/2012Graph db: time for serious stuff @ codemotion 23/03/2012
Graph db: time for serious stuff @ codemotion 23/03/2012
 
Graph databases in PHP @ PHPCon Poland 10-22-2011
Graph databases in PHP @ PHPCon Poland 10-22-2011Graph databases in PHP @ PHPCon Poland 10-22-2011
Graph databases in PHP @ PHPCon Poland 10-22-2011
 
NoSQL overview #phptostart turin 11.07.2011
NoSQL overview #phptostart turin 11.07.2011NoSQL overview #phptostart turin 11.07.2011
NoSQL overview #phptostart turin 11.07.2011
 
CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011
 
One size fit All
One size fit AllOne size fit All
One size fit All
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

The Continuous Delivery Value - Codemotion Milano 2014

  • 1. MILAN november 28th/29th 2014 The Continuous Delivery Value 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
  • 2. MILAN november 28th/29th 2014 – David Funaro The Continuous Delivery Value
  • 3. MILAN november 28th/29th 2014 – David Funaro David Funaro davidfunaro.com @ingdavidino
  • 4. MILAN november 28th/29th 2014 – David Funaro First Release
  • 5. MILAN november 28th/29th 2014 – David Funaro Release Day
  • 6. MILAN november 28th/29th 2014 – David Funaro WRONG WAY This talk is for you…
  • 7. MILAN november 28th/29th 2014 – David Funaro Overview
  • 8. MILAN november 28th/29th 2014 – David Funaro Facts IT Business release new features as soon as possible keep system up and running
  • 9. MILAN november 28th/29th 2014 – David Funaro … with CD IT Business
  • 10. MILAN november 28th/29th 2014 – David Funaro RELEASE FEEDBACK new features monetize bug performance layout
  • 11. MILAN november 28th/29th 2014 – David Funaro ? Miss Release Price ? RELEASE €
  • 12. MILAN november 28th/29th 2014 – David Funaro Reaction Metrics Change RELEASE
  • 13. MILAN november 28th/29th 2014 – David Funaro Reaction Metrics Change RELEASE Time Security Skills Cost Predictable Stress Repeatability
  • 14. MILAN november 28th/29th 2014 – David Funaro Time • How many time you need to release software
  • 15. MILAN november 28th/29th 2014 – David Funaro Security • 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) ?
  • 16. MILAN november 28th/29th 2014 – David Funaro Skills • Have, the selected person, all the skill needed to terminate the procedure ? • What about his behavior in some exception flow case
  • 17. MILAN november 28th/29th 2014 – David Funaro Cost • How many people you need ? • For how many time ? • Other Resources ?
  • 18. MILAN november 28th/29th 2014 – David Funaro Predictable • are you able to indicate how much time will care ?
  • 19. MILAN november 28th/29th 2014 – David Funaro Stress • What about the stress • stress => error-prone
  • 20. MILAN november 28th/29th 2014 – David Funaro Repeatability • Just finish a deploy. Software released. A bug is found. You have to re-start the deploy procedure
  • 21. MILAN november 28th/29th 2014 – David Funaro Reaction Metrics RELEASE Production
  • 22. MILAN november 28th/29th 2014 – David Funaro Reaction Metrics RELEASE Production Time Security Skills Cost Predictable Stress Repeatability
  • 23. MILAN november 28th/29th 2014 – David Funaro Reaction Metrics RELEASE Staging Production Time Security Skills Cost Predictable Stress Repeatability
  • 24. MILAN november 28th/29th 2014 – David Funaro Reaction Metrics RELEASE Staging Production Testing Time Security Skills Cost Predictable Stress Repeatability
  • 25. MILAN november 28th/29th 2014 – David Funaro No Automation Process ?
  • 26. 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
  • 27. MILAN november 28th/29th 2014 – David Funaro Software Release • Low Risk • Cheap • Frequent • Rapid • Predictable ... should be Continuous Delivery
  • 28. MILAN november 28th/29th 2014 – David Funaro CD Requirements • Source Code Management • Continuous Integration Server • Automated Deploy • Real Time Alerting • Root Cause Analysis
  • 29. MILAN november 28th/29th 2014 – David Funaro CD FLOW Commit / push Automated Deploy Procedure Basic Scenario Notify Team Real Time Alerting Automated Testing RELEASE
  • 30. MILAN november 28th/29th 2014 – David Funaro CD FLOW Commit / push Automated Deploy Procedure Basic Scenario Notify Team Real Time Alerting Automated Testing RELEASE
  • 31. MILAN november 28th/29th 2014 – David Funaro RELEASE
  • 32. MILAN november 28th/29th 2014 – David Funaro Deploy Pipeline Commit Stage Compile UnitTest Analysis Release Automated acceptance testign Automated capacity testing example Manual Testing Showcases Explorarory testing
  • 33. MILAN november 28th/29th 2014 – David Funaro Tools Continuous Delivery Practices Methodologies Cautions
  • 34. 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
  • 35. MILAN november 28th/29th 2014 – David Funaro CD Benefits • Empower Team • Reducing Errors • Lowering Stress • Deployment Flexibility • Practice Make Perfect
  • 36. MILAN november 28th/29th 2014 – David Funaro Principles Keep Everything in version control Automate Almost Everything If it hurts, do it more frequently Done means released Build quality in
  • 37. MILAN november 28th/29th 2014 – David Funaro SECTION I Source Code Management
  • 38. 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 ?!?
  • 39. MILAN november 28th/29th 2014 – David Funaro
  • 40. MILAN november 28th/29th 2014 – David Funaro
  • 41. MILAN november 28th/29th 2014 – David Funaro SCM : What is it ? 3 5 7 10 Repository
  • 42. MILAN november 28th/29th 2014 – David Funaro Check-out Local Pull 8 29
  • 43. MILAN november 28th/29th 2014 – David Funaro Check-out 2 9 Local Pull 8
  • 44. MILAN november 28th/29th 2014 – David Funaro Check-in Push Local 3
  • 45. MILAN november 28th/29th 2014 – David Funaro Check-in Push Local 34
  • 46. MILAN november 28th/29th 2014 – David Funaro SCM : What it does ? • Keeping multiple file version • Collaboration
  • 47. MILAN november 28th/29th 2014 CHECK POINT 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
  • 48. MILAN november 28th/29th 2014 – David Funaro Application Evolution
  • 49. MILAN november 28th/29th 2014 – David Funaro Collaboration
  • 50. MILAN november 28th/29th 2014 – David Funaro Cautions isn’t just for source code you need everything required to re-create your application’s binaries and the environments in which they run.
  • 51. MILAN november 28th/29th 2014 – David Funaro Best Practice • Little Commit • Frequent Commit • Consistent commit • Use Meaningful Commit message
  • 52. MILAN november 28th/29th 2014 – David Funaro Different Products
  • 53. MILAN november 28th/29th 2014 – David Funaro SECTION II Continuous Integration
  • 54. MILAN november 28th/29th 2014 – David Funaro Ops (after one commit ) After your commit nothing works anymore But ... “was working on my computer” INTEGRATION PROBLEM
  • 55. MILAN november 28th/29th 2014 – David Funaro Ops (after deploy in prod) It was working on the stage environment !!! INTEGRATION PROBLEM
  • 56. MILAN november 28th/29th 2014 – David Funaro • sleepless nights before demo ... bug just after release • sleepless nights before demo ... bug just after release
  • 57. MILAN november 28th/29th 2014 – David Funaro Resolve defects Cost Analysis Design Implementation Testing Release
  • 58. MILAN november 28th/29th 2014 – David Funaro t integration Regression Working Broken
  • 59. MILAN november 28th/29th 2014 – David Funaro t integration Regression Working Broken Effort
  • 60. MILAN november 28th/29th 2014 – David Funaro Good Solution In software development the components integration need to be tested continuosly... ! in order to find inconsistencies as soon as possible
  • 61. MILAN november 28th/29th 2014 – David Funaro Continuous Integration
  • 62. 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
  • 63. MILAN november 28th/29th 2014 – David Funaro Requirements Source Code Management
  • 64. MILAN november 28th/29th 2014 – David Funaro Requirements
  • 65. MILAN november 28th/29th 2014 – David Funaro Agile-Testing-Quadrants
  • 66. MILAN november 28th/29th 2014 – David Funaro CI Flow
  • 67. MILAN november 28th/29th 2014 – David Funaro F CI Flow
  • 68. MILAN november 28th/29th 2014 – David Funaro F Checkout last Commit CI Flow Build and Tests Process
  • 69. MILAN november 28th/29th 2014 – David Funaro F Checkout last Commit CI Flow Build and Tests Process
  • 70. MILAN november 28th/29th 2014 – David Funaro F F F Checkout last Commit CI Flow Build and Tests Process
  • 71. MILAN november 28th/29th 2014 – David Funaro F F F F F F Checkout last Commit CI Flow Build and Tests Process
  • 72. MILAN november 28th/29th 2014 – David Funaro F F F F F F F F Checkout last Commit CI Flow Build and Tests Process
  • 73. MILAN november 28th/29th 2014 – David Funaro F F F F F F F F Checkout last Commit CI Flow Build and Tests Process
  • 74. 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
  • 75. 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
  • 76. MILAN november 28th/29th 2014 – David Funaro CI - Output System Status Documentation/ Artifacts Quality Check
  • 77. 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
  • 78. 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
  • 79. MILAN november 28th/29th 2014 – David Funaro Immediate feedback of the health of the system
  • 80. MILAN november 28th/29th 2014 – David Funaro
  • 81. MILAN november 28th/29th 2014 – David Funaro
  • 82. MILAN november 28th/29th 2014 – David Funaro Ci - software ... more and more
  • 83. MILAN november 28th/29th 2014 – David Funaro SECTION III Automated Deploy
  • 84. MILAN november 28th/29th 2014 – David Funaro Deployment “all the activities that make a software system available for use” Wikipedia
  • 85. MILAN november 28th/29th 2014 – David Funaro Deploy A Critical part of the application life-cycle
  • 86. MILAN november 28th/29th 2014 – David Funaro RELEASE Real ?
  • 87. MILAN november 28th/29th 2014 – David Funaro RELEASE Real ? RRRRREEEELELLLELEEEAEAAAASSSSESEEEE RRRRREEEELELLLELEEEAEAAAASSSSESEEEE RELEASE feedback
  • 88. MILAN november 28th/29th 2014 – David Funaro Deployment • Low Risk • Cheap • Frequent • Rapid • Predictable
  • 89. MILAN november 28th/29th 2014 – David Funaro Low Risk • Exception catched • Rollback • Data on secure
  • 90. MILAN november 28th/29th 2014 – David Funaro Cheap • no more than one click • no more than one person • no skilled person
  • 91. MILAN november 28th/29th 2014 – David Funaro Frequent • to get feedback
  • 92. MILAN november 28th/29th 2014 – David Funaro Rapid
  • 93. MILAN november 28th/29th 2014 – David Funaro Predictable
  • 94. MILAN november 28th/29th 2014 – David Funaro Incomplete ways
  • 95. MILAN november 28th/29th 2014 – David Funaro is that a deploy procedure ? $ git pull origin master $ svn update Remote Desktop Versioning update
  • 96. MILAN november 28th/29th 2014 – David Funaro Problems • Incomplete • Manual procedure • Slow • Server Downtime • No data migration • No Rollback
  • 97. MILAN november 28th/29th 2014 – David Funaro Automated Deployment Goals
  • 98. MILAN november 28th/29th 2014 – David Funaro Automated Deployment Goals Deploy one click deploy
  • 99. MILAN november 28th/29th 2014 – David Funaro Automated Deployment Goals AnyTime AnyWhere AnyOne
  • 100. MILAN november 28th/29th 2014 – David Funaro Automated Deployment Goals Rollback
  • 101. MILAN november 28th/29th 2014 – David Funaro Automated Deployment Goals no downtime
  • 102. MILAN november 28th/29th 2014 – David Funaro Automated Deployment Goals Frontend 1 Frontend 1I Frontend III Balancer Scalable
  • 103. MILAN november 28th/29th 2014 – David Funaro Deployment Elements • Executable Code • Dependency Management • Software configuration • Infrastructure Management • Data Migrations • Manage Cache
  • 104. MILAN november 28th/29th 2014 – David Funaro Executable code (SCM)
  • 105. MILAN november 28th/29th 2014 – David Funaro Dependency Management
  • 106. 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
  • 107. MILAN november 28th/29th 2014 – David Funaro PIP
  • 108. MILAN november 28th/29th 2014 – David Funaro
  • 109. MILAN november 28th/29th 2014 – David Funaro Data Migration
  • 110. MILAN november 28th/29th 2014 – David Funaro What if, after your first production deployment, you have to change the Entity Relationship ?
  • 111. MILAN november 28th/29th 2014 – David Funaro
  • 112. MILAN november 28th/29th 2014 – David Funaro Infrastructure Management
  • 113. 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 OK the module 903
  • 114. MILAN november 28th/29th 2014 – David Funaro A way to setup your environment
  • 115. MILAN november 28th/29th 2014 – David Funaro Write Configuration Script
  • 116. MILAN november 28th/29th 2014 – David Funaro Write Configuration Script Versionable
  • 117. MILAN november 28th/29th 2014 – David Funaro Environment Management
  • 118. MILAN november 28th/29th 2014 – David Funaro Staging Production Testing
  • 119. 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
  • 120. 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
  • 121. MILAN november 28th/29th 2014 – David Funaro
  • 122. MILAN november 28th/29th 2014 – David Funaro Existing Tools Fabric ... and more others
  • 123. MILAN november 28th/29th 2014 – David Funaro SECTION IV Realtime Alerting
  • 124. MILAN november 28th/29th 2014 – David Funaro Waiting for customers feedback ?
  • 125. MILAN november 28th/29th 2014 – David Funaro Waiting for customers feedback ?
  • 126. MILAN november 28th/29th 2014 – David Funaro Real Time Monitoring • Application health • System heatlh • Services health
  • 127. MILAN november 28th/29th 2014 – David Funaro Some tools Mail Errors Server Monitoring Sentry Log - Exception Application Monitoring
  • 128. MILAN november 28th/29th 2014 – David Funaro Example - NE
  • 129. MILAN november 28th/29th 2014 – David Funaro Example - Sentry
  • 130. MILAN november 28th/29th 2014 – David Funaro Keep Everything in version control
  • 131. 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
  • 132. MILAN november 28th/29th 2014 – David Funaro
  • 133. MILAN november 28th/29th 2014 – David Funaro Thanks David Funaro davidfunaro.com @ingdavidino
  • 134. MILAN november 28th/29th 2014 – David Funaro