77
WE THOUGHT WE WERE DOING CONTINUOUS DELIVERY AND THEN… Aravind and Suzie ThoughtWorks

QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

WE THOUGHT WE WERE DOING CONTINUOUS

DELIVERY AND THEN…Aravind and Suzie

ThoughtWorks

Page 2: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Define Continuous Delivery (CD)

Tell some stories :)

Review learnings and share tips

WHAT WE WILL COVER

Page 3: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Aravind SV (“Duck”)

Product Manager for GoCD

10+ years of helping different clients with Agile/XP, CI and CD practices

Tweeting from @arvindsv

Page 4: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Suzie Prince

Head of Product for ThoughtWorks products group

Product Manager for Snap CI

10 + years experience with agile including CI and CD practices

Tweeting @pm_suzie

Page 5: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 6: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

WHAT IS CD?

Page 7: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

“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.”

Page 8: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

CONTINUOUS DELIVERY

Do we need this?

Page 9: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 10: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 11: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

RELEASE

RELEASE

RELEASE

RELEASE

Deliver becomes release

YEAR

Page 12: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 13: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 14: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 15: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 16: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 17: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 18: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 19: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 20: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 21: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 22: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 23: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 24: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 25: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

RELEASE

YEAR

RELEASE

RELEASE

RELEASE

Page 26: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

RELEASE

RELEASE

RELEASE

RELEASE

YEAR

25% RELEASE TIME WAS INSTALLER TESTING

Page 27: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 28: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer TestsStaging DeliverUser

Acceptance

Page 29: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 30: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 31: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 32: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 33: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Staging DeliverUser

AcceptanceCommit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 34: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 35: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

RELEASE

RELEASE

RELEASE

RELEASE

YEAR

Page 36: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

RELEASE

RELEASE

RELEASE

Deliver becomes release

YEAR

RELEASE<5% RELEASE TIME WAS

INSTALLER TESTING

Page 37: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

HIDDEN SILOS

Page 38: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 39: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Commit Build and Test Automated Tests Installer Tests Staging DeliverUser

Acceptance

Page 40: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

LEARNINGSAutomate, automate, automate

Look for hidden silos

Page 41: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 42: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 43: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Before going open-source …

Page 44: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

REGRESSION

3 to 4 month release cycle

DEV & TEST

REGRESSION

YEAR

Page 45: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 46: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

REGRESSION

INSTALLER TESTS

WRITE RELEASE NOTES

PERFORMANCE TESTS

UPLOAD/PUBLISH INSTALLERS

1 to 1.5 months

Page 47: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

REGRESSION

INSTALLER TESTS

WRITE RELEASE NOTES

PERFORMANCE TESTS

1 to 1.5 months

Automated publishing of releases

Page 48: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

REGRESSION

WRITE RELEASE NOTES

PERFORMANCE TESTS

1 to 1.5 months

Automated publishing of releases

Automated installer tests

Page 49: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

REGRESSION

PERFORMANCE TESTS

1 to 1.5 months

Automated publishing of releases

Automated installer tests

Automated release note generation

Page 50: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

1 to 1.5 months

Automated publishing of releases

Automated installer tests

Automated release note generation

Automated performance tests (in progress)

REGRESSION

Page 51: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

Regularly a month, not decided by regression cycle

Automated publishing of releases

Automated installer tests

Automated release note generation

Automated performance tests (in progress)

Regression is just a small buffer now

Page 52: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DEV & TEST

Automated publishing of releases

Automated installer tests

Automated release note generation

Automated performance tests (in progress)

DEV & TEST

DEV & TEST

DEV & TEST

DEV & TEST

ReleaseRelease Release Release

Page 53: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

LEARNINGSFrequency reduces difficulty

Automation costs pay for themselves

Page 54: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 55: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 56: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 57: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

MicroservicesRabbitMQ

NagiosAutomated infrastructureDeployment pipelines

GOOD JOB!

Page 58: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

“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.”

How do we do this quickly?-Suzanne PrinceImage from blog. CI and CD.-Suzanne Prince

Page 59: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

“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

How do we do this quickly?-Suzanne PrinceImage from blog. CI and CD.-Suzanne Prince

Page 60: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

“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

How do we do this quickly?-Suzanne PrinceImage from blog. CI and CD.-Suzanne Prince

Page 61: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

“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

How do we do this quickly?-Suzanne PrinceImage from blog. CI and CD.-Suzanne Prince

Page 62: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

“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

How do we do this quickly?-Suzanne PrinceImage from blog. CI and CD.-Suzanne Prince

Page 63: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

MicroservicesRabbitMQ

NagiosAutomated infrastructureDeployment pipelines

Page 64: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

Microservices

Page 65: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 66: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 67: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 68: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 69: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including
Page 70: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

LEARNINGSDelivering value, not doing CD is your job

CD is a journey

Page 71: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

TAKE AWAYS

Page 72: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

PRACTICE CONTINUOUS INTEGRATION

Page 73: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

FREQUENCY REDUCES DIFFICULTY

Page 74: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

DOING CONTINUOUS DELIVERY IS NOT YOUR JOB

Microservices

Chef Server

RabbitMQ

Nagios

Automated infrastructure

Deployment pipelines

Page 75: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

INVOLVE THE WHOLE TEAM

I feel like I want to remove this one. Or at least not have it at the end. Maybe we need a CD is a journey slide?

Page 76: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

AUTOMATE EVERYTHING

Page 77: QCon- We thought we were doing Continuous Delivery and ... › system › files › presentation... · “Continuous Delivery is the ability to get changes of all types—including

PARTING THOUGHTS…

You will look back on what you did later and see how it could have been better

Focus on what is not good now and improve that

Don’t be too critical but know that where you are right now is not the best place you could be

Don’t fear redesign, don’t fear rework, you’ll end up doing it anyway