53
Continuous Delivery made possible Domenico Musto @mimmozzo [email protected]

Continuous delivery made possible

Embed Size (px)

Citation preview

Page 1: Continuous delivery made possible

Continuous Deliverymade possible

Domenico Musto

@mimmozzo [email protected]

Page 2: Continuous delivery made possible

What do I do ?

.NET

Web REST

AgileAutomation Testing

C#Team leading

Ruby

Page 3: Continuous delivery made possible

What is continuous delivery ?

Page 4: Continuous delivery made possible

Continuous integration

Page 5: Continuous delivery made possible

Continuous integration

Continuous deployment

Page 6: Continuous delivery made possible

Continuous integration

Continuous deployment

Continuous delivery

Page 7: Continuous delivery made possible

Continuous integration

The process of frequently integrating the code you are

working on with everybody else’s code

Page 8: Continuous delivery made possible

Continuous deployment

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

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

Page 9: Continuous delivery made possible

Continuous delivery

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

Page 10: Continuous delivery made possible

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

Page 11: Continuous delivery made possible

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

Page 12: Continuous delivery made possible

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

Page 13: Continuous delivery made possible

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

Page 14: Continuous delivery made possible

continuous integration and

continuous deployment enable

continuous delivery

Page 15: Continuous delivery made possible

Why do I care about all this ?

Page 16: Continuous delivery made possible

50%

Page 17: Continuous delivery made possible

It’s about build the right thing

Page 18: Continuous delivery made possible

35%

Page 19: Continuous delivery made possible

Reduce costs and risk by delivering small incremental changes

Page 20: Continuous delivery made possible
Page 21: Continuous delivery made possible

Motivation

Page 22: Continuous delivery made possible

How do I get there ?

Page 23: Continuous delivery made possible

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

Page 24: Continuous delivery made possible

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

- It’s a cultural change

Page 25: Continuous delivery made possible

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

Page 26: Continuous delivery made possible

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

Page 27: Continuous delivery made possible

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

- Enable continuous integration

Page 28: Continuous delivery made possible

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

- Enable continuous integration

- Enable continuous deployment

Page 29: Continuous delivery made possible

Continuous integration

Page 30: Continuous delivery made possible

Feature branchingvs

branching by abstraction

Page 31: Continuous delivery made possible

by Martin Fowler

Page 32: Continuous delivery made possible

by Martin Fowler

Page 33: Continuous delivery made possible

by Martin Fowler

Page 34: Continuous delivery made possible

by Martin Fowler

Page 35: Continuous delivery made possible

by Martin Fowler

Page 36: Continuous delivery made possible

Solid testing strategy

Page 37: Continuous delivery made possible

Integration pipeline

Page 38: Continuous delivery made possible

DEVELOPERRUN TESTS

LOCALLYCOMMIT

CI TOOLBUILDUNIT TESTS

PACKAGE

Page 39: Continuous delivery made possible
Page 40: Continuous delivery made possible

Continuous deployment

Page 41: Continuous delivery made possible

Packaging

Page 42: Continuous delivery made possible

Automatic installation and configuration

Page 43: Continuous delivery made possible

Database

Page 44: Continuous delivery made possible

Blue Green

Page 45: Continuous delivery made possible

Infrastructure as code

Page 46: Continuous delivery made possible

Decouple release from deployment

Page 47: Continuous delivery made possible

Deploy pipeline

Page 48: Continuous delivery made possible
Page 49: Continuous delivery made possible

Tools- TeamCity

- Artifactory

- Chef

- Vagrant

- Go

Page 50: Continuous delivery made possible

DEVELOPERRUN TESTS

LOCALLYPACKAGE

VAGRANTCHEFTEST

COMMIT

Page 51: Continuous delivery made possible

TEAMCITY PACKAGE GO

DEPLOY INTEGRATION

TEST INTEGTATION

DEPLOY STAGE

TEST STAGEDEPLOY

PRODUCTIONTEST

PRODUCTION

Page 52: Continuous delivery made possible

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

Page 53: Continuous delivery made possible

Thanks