1 of 34

2 of 34

3 of 34

October 24-28, 2021

Brad McCoy�CNCF Ambassador

Driving Innovation with

Keptn and Interoperability

Photo

Sergio Méndez�DevOps Engineer�Yalo

4 of 34

Problem Statement

5 of 34

Why we choose to adopt Keptn?

6 of 34

Why we choose to adopt Keptn

7 of 34

Why we choose to adopt Keptn

8 of 34

Why we choose to adopt Keptn

Pipeline

each tool can listen to an event in the pipeline

you can swap them as you like

9 of 34

What is Interoperability

Interoperability is the real-time data exchange between different systems communicating in the same language. Incoming data is instantly interpreted and presented in the same state it is received, preserving the original context.

Integration, on the other hand, is the process of combining multiple applications, so they function as one uninterrupted system, which usually involves the use of middleware. Integration facilitates the interaction of products talking to each other in their current state while maintaining compatibility with future versions of themselves.

10 of 34

Why we choose to adopt Keptn

11 of 34

Why we choose to adopt Keptn

Increase In Quality

Standardised Processes

Promote between stages

Auto-Remediation

Release Validation

Triggering Tools via CloudEvents / Orchestrating Tools

12 of 34

Load

Int

QA

Stag

Prod

Environments

13 of 34

apiVersion: apps/v1

kind: Deployment

metadata:

name: podtato-head-left-arm

spec:

template:

spec:

containers:

- name: podtato-head-left-arm

image: ghcr.io/podtato-head/left-arm:0.2.7

Progressive Delivery with GitOps

apiVersion: apps/v1

kind: Deployment

metadata:

name: podtato-head-left-arm

spec:

template:

spec:

containers:

- name: podtato-head-left-arm

env:

- name: PODTATO_PART_NUMBER

value: "02"

version.yaml

settings.yaml

14 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps

  • podtato-head
  • base
  • env
  • load
  • int

settings.yaml

version.yaml

settings.yaml

version.yaml

15 of 34

  • No automated testing (exception Flagger, Rollouts)

  • Only information about the technical health of objects not application health, experience of the user

  • Infrastructure readiness, checking of prerequisites

  • Promoting between stages

16 of 34

What is Interoperability

Interoperability is the ability of disparate and diverse organizations to interact toward mutually beneficial and agreed common goals. It involves the sharing of information and knowledge between the organizations, through the business processes they support, by means of the exchange of data between their respective ICT systems.

17 of 34

Progressive Delivery with GitOps

18 of 34

Shipyard file

apiVersion: "spec.keptn.sh/0.2.3"

kind: "Shipyard"

metadata:

name: "detroit-demo"

spec:

stages:

- name: "load"

sequences:

- name: "performance-test"

tasks:

- name: "load-test"

19 of 34

Shipyard

apiVersion: "spec.keptn.sh/0.2.3"

kind: "Shipyard"

metadata:

name: "detroit-demo"

spec:

stages:

- name: "load"

20 of 34

Why we choose to adopt Keptn

apiVersion: "spec.keptn.sh/0.2.3"

kind: "Shipyard"

metadata:

name: "detroit-demo"

spec:

stages:

- name: "load"

sequences:

- name: "performance-test"

21 of 34

Why we choose to adopt Keptn

apiVersion: "spec.keptn.sh/0.2.3"

kind: "Shipyard"

metadata:

name: "detroit-demo"

spec:

stages:

- name: "load"

sequences:

- name: "performance-test"

tasks:

- name: "load-test"

22 of 34

Shipyard file

  • stages
  • sequences
  • tasks

Stage

Sequence

task

task

Stage

Sequence

task

task

Sequence

task

task

23 of 34

Shipyard file

  • stages
  • sequences
  • tasks

Stage

Sequence

task

task

Service

Project

24 of 34

Why we choose to adopt Keptn

25 of 34

Why we choose to adopt Keptn

26 of 34

Load

Int

QA

Stag

Prod

Environments

27 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps & Keptn

smoke-test

load-test

git-promotion

evaluation

28 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps & Keptn

smoke-test

load-test

git-promotion

evaluation

29 of 34

smoke-test

load-test

evaluation

Progressive Delivery with GitOps & Keptn

Load

30 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps & Keptn

smoke-test

load-test

git-promotion

evaluation

api-test

trace-test

evaluation

git-promotion

31 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps & Keptn

smoke-test

load-test

git-promotion

evaluation

api-test

trace-test

evaluation

git-promotion

api-test

trace-test

evaluation

git-promotion

32 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps & Keptn

smoke-test

load-test

git-promotion

evaluation

api-test

trace-test

evaluation

git-promotion

api-test

trace-test

evaluation

git-promotion

api-test

trace-test

evaluation

git-promotion

remediation

33 of 34

Load

settings.yaml

version.yaml

version.yaml

settings.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

settings.yaml

version.yaml

Int

QA

Stag

Prod

Progressive Delivery with GitOps & Keptn

smoke-test

load-test

git-promotion

evaluation

api-test

trace-test

evaluation

git-promotion

api-test

trace-test

evaluation

git-promotion

api-test

trace-test

evaluation

git-promotion

remediation

34 of 34

Thank you!

sh.keptn.event.talk.finished

@bradmccoydev

@sergioarmgpl

keptn.sh

slack.keptn.sh

github.com/keptn