SlideShare ist ein Scribd-Unternehmen logo
1 von 107
Downloaden Sie, um offline zu lesen
The Continuous DeliveryValue
12 - 04 - 2014
ROME 11-12 April 2014
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.
d.funaro@dnsee.com
The 	

Continuous Delivery 	

Value
12 - 04 - 2014
David Funaro
@ingdavidino
davidfunaro.com
First Release
Release Day
WRONG WAY
This talk is for you…
Overview
Facts
keep system up and running
release new features as
soon as possible
IT Business
… with CD
IT
Business
RELEASE
FEEDBACK
new features monetize bug
performance layout
RELEASE
? Miss Release Price ?
€
Reaction MetricsChange
RELEASE
Time
Security
Skills
Cost
Predictable
Stress
Repeatability
• How many time you need to release
software
Time
• 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
• Have, the selected person, all the skill
needed to terminate the procedure ?	

• What about his behavior in some
exception flow case
Skills
• How many people you need ?	

• For how many time ?	

• Other Resources ?
Cost
• are you able to indicate how much time will
care ?
Predictable
• What about the stress	

• stress => error-prone
Stress
• Just finish a deploy. Software released.A bug
is found.You have to re-start the deploy
procedure
Repeatability
Reaction Metrics
RELEASE Production
Testing
Staging
Time
Security
Skills
Cost
Predictable
Stress
Repeatability
No Automation
Process ?
Lots of things to
consider
• Code evolution	

• Code dependency management	

• System evolution management	

• Data management and architecture	

• Component management
Software Release
• Low Risk	

• Cheap	

• Frequent	

• Rapid	

• Predictable
... should be
Continuous Delivery
CD requirements
• Source Code Management	

• Continuous Integration Server	

• Automated Deploy	

• Real Time Alerting	

• Root Cause Analysis
CD FLOW
Commit /push
Automated	

Testing
FAIL
SUCCESS Automated
Deploy	

Procedure
notify
Basic Scenario
Deploy Pipeline
Commit Stage

Compile

UnitTest

Analysis

Build Installers
Release
Automated
acceptance 

testign
Automated
capacity 

testing
Manual Testing

Showcases

Explorarory

testing
example
Continuous

Delivery
Tools
MethodologiesPractices
Cautions
Anti-patterns
• Deploy software manually	

• Manual Configuration	

• Deploy to a production-like Env Only after
development is complete
Benefits
• Empower Team	

• Reducing Errors	

• Lowering Stress	

• Deployment Flexibility	

• Practice Make Perfect
Keep Everything in version control
Automate Almost Everything
Principles
If it hurts, do i more frequently
Done means released
Build quality in
SECTION I
Source Code Management
i sent you a mail with
the last change
... are you
shure ?
i can’t find the new file ?!?
The problem
SCM :What is it ?
3
5
7
10
Repository
Local
Check-out
Pull
8
29
Check-in
Push
Local
3 4
SCM :What it does ?
• Keeping multiple file version	

• Collaboration
CHECK POINT
Application Evolution
Collaboration
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.
Best Practice
• Little Commit 	

• Frequent Commit	

• Consistent commit	

• User Meaningful Commit message
Different Products
SECTION II
Continuous Integration
After your commit
nothing works anymore
Ops
INTEGRATION PROBLEM
(after one commit )
After your commit nothing
works anymore
But ...“was working on my
computer”
Ops(after deploy in prod)
INTEGRATION PROBLEM
It was working on the stage
environment !!!
sleepless nights before demo ... bug just after release
Cost
Analysis Design Implementation Testing Release
Resolve defects
t
integration
Regression
Working
Broken
Effort
In software development the components
integration need to be tested continuosly...	

!


in order to find inconsistencies

as soon as possible
Good Solution
Continuous Integration
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
Requirements
Source Code Management
Requirements
Agile-Testing-Quadrants
F
F
F
F
F
FF
F
Checkout last Commit
CI Flow
Build andTests Process
Build & Test
✓Process creating executable code	

✓Unit test	

✓Quality criteria	

✓FunctionalTest	

✓Non FunctionalTest	

Valid Syntax Compile	

Code behavior	

Code coverage, Mass detector	

Business Acceptance Criteria	

Application performance	

PASS
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
CI - Output
System Status Documentation/Artifacts Quality Check
“Continuous Integration doesn’t get rid of bugs, but it
does make them dramatically easier to find and
remove.”
Martin Fowler
Ci - Best practice
• CI server === Production Server	

• Integrate it from the first commit	

• Find best way to get notified
Immediate feedback on the health of the system
Ci - software
... more and more
SECTION III
Automated Deploy
Deployment
“is all the activities that make a software
system available for use”
Wikipedia
A Critical part of the application
life-cycle
Deployment
RELEASE
Real ?
RELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASE
feedback
Deployment
• Low Risk	

• Cheap	

• Frequent	

• Rapid	

• Predictable
Low Risk
• Exception catched	

• Rollback	

• Data on secure
Cheap
• no more than one click	

• no more than one person	

• no skilled person
Frequent
• to get feedback
Rapid
Predictable
Incomplete ways
is that a deploy procedure ?
$ git pull origin master
$ svn update
Remote Desktop Versioning update
• Incomplete	

• Manual procedure	

• Slow	

• Server Downtime	

• No data migration	

• No Rollback
Problems
Automated Deployment Goals
one click deploy
Deploy
Automated Deployment Goals
AnyTime AnyWhere AnyOne
Automated Deployment Goals
Rollback
Automated Deployment Goals
no downtime
Automated Deployment Goals
Scalable
Frontend 1 Frontend 1I Frontend III
Balancer
Automated Deployment Goals
Deployment Elements
• Executable Code	

• Dependency Management	

• Software configuration	

• Infrastructure Management	

• Data Migrations	

• Manage Cache	

• Manage Assets
Executable code (SCM)
Dependency Management
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
PIP
Data Migration
What if, after your first production
deployment, you have to change the Entity
Relationship ?
Infrastructure Management
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 903
OK
A way to setup your environment
Write 

Configuration
Script
Versionable
Environment Management
Production TestingStaging
Manual - Follow recipe
• Integrity problems	

• Problem with exception handling	

• Basic Skills requirements	

• Time consuming - expensive	

• Error - prone	

• Stress
Build a custom Script
• Do a backup	

• Create new directory	

• Update the code	

• Update dependencies	

• Run migration data	

• Update Environements	

• Warm up cache	

• ...
Existing Tools
Fabric
... and more others
Build quality in
Done means released
If it hurts, do i more frequently
Automate Almost Everything
Keep Everything in version control
David Funaro
@ingdavidino
davidfunaro.com
Thanks
The Continuous delivery Value @ codemotion 2014

Weitere ähnliche Inhalte

Was ist angesagt?

The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
DBmaestro - Database DevOps
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
Christopher Read
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
Timothy Fitz
 

Was ist angesagt? (20)

So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-faster
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Continuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous DeliveryContinuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous Delivery
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps Transformation
 
Continuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsContinuous Deployment of Rails Applications
Continuous Deployment of Rails Applications
 
Quickstart for continuous integration
Quickstart for continuous integrationQuickstart for continuous integration
Quickstart for continuous integration
 
Enterprise DevOps and the Cloud
Enterprise DevOps and the CloudEnterprise DevOps and the Cloud
Enterprise DevOps and the Cloud
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps Overview
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014Database Deployment Pipeline - SQL In The City Workshop 2014
Database Deployment Pipeline - SQL In The City Workshop 2014
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
 

Ähnlich wie The Continuous delivery Value @ codemotion 2014

Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
LB Denker
 

Ähnlich wie The Continuous delivery Value @ codemotion 2014 (20)

Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
DevOps with Microsoft Stack
DevOps with Microsoft StackDevOps with Microsoft Stack
DevOps with Microsoft Stack
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Panel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaSPanel Discussion Continuous Deployment in SaaS
Panel Discussion Continuous Deployment in SaaS
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 
Challenges and best practices of database continuous delivery
Challenges and best practices of database continuous deliveryChallenges and best practices of database continuous delivery
Challenges and best practices of database continuous delivery
 
Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...
Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...
Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
Challenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryChallenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous Delivery
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 

Mehr von David 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
 
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
David Funaro
 

Mehr von David Funaro (7)

The Continuous Delivery Value - Codemotion Milano 2014
The Continuous Delivery Value - Codemotion Milano 2014The Continuous Delivery Value - Codemotion Milano 2014
The Continuous Delivery Value - Codemotion Milano 2014
 
[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
 

Kürzlich hochgeladen

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
vu2urc
 
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
Enterprise Knowledge
 
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
Earley Information Science
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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...
 
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...
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

The Continuous delivery Value @ codemotion 2014