Our continuous delivery journey

Post on 12-Apr-2017

225 views 1 download

Transcript of Our continuous delivery journey

OUR CONTINUOUS DELIVERY JOURNEY

Suzie Prince ThoughtWorks

Define Continuous Delivery (CD)

Tell some stories about our journey to CD

Review learnings and share tips

WHAT I WILL COVER

Suzie Prince

Head of Product for ThoughtWorks products group

Product Manager for Snap CI

10 + years experience in software development including agile and CD practices

Tweeting @pm_suzie

WHAT IS CD?

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

CONTINUOUS DELIVERY

RELEASE

RELEASE

RELEASE

RELEASE

YEAR

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

💁🍩

💁🍩

💁🍩

💁🍩

RELEASE

YEAR

RELEASE

RELEASE

RELEASE

RELEASE

RELEASE

RELEASE

RELEASE25% RELEASE TIME WAS

INSTALLER TESTING

YEAR

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

RELEASE

RELEASE

RELEASE

RELEASE

YEAR

RELEASE

RELEASE

RELEASE

RELEASE<5% RELEASE TIME WAS

INSTALLER TESTING

YEAR

HIDDEN SILOS

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

OUR LEARNINGSAutomate, automate, automate

Look for hidden silos

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelinesContainers!

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

Containers!

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

✔✔

Containers!

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

✔✔

Containers!

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

✔✔

Containers!

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

✔✔

✔✔

Containers!

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

✔✔

✔✔

Containers!✔

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

GOOD JOB!

✔✔

✔✔

Containers!✔

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

“Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug

fixes and experiments—into production, or into the hands of users, safely and

quickly in a sustainable way.”

- Jez Humble, continuousdelivery.com

Microservices

RabbitMQ

NagiosAutomated infrastructureDeployment pipelines

GOOD JOB!

✔✔

✔✔

Containers!✔

Microservices

OUR LEARNINGSDelivering value, not doing CD is your job

CD is a journey

TAKE AWAYS

🍩 🍩🍩🍩 🍩

🍩

🍩🍩🍩

🍩

PRACTICE CONTINUOUS INTEGRATION

🍩

FREQUENCY REDUCES DIFFICULTY

🍩

DOING CONTINUOUS DELIVERY IS NOT YOUR JOB

GOOD JOB!

🍩

INVOLVE THE WHOLE TEAM

🍓

AUTOMATE EVERYTHING

CONTINUOUS DELIVERY IS A JOURNEY…

Keep your goals in mind

Look back and retrospect

Focus on what is not good now and improve that

Don’t be too critical

Don’t fear redesign, don’t fear rework

🍩 🍓

CONTINUOUS DELIVERY IS A JOURNEY…

Keep your goals in mind

Look back and retrospect

Focus on what is not good now and improve that

Don’t be too critical

Don’t fear redesign, don’t fear rework