Slide 1

Slide 1 text

Accelerating Continuous delivery with DORA, Cloud Deploy & Jfrog Pipelines Archy - Hybrid Cloud CE @Google Cloud Canada Jenn viau - Cloud Engineering @PwC Canada

Slide 2

Slide 2 text

Whoami @jenn_viau Jenn Viau Director, Cloud Engineering

Slide 3

Slide 3 text

ACME Co. A biking shop in trouble ● Slow innovation ● High Operational Costs ● Security Concerns ● Long Lead time for changes

Slide 4

Slide 4 text

Whoami @archyufa Archy Khayretdinov Hybrid Cloud Specialist

Slide 5

Slide 5 text

Online Bike Shop ● 11 Services ● 1 Team ● 2 Months URL: http://store-dev.automateit.ca/

Slide 6

Slide 6 text

Online Bike Shop Deployment ● Manual build ● Manual deployment ● Dev -> Stg -> Prod Source code repo: https://github.com/gdg-cloud-montreal/online-boutique

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

● Started by Gene Kim, Jez Humble & Puppet ● First to look at 4 key metric ● Key technical practices and obstacles to adoption 2013 State of DevOps Report 2014 State of DevOps Report ● Phd Nicole Forsgren joined the project ● Largest survey to date ● Companies with high… performance are twice as likely to exceed their profitability, market share and productivity goals” ● Speed and stability are not a trade-off

Slide 10

Slide 10 text

New reports (almost) every year! Founded in 2015 Acquired in 2018

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Deployment frequency Lead time for changes Software Delivery & Operations Performance Time to restore service Change fail rate (%) Speed Stability

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Elite performers vs Low Yes, you read correctly. This is not an error. more frequent code deployments faster lead time to deploy lower change failure rate (changes are 1/3 as likely to fail) faster time to recover from incidents

Slide 15

Slide 15 text

Stability Velocity

Slide 16

Slide 16 text

Predictive analysis by DORA Capability A Outcome Capability B DORA's research program

Slide 17

Slide 17 text

bfd

Slide 18

Slide 18 text

h ps://bit.ly/dora-bfd

Slide 19

Slide 19 text

Example: Applying Dora Research to improve Online Bike Shop

Slide 20

Slide 20 text

Less Rework

Slide 21

Slide 21 text

Less Rework Continuous Delivery

Slide 22

Slide 22 text

Less Rework Technical Practices Continuous Delivery

Slide 23

Slide 23 text

Less Rework Technical Practices Test Automation Continuous Testing Deployment Automation Version Control Trunk-based Development Test Data Management Shift Left on Security Monitoring & Observability Loosely Coupled Architecture Proactive Notifications Empowered Teams Code Maintainability Database Change Management Continuous Integration Continuous Delivery

Slide 24

Slide 24 text

Transformational Leadership Less Rework Technical Practices Test Automation Continuous Testing Deployment Automation Version Control Trunk-based Development Test Data Management Shift Left on Security Monitoring & Observability Loosely Coupled Architecture Proactive Notifications Empowered Teams Code Maintainability Database Change Management Continuous Integration Continuous Delivery

Slide 25

Slide 25 text

Transformational Leadership Vision Inspirational Communication Intellectual Stimulation Supportive Leadership Personal Recognition Less Rework Technical Practices Test Automation Continuous Testing Deployment Automation Version Control Trunk-based Development Test Data Management Shift Left on Security Monitoring & Observability Loosely Coupled Architecture Proactive Notifications Empowered Teams Code Maintainability Database Change Management Continuous Integration Continuous Delivery

Slide 26

Slide 26 text

Transformational Leadership Vision Inspirational Communication Intellectual Stimulation Supportive Leadership Personal Recognition Less Rework Technical Practices Test Automation Continuous Testing Deployment Automation Version Control Trunk-based Development Test Data Management Shift Left on Security Monitoring & Observability Loosely Coupled Architecture Proactive Notifications Empowered Teams Code Maintainability Database Change Management Continuous Integration Continuous Delivery Less Rework

Slide 27

Slide 27 text

cloud.google.com/devops

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

2 Months Later …

Slide 30

Slide 30 text

Online Bike Shop v2 ● 11 Microservices ● 7 Teams ● <1 month

Slide 31

Slide 31 text

Online Bike Shop Deployment ● Automate build ● Manual deployment ● Dev -> Stg -> Prod Source code repo: https://github.com/gdg-cloud-montreal/online-boutique

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Using CI tools for Continuous Delivery Source Image Dev Env Manifest Render Deploy to Dev Build (CI) Delivery (CD) Stg Env Manifest Render Deploy to Stg $ bash $ bash $ bash $ bash

Slide 34

Slide 34 text

CD with Kubernetes is a Journey Pipeline Changes Scale / Maturity Multi-environment Static config Scripted Manifest Rendering Manifest Rendering Products Advanced CD Techniques: ● Approvals ● Audit ● Rollback ● Blue-Green ● Canary

Slide 35

Slide 35 text

Using CI tools for Continuous Delivery

Slide 36

Slide 36 text

Google Cloud Deploy Streamlined, fully-managed, Continuous Delivery

Slide 37

Slide 37 text

Google Cloud Deploy ● Fully-managed and scalable ● Easy integration with CI tools ● Control and measurability (e.g. DORA) ● Provides built-in security controls

Slide 38

Slide 38 text

Google Cloud Deploy - How it works? Dev K8s Cluster Cloud Deploy UI Stg K8s Cluster Prod K8s Cluster … Setup Cloud Deploy Pipeline Configure K8s Targets Delivery (CD) # cd.yaml apiVersion: deploy.cloud kind: delivery-pipeline serialPipeline: stages: - targetId: dev-cluster profiles: - skaffold-dev ... - targetId: stg-cluster profiles: - skaffold-stg # target.yaml apiVersion: deploy.cloud kind: target metadata: name: dev-cluster requireApproval: false gke: cluster: /location/clusters/shop-dev $ gcloud deploy apply --file cd.yaml $ gcloud deploy apply --file cd-targets.yaml

Slide 39

Slide 39 text

Google Cloud Deploy - How it works? Dev K8s Cluster Cloud Deploy UI Stg K8s Cluster Prod K8s Cluster … Build (CI) gcloud deploy releases Update CI Pipeline with Release to CD Delivery (CD)

Slide 40

Slide 40 text

Google Cloud Deploy - How it works? Rendering choice Dev K8s Cluster Cloud Deploy UI Stg K8s Cluster Prod K8s Cluster … Render Manage Deployment Targets deploy store Build (CI) deploy output.yaml release Delivery (CD)

Slide 41

Slide 41 text

Render manifests Replace image references in manifests with the pushed image $ skaffold render output.yaml Store apiVersion: skaffold/v2beta38 kind: Config … deploy: kubectl: manifests: - ./adservice.yaml … profiles: -name: dev deploy: helm: releases: - name:checkout-chart remoteChart:jfrog.io/bikeshop/checkout valuesFiles: - ./charts/dev-values.yaml -name: stg -name: prod ● Cloud-Native Developer Productivity Tool ● Declarative, Portable Config

Slide 42

Slide 42 text

Google Cloud Deploy - How it works? Rendering choice Dev K8s Cluster Cloud Deploy UI ● Promote Rollout ● DIFF & Blame ● Monitor Rollout ● Rollback ● Dora Metrics Stg K8s Cluster Prod K8s Cluster … Render Manage Deployment Targets deploy store Build (CI) deploy output.yaml release $ skaffold apply output-dev.yaml

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

Online Bike Shop v3 ● Changes trigger deployment to dev ● Promote releases ● Rollback on failures ● Change logs URL: http://store.automateit.ca/

Slide 45

Slide 45 text

Demo Stack URL: http://store-dev.automateit.ca/

Slide 46

Slide 46 text

Online Bike Shop Team after 4 months of improvements ● 11 Microservices ● 7 Teams ● Dora Metrics: ○ Deployment Frequency: B/n once per hour and once per day ○ Time to restore service: Less than one hour ○ Change fail rate: 0–15% ● Outcomes: ○ Deployment during office hours (Less Burnout) ○ Less Stress ○ Less Deployment Pain

Slide 47

Slide 47 text

Part 5 Dora Metrics and Epilog

Slide 48

Slide 48 text

cloud.google.com/devops

Slide 49

Slide 49 text

The 4 Dora Key Metrics are the outcomes! ● They show where are you compare to your industry ● They provide data-driven business improvements ● They measured at the team level ● You don’t need to trade off speed for stability Deployment frequency Lead time for changes Time to restore service Change fail rate Speed Stability

Slide 50

Slide 50 text

The 4 Dora Key Metrics are the outcomes! ● They show where are you compare to your industry ● They provide data-driven business improvements ● They measured at the team level ● You don’t need to trade off speed for stability Deployment frequency Lead time for changes Time to restore service Change fail rate Speed Stability

Slide 51

Slide 51 text

Get Better at Getting Better

Slide 52

Slide 52 text

It takes work.

Slide 53

Slide 53 text

It takes work. We don’t have to do it all at once.

Slide 54

Slide 54 text

Proprietary + Confidential It takes work. We don’t have to do it all at once. will probably fail if we try

Slide 55

Slide 55 text

SHOWNOTES: ● Our Slides: ● CI Repo - github.com/gdg-cloud-montreal/online-boutique ● CD Repo - github.com/gdg-cloud-montreal/swampup-2022 Jenn Viau Director, Cloud Engineering @PWC Ayrat Khayretdinov CNCF Ambassador, CE @Google Cloud @jennviau @archyufa

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

Thank you! Jenn Viau Director, Cloud Engineering @PWC Ayrat Khayretdinov CNCF Ambassador, CE @Google Cloud @jenn_viau @archyufa