the continuous delivery value - codemotion milano 2014

134
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 28 th /29 th 2014 The Continuous Delivery Value

Upload: david-funaro

Post on 05-Jul-2015

345 views

Category:

Technology


1 download

DESCRIPTION

System Crash, failure data migration, partial update: issues that no one would ever want to meet during the deploy and ... hoping for the best is not enough. The deployment activity is important as those that precede it. The Continuous Delivery will give you low risk, cheap, fast, predictable delivery and ... soundly.

TRANSCRIPT

Page 1: The Continuous Delivery Value - Codemotion Milano 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. !@ingdavidino - Dnsee

MILAN november 28th/29th 2014

The Continuous Delivery Value

Page 2: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

The Continuous Delivery

Value

Page 3: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

David Funaro

@ingdavidino

davidfunaro.com

Page 4: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

First Release

Page 5: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Release Day

Page 6: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

WRONG WAY

This talk is for you…

Page 7: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Overview

Page 8: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

… with CD

ITBu

sine

ss

Page 10: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

RELEASE

FEEDBACK

new features monetize bug

performance layout

Page 11: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

RELEASE

? Miss Release Price ?

Page 12: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Reaction MetricsC

hang

e

REL

EASE

Page 13: The Continuous Delivery Value - Codemotion Milano 2014

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

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

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

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

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

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

MILAN november 28th/29th 2014 – David Funaro

• What about the stress

• stress => error-prone

Stress

Page 20: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Reaction Metrics

REL

EASE

Production

Page 22: The Continuous Delivery Value - Codemotion Milano 2014

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

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

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

MILAN november 28th/29th 2014 – David Funaro

No Automation Process ?

Page 26: The Continuous Delivery Value - Codemotion Milano 2014

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

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

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

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

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

MILAN november 28th/29th 2014 – David Funaro

RELEASE

Page 32: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

ContinuousDelivery

Tools

MethodologiesPractices

Cautions

Page 34: The Continuous Delivery Value - Codemotion Milano 2014

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

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

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

MILAN november 28th/29th 2014 – David Funaro

SECTION ISource Code Management

Page 38: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Page 40: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Page 41: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

SCM : What is it ?

3

57

10

Repository

Page 42: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Check-out

Local

Pull

8

29

Page 43: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Check-out

Local

Pull

8

2

9

Page 44: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Check-in

Push

Local

3

Page 45: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Check-in

Push

Local

34

Page 46: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

Application Evolution

Page 49: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Collaboration

Page 50: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

Different Products

Page 53: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

SECTION IIContinuous Integration

Page 54: The Continuous Delivery Value - Codemotion Milano 2014

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

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

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

MILAN november 28th/29th 2014 – David Funaro

Resolve defectsC

ost

Analysis Design Implementation Testing Release

Page 58: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

t

integration

Regression

Working

Broken

Page 59: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

t

integration

Regression

Working

Broken

Effort

Page 60: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Continuous Integration

Page 62: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Requirements

Source Code Management

Page 64: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Requirements

Page 65: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Agile-Testing-Quadrants

Page 66: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

CI Flow

Page 67: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

F

CI Flow

Page 68: The Continuous Delivery Value - Codemotion Milano 2014

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

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

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

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

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

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

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

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

MILAN november 28th/29th 2014 – David Funaro

CI - Output

System Status Documentation/Artifacts

Quality Check

Page 77: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

Immediate feedback of the health of the system

Page 80: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Page 81: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Page 82: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Ci - software

... more and more

Page 83: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

SECTION IIIAutomated Deploy

Page 84: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

RELEASE

Real ?

Page 87: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

RELEASE

Real ?

RELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASERELEASEfeedback

Page 88: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

• Low Risk

• Cheap

• Frequent

• Rapid

• Predictable

Deployment

Page 89: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Low Risk

• Exception catched

• Rollback

• Data on secure

Page 90: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Frequent

• to get feedback

Page 92: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Rapid

Page 93: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Predictable

Page 94: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Incomplete ways

Page 95: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

Automated Deployment Goals

Page 98: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

one click deploy

Deploy

Automated Deployment Goals

Page 99: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

AnyTime AnyWhere AnyOne

Automated Deployment Goals

Page 100: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Rollback

Automated Deployment Goals

Page 101: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

no downtime

Automated Deployment Goals

Page 102: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

Executable code (SCM)

Page 105: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Dependency Management

Page 106: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

PIP

Page 108: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Page 109: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Data Migration

Page 110: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Page 112: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Infrastructure Management

Page 113: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

A way to setup your environment

Page 115: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Write Configuration

Script

Page 116: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Write Configuration

Script

Versionable

Page 117: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Environment Management

Page 118: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Production TestingStaging

Page 119: The Continuous Delivery Value - Codemotion Milano 2014

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

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

MILAN november 28th/29th 2014 – David Funaro

Page 122: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Existing Tools

Fabric

... and more others

Page 123: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

SECTION IVRealtime Alerting

Page 124: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Waiting for customers feedback ?

Page 125: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Waiting for customers feedback ?

Page 126: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Some tools

Mail

Sentry

Log - Exception

Errors Server Monitoring

Application Monitoring

Page 128: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Example - NE

Page 129: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Example - Sentry

Page 130: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

Keep Everything in version control

Page 131: The Continuous Delivery Value - Codemotion Milano 2014

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

MILAN november 28th/29th 2014 – David Funaro

Page 133: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro

David Funaro

@ingdavidinodavidfunaro.com

Thanks

Page 134: The Continuous Delivery Value - Codemotion Milano 2014

MILAN november 28th/29th 2014 – David Funaro