Continuous delivery made possible

Preview:

Citation preview

Continuous Deliverymade possible

Domenico Musto

@mimmozzo domenico.musto@gmail.com

What do I do ?

.NET

Web REST

AgileAutomation Testing

C#Team leading

Ruby

What is continuous delivery ?

Continuous integration

Continuous integration

Continuous deployment

Continuous integration

Continuous deployment

Continuous delivery

Continuous integration

The process of frequently integrating the code you are

working on with everybody else’s code

Continuous deployment

automatically deploy on an integration test environment the "integrated code"

have a reasonable automated way of deploy software to a production environment

Continuous delivery

The ability to easily and quickly ship new value/features to customers at any point in time

Easily and quickly- Being able to deploy in less than 5 minutes (automated)

Easily and quickly- Being able to deploy in less than 5 minutes (automated)

- Being confident that the software you are deploying has passed a well defined test suite

Easily and quickly- Being able to deploy in less than 5 minutes (automated)

- Being confident that the software you are deploying has passed a well defined test suite

- Being able to immediately collect info about the new version of the software

Easily and quickly- Being able to deploy in less than 5 minutes (automated)

- Being confident that the software you are deploying has passed a well defined test suite

- Being able to immediately collect info about the new version of the software

- Being able to quickly rollback to the previous version in a matter of minutes in an automated way

continuous integration and

continuous deployment enable

continuous delivery

Why do I care about all this ?

50%

It’s about build the right thing

35%

Reduce costs and risk by delivering small incremental changes

Motivation

How do I get there ?

How do I get there ?- CD is not for every single business

How do I get there ?- CD is not for every single business

- It’s a cultural change

How do I get there ?- CD is not for every single business

- It’s a cultural change

- It takes time, and it will hurt you

How do I really get there ?- Split up the monolith

How do I really get there ?- Split up the monolith

- Enable continuous integration

How do I really get there ?- Split up the monolith

- Enable continuous integration

- Enable continuous deployment

Continuous integration

Feature branchingvs

branching by abstraction

by Martin Fowler

by Martin Fowler

by Martin Fowler

by Martin Fowler

by Martin Fowler

Solid testing strategy

Integration pipeline

DEVELOPERRUN TESTS

LOCALLYCOMMIT

CI TOOLBUILDUNIT TESTS

PACKAGE

Continuous deployment

Packaging

Automatic installation and configuration

Database

Blue Green

Infrastructure as code

Decouple release from deployment

Deploy pipeline

Tools- TeamCity

- Artifactory

- Chef

- Vagrant

- Go

DEVELOPERRUN TESTS

LOCALLYPACKAGE

VAGRANTCHEFTEST

COMMIT

TEAMCITY PACKAGE GO

DEPLOY INTEGRATION

TEST INTEGTATION

DEPLOY STAGE

TEST STAGEDEPLOY

PRODUCTIONTEST

PRODUCTION

Let's wrap it up- Continuous integration (step by step)

- No feature branching- Packaging

- Integration pipeline

- Continuous deployment (step by step)

- Self installable components

- Deploy pipeline

- Provisioning

Thanks

Recommended