SlideShare a Scribd company logo
Continuous Delivery
05 - 09 - 2013
David Funaro
CTO@Dnsee
@ingdavidino davidfunaro.com
Overview
STARTUP
STARTUP
STARTUP
Testo?
STARTUP
Testo?
Implementation
• is the only phase ?
• it’s really sufficient to release software
Implementation
Implementation
Progettazione
Implementation
Progettazione
Implementation
Analisi
Collaudo
Progettazione
Implementation
Analisi
Collaudo
Progettazione
Implementation
Analisi
Manutezione
Collaudo
Progettazione
Implementation
Analisi
Manutezione
Collaudo
Progettazione
Implementation
Analisi
Manutezione
Software Development
Life Cycle
SW - LC
Feedback
SW - LC
Feedback
• New Features
• Bug fixing
• System specification Changes
• Web services changes
• Customer support tips
Software
Evolution
RELEASE
SoftwareComponents
‣Layout
‣Frontend
‣Backend
‣Api
‣Webservices
‣...
‣...
‣...
‣Librerie
Changes
RELEASE
FEEDBACK
new features monetize bug
performance layout
RELEASE
? Miss Release Price ?
€
Reaction Metrics
Change
RELEASE
Reaction Metrics
Change
RELEASE
Time interval ...
Security
Skills
Cost
Predictable
Stress
Repeatability
• How many time you need to release
software
Time interval ...
• 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 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
Repeatability
Reaction Metrics
RELEASE
Time interval ...
Security
Skills
Cost
Predictable
Stress
Repeatability
Production
Reaction Metrics
RELEASE
Time interval ...
Security
Skills
Cost
Predictable
Stress
Repeatability
Production
Staging
Reaction Metrics
RELEASE
Time interval ...
Security
Skills
Cost
Predictable
Stress
Repeatability
Production
Testing
Staging
No Automation
Process ?
Lots of things to
consider
• Code dependency management
• System evolution management
• Data management and architecture
• Component management
Software Release
• Low Risk
• Cheap
• Frequent
• Rapid
• Predictable
... should be
Continuous Delivery
What we need
• Source Code Management
• Continuous Integration Server
• Automated Deploy
• Real Time Alerting
• Root Cause Analysis
Deploy Pipeline
Commit Stage
Compile
UnitTest
Analysis
Build Installers
Release
Automated
acceptance
testign
Automated
capacity
testing
Manual Testing
Showcases
Explorarory
testing
Overview
Commit /push Testing
FAIL
SUCCESS Automated
Deploy
Procedure
dev team
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
Keys
PAUSE
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
Continuous delivery   @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013
SCM :What is it ?
3
5
7
10
Repository
SCM :What it does ?
•Keeping multiple file version
•Collaboration
CHECK POINT
Application Evolution
Sharing
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.
How it works
Trunk/Master
Check-in
Push
Local
3
Check-in
Push
Local
34
Local
Check-out
Pull
8
29
Local
Check-out
Pull
8
2
9
Local
Conflict/Resolve
Pull
!
3
5
Conflict/Resolve
!
Branching & Merging
Tag
Best Practice
• Little Commit
• Frequent Commit
• Consistent commit
• User Meaningful Commit message
Different Products
DEMO
PAUSE
SECTION II
Continuous Integration
After your commit
nothing works anymore
But ...“was working on my computer”
Ops
INTEGRATION PROBLEM
(dopo un commit )
It was working on the stage environment !!!
Ops(dopo un deploy in produzione)
INTEGRATION PROBLEM
sleepless nights before demo ... bug just after release
Cost
Analysis Design Implementation Testing Maintenance
Changes
DEFECT BUG
≠
Glossary
http://agitar.com/solutions/why_unit_testing.html
t
integrazione
Regressione
Working
Broken
t
integrazione
Regressione
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
Test Scopes
Agile-Testing-Quadrants
CI Flow
F
CI Flow
F
Checkout last Commit
CI Flow
Build andTests Process
F
Checkout last Commit
CI Flow
Build andTests Process
F
F
F
Checkout last Commit
CI Flow
Build andTests Process
F
F
F
F
F
F
Checkout last Commit
CI Flow
Build andTests Process
F
F
F
F
F
FF
F
Checkout last Commit
CI Flow
Build andTests Process
F
F
F
F
F
FF
F
Checkout last Commit
CI Flow
Build andTests Process
Github Jenkins Hooks
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
Immediate feedback on the health of the system
DEMO
Team Responsibilities
• Check in frequently
• Don’t check in broken code
• Don’t check in untested code
• Don’t check in when the build is broken
• Repair the build as soon as possible
Ci - Best practice
• CI server === Production Server
• Integrate it from the first commit
• Find best way to get notified
Continuous delivery   @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013
Ci - software
... more and more
PAUSA
PARTE 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 ?
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
Ftp is a deploy procedure ?
Rsync
Rsync is a deploy procedure ?
TeamViewer
Teamviewer is a deploy procedure ?
SCM
$ git pull origin master
$ svn update
Versioning checkout is a deploy procedure ?
• 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
• Environment 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
Continuous delivery   @wcap 5-09-2013
Data Migration
What if, after your first production
deployment, you have to change the Entity
Relationship ?
Continuous delivery   @wcap 5-09-2013
Software Configuration
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 new way to setup your environment
Write
Configuration
Script
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
• ...
Continuous delivery   @wcap 5-09-2013
Existing Tools
Fabric
... and more others
Continuous delivery   @wcap 5-09-2013
• Built in Ruby
• Easy setup
• Event Task based, easy to hook into
• Multiple server
• Multistage extension
• Multiple recipe for different environments
Continuous delivery   @wcap 5-09-2013
Web deploy Strategy
Document
Root
Web deploy Strategy
Document
Root
Web deploy Strategy
Document
Root
Web deploy Strategy
Document
Root
DEMO
Keep Everything in version
control
Automate Almost
Everything
Continuous delivery   @wcap 5-09-2013
Thanks

More Related Content

PDF
The Continuous delivery Value @ codemotion 2014
PDF
The Continuous delivery value - Funaro
PPTX
Continuous integration, delivery & deployment
PPTX
Continuous Integration as a Way of Life
PPT
Continuous Integration and Builds
PPTX
Integration Testing as Validation and Monitoring
PPTX
The Hard Problems of Continuous Deployment
PPTX
So you-want-to-go-faster
The Continuous delivery Value @ codemotion 2014
The Continuous delivery value - Funaro
Continuous integration, delivery & deployment
Continuous Integration as a Way of Life
Continuous Integration and Builds
Integration Testing as Validation and Monitoring
The Hard Problems of Continuous Deployment
So you-want-to-go-faster

What's hot (20)

PPTX
The challenges and pitfalls of database deployment automation
PPTX
Continuous integration
PPTX
Continuous Delivery: why ? where to start ? how to scale ?
PDF
Agile Engineering Best Practices by Richard Cheng
PDF
Continuous Deployment: Beyond Continuous Delivery
ZIP
Introduction To Continuous Integration
PPTX
Making software development processes to work for you
PDF
Security Implications for a DevOps Transformation
PDF
Continuous Deployment of Rails Applications
PDF
Quickstart for continuous integration
PPTX
CI/CD for mobile at HERE
PDF
Continuous integration
PPT
Enterprise DevOps and the Cloud
PPTX
Continuous Deployment
PPTX
Introduction to Continuous Integration
PPTX
Continuous Deployment
PPTX
Continuous Integration
PDF
Introduction to dev ops
PPTX
Database Deployment Pipeline - SQL In The City Workshop 2014
PPTX
Best Practices for Database Deployments
The challenges and pitfalls of database deployment automation
Continuous integration
Continuous Delivery: why ? where to start ? how to scale ?
Agile Engineering Best Practices by Richard Cheng
Continuous Deployment: Beyond Continuous Delivery
Introduction To Continuous Integration
Making software development processes to work for you
Security Implications for a DevOps Transformation
Continuous Deployment of Rails Applications
Quickstart for continuous integration
CI/CD for mobile at HERE
Continuous integration
Enterprise DevOps and the Cloud
Continuous Deployment
Introduction to Continuous Integration
Continuous Deployment
Continuous Integration
Introduction to dev ops
Database Deployment Pipeline - SQL In The City Workshop 2014
Best Practices for Database Deployments
Ad

Similar to Continuous delivery @wcap 5-09-2013 (20)

PPTX
In (database) automation we trust
PPTX
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
PDF
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
PPTX
Continuous Integration
PPTX
Adrian marinica continuous integration in the visual studio world
PPTX
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
PPTX
Agile & DevOps - It's all about project success
PPTX
Topic production code
ODP
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
PDF
Continuous Delivery: releasing Better and Faster at Dashlane
PPTX
Introducing Continuous Integration Using Vsts
PDF
Continuous Integration at T3CON08
PDF
Automating development-operations-v1
PPTX
SplunkLive! London 2016 Splunk for Devops
PDF
A Continuous Delivery Safety Net for Databases
PPTX
Test parallelization using Jenkins
PDF
Tracking license compliance made easy - intro to Grant (OSS)
PPTX
Test Driven Development & CI/CD
PPTX
Continuous Integration Testing for SAP
PPTX
Scaling Enterprise DevOps with CloudBees
In (database) automation we trust
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Continuous Integration
Adrian marinica continuous integration in the visual studio world
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
Agile & DevOps - It's all about project success
Topic production code
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Continuous Delivery: releasing Better and Faster at Dashlane
Introducing Continuous Integration Using Vsts
Continuous Integration at T3CON08
Automating development-operations-v1
SplunkLive! London 2016 Splunk for Devops
A Continuous Delivery Safety Net for Databases
Test parallelization using Jenkins
Tracking license compliance made easy - intro to Grant (OSS)
Test Driven Development & CI/CD
Continuous Integration Testing for SAP
Scaling Enterprise DevOps with CloudBees
Ad

More from David Funaro (7)

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

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
Teaching material agriculture food technology
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
Per capita expenditure prediction using model stacking based on satellite ima...
Teaching material agriculture food technology
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Understanding_Digital_Forensics_Presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf
NewMind AI Monthly Chronicles - July 2025
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation

Continuous delivery @wcap 5-09-2013