how to make dev ops work @ netlight edge x berlin

107
How to Make DevOps Work Till Krullmann

Upload: ferdinand-von-den-eichen

Post on 14-Apr-2017

139 views

Category:

Software


2 download

TRANSCRIPT

Page 1: How To Make Dev Ops Work @ Netlight Edge X Berlin

How to Make DevOps WorkTill Krullmann

Page 2: How To Make Dev Ops Work @ Netlight Edge X Berlin

About MeTill Krullmann

from Munich7 years in IT consultingwith Netlight since 2013Software development / architecture background1 year in DevOps-related roles

Page 3: How To Make Dev Ops Work @ Netlight Edge X Berlin

About this Talk

Structure

About DevOpsContinuous DeliveryService-Level ObjectivesOrganizing WorkDriving DevOps Culture

Page 4: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

Page 5: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

is ... isn't ...

Page 6: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

is ... isn't ...

a direction a destination

Page 7: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

is ... isn't ...

a direction a destinationtearing down the "fence"between dev & ops

moving or repainting the fence

Page 8: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

is ... isn't ...

a direction a destinationtearing down the "fence"between dev & ops

moving or repainting the fence

a cultural meme a person you hire

Page 9: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

is ... isn't ...

a direction a destinationtearing down the "fence"between dev & ops

moving or repainting the fence

a cultural meme a person you hireapplying Agile ideas toOperations

"Operations 2.0"

Page 10: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps

is ... isn't ...

a direction a destinationtearing down the "fence"between dev & ops

moving or repainting the fence

a cultural meme a person you hireapplying Agile ideas toOperations

"Operations 2.0"

enabling devs to do "self-service" operations

putting extra work ondevelopers' shoulders

Page 11: How To Make Dev Ops Work @ Netlight Edge X Berlin

5 DevOps Tenets

Page 12: How To Make Dev Ops Work @ Netlight Edge X Berlin

5 DevOps TenetsOperationsPerspective

Take an operations perspective when looking atrequirements. Consider service-level requirements likeavailability, latency, and security.

Page 13: How To Make Dev Ops Work @ Netlight Edge X Berlin

5 DevOps TenetsOperationsPerspective

Take an operations perspective when looking atrequirements. Consider service-level requirements likeavailability, latency, and security.

DeveloperResponsibility

You build it, you run it - developers' responsibilities do notend when code is committed. Devs are involved in allsteps including deployment and incident handling.

Page 14: How To Make Dev Ops Work @ Netlight Edge X Berlin

5 DevOps TenetsOperationsPerspective

Take an operations perspective when looking atrequirements. Consider service-level requirements likeavailability, latency, and security.

DeveloperResponsibility

You build it, you run it - developers' responsibilities do notend when code is committed. Devs are involved in allsteps including deployment and incident handling.

Deployment Process There is one deployment process that everyone is awareof, agrees on and adheres to. The process is documentedand is subject to further refinement and evolution.

Page 15: How To Make Dev Ops Work @ Netlight Edge X Berlin

5 DevOps TenetsOperationsPerspective

Take an operations perspective when looking atrequirements. Consider service-level requirements likeavailability, latency, and security.

DeveloperResponsibility

You build it, you run it - developers' responsibilities do notend when code is committed. Devs are involved in allsteps including deployment and incident handling.

Deployment Process There is one deployment process that everyone is awareof, agrees on and adheres to. The process is documentedand is subject to further refinement and evolution.

Continuous Delivery Release often and with minimal need for humaninteraction. Automate as much as possible.

Page 16: How To Make Dev Ops Work @ Netlight Edge X Berlin

5 DevOps TenetsOperationsPerspective

Take an operations perspective when looking atrequirements. Consider service-level requirements likeavailability, latency, and security.

DeveloperResponsibility

You build it, you run it - developers' responsibilities do notend when code is committed. Devs are involved in allsteps including deployment and incident handling.

Deployment Process There is one deployment process that everyone is awareof, agrees on and adheres to. The process is documentedand is subject to further refinement and evolution.

Continuous Delivery Release often and with minimal need for humaninteraction. Automate as much as possible.

Infrastructure asCode

Use scripts and configuration files instead of manualconfiguration steps. Develop infrastructure code with thesame set of practices as application code (e.g. versioncontrol, code reviews and tests).

Page 17: How To Make Dev Ops Work @ Netlight Edge X Berlin

Continuous Delivery

Page 18: How To Make Dev Ops Work @ Netlight Edge X Berlin

Continuous Delivery

Page 19: How To Make Dev Ops Work @ Netlight Edge X Berlin

Continuous DeliveryMake small, frequent releases

Page 20: How To Make Dev Ops Work @ Netlight Edge X Berlin

Continuous DeliveryMake small, frequent releases

Start releasing into "production" as early as possible

Page 21: How To Make Dev Ops Work @ Netlight Edge X Berlin

Continuous DeliveryMake small, frequent releases

Start releasing into "production" as early as possible

Create a build pipeline with a high degree of automation

Page 22: How To Make Dev Ops Work @ Netlight Edge X Berlin

Continuous DeliveryMake small, frequent releases

Start releasing into "production" as early as possible

Create a build pipeline with a high degree of automation

Keep everything under version control

Page 23: How To Make Dev Ops Work @ Netlight Edge X Berlin

Release Trains & Feature Toggles

Page 24: How To Make Dev Ops Work @ Netlight Edge X Berlin

Release Trains & Feature Toggles

Source: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

Page 25: How To Make Dev Ops Work @ Netlight Edge X Berlin

Release Trains & Feature Toggles

Source: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

Page 26: How To Make Dev Ops Work @ Netlight Edge X Berlin

Architecture

Page 27: How To Make Dev Ops Work @ Netlight Edge X Berlin

ArchitectureThe system architecture should facilitate the delivery process.

Page 28: How To Make Dev Ops Work @ Netlight Edge X Berlin

ArchitectureThe system architecture should facilitate the delivery process.

The team structure is reflected in the product structure and deploymentprocess.

Page 29: How To Make Dev Ops Work @ Netlight Edge X Berlin

ArchitectureThe system architecture should facilitate the delivery process.

The team structure is reflected in the product structure and deploymentprocess.

An approach based on microservices and containerization is well-suited forsmall, autonomous teams.

Page 30: How To Make Dev Ops Work @ Netlight Edge X Berlin

Service-Level Objectives

Page 31: How To Make Dev Ops Work @ Netlight Edge X Berlin

Service-Level Terminology

Page 32: How To Make Dev Ops Work @ Netlight Edge X Berlin

Service-Level Terminology

Service-LevelIndicator (SLI)

A quantitative measure of some aspect of the level ofservice that is provided.

Examples: request latency, throughput, availability, errorrate

Page 33: How To Make Dev Ops Work @ Netlight Edge X Berlin

Service-Level Terminology

Service-LevelIndicator (SLI)

A quantitative measure of some aspect of the level ofservice that is provided.

Examples: request latency, throughput, availability, errorrate

Service-LevelObjective (SLO)

A target value or range for a service level that is measuredby an SLI.

Examples:

99% ≤ availability ≤ 99.9%request latency < 500ms

Page 34: How To Make Dev Ops Work @ Netlight Edge X Berlin

Service-Level Terminology

Service-LevelIndicator (SLI)

A quantitative measure of some aspect of the level ofservice that is provided.

Examples: request latency, throughput, availability, errorrate

Service-LevelObjective (SLO)

A target value or range for a service level that is measuredby an SLI.

Examples:

99% ≤ availability ≤ 99.9%request latency < 500ms

Service-LevelAgreements (SLA)

An agreement with the users of the service that includesconsequences of meeting (or missing) the SLOs theycontain.

Page 35: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Precision

Page 36: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Precision"The request latency should be below 500ms"

Page 37: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Precision"The request latency should be below 500ms"

vs.

"The request latency of all HTTP GET requests that return a status code200 should be below 500ms"

Page 38: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Precision"The request latency should be below 500ms"

vs.

"The request latency of all HTTP GET requests that return a status code200 should be below 500ms"

vs.

"The 90th percentile of the request latency of HTTP GET requests thatreturn a status code 200, aggregated over 1-minute intervals, should bebelow 500ms"

Page 39: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Guidelines

Page 40: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Guidelines

Define SLOs early

SLOs can provide a valuable base for architectural decisions and planning.

Page 41: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Guidelines

Define SLOs early

SLOs can provide a valuable base for architectural decisions and planning.

Keep it simple

Avoid too complicated aggregations when defining SLOs.

Page 42: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Guidelines

Define SLOs early

SLOs can provide a valuable base for architectural decisions and planning.

Keep it simple

Avoid too complicated aggregations when defining SLOs.

Have as few SLOs as possible

If you can't win an argument by quoting an SLO, it's probably not worth keeping.

Page 43: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Guidelines

Define SLOs early

SLOs can provide a valuable base for architectural decisions and planning.

Keep it simple

Avoid too complicated aggregations when defining SLOs.

Have as few SLOs as possible

If you can't win an argument by quoting an SLO, it's probably not worth keeping.

Avoid absolutes

No system will ever be "infinitely scalable" or "always available".

Page 44: How To Make Dev Ops Work @ Netlight Edge X Berlin

Defining SLOs - Guidelines

Define SLOs early

SLOs can provide a valuable base for architectural decisions and planning.

Keep it simple

Avoid too complicated aggregations when defining SLOs.

Have as few SLOs as possible

If you can't win an argument by quoting an SLO, it's probably not worth keeping.

Avoid absolutes

No system will ever be "infinitely scalable" or "always available".

Don't reach too high

It's better to start with a loose target and tighten it later.

Page 45: How To Make Dev Ops Work @ Netlight Edge X Berlin

Monitoring

Page 46: How To Make Dev Ops Work @ Netlight Edge X Berlin

Monitoring

Alerts

The system can tell us when it's broken, or about to break soon.

Some monitoring tools can also perform simple actions to repair the systemautomatically.

Page 47: How To Make Dev Ops Work @ Netlight Edge X Berlin

Monitoring

Alerts

The system can tell us when it's broken, or about to break soon.

Some monitoring tools can also perform simple actions to repair the systemautomatically.

Analysis

Monitoring can help analyze bugs and other incidents by looking at what happenedat the same time.

Page 48: How To Make Dev Ops Work @ Netlight Edge X Berlin

Monitoring

Alerts

The system can tell us when it's broken, or about to break soon.

Some monitoring tools can also perform simple actions to repair the systemautomatically.

Analysis

Monitoring can help analyze bugs and other incidents by looking at what happenedat the same time.

Visibility

Set up monitoring dashboards as early as possible!

This also helps the team understand DevOps as an integral part of the deliveryprocess.

Page 49: How To Make Dev Ops Work @ Netlight Edge X Berlin

Organizing Work

Page 50: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps & Agile

Page 51: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps & Agile

User Stories Try to fit DevOps stories into the developmentprocess (e.g. Scrum)

Page 52: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps & Agile

User Stories Try to fit DevOps stories into the developmentprocess (e.g. Scrum)

  Developers are stakeholders too!

Page 53: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps & Agile

User Stories Try to fit DevOps stories into the developmentprocess (e.g. Scrum)

  Developers are stakeholders too!

Process Experiment with different approaches to DevOpswork. Scrum may not always be the bestmethodology.

Page 54: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps-related roles

Page 55: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps-related roles

DevOps Engineer Sets up and tailors the tools for the developmentteamBuilds and maintains the continuous delivery pipelineSets up and maintains infrastructure for automatedtestsAutomates provisioning and deploymentSets up and configures monitoring

Page 56: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps-related roles

DevOps Engineer Sets up and tailors the tools for the developmentteamBuilds and maintains the continuous delivery pipelineSets up and maintains infrastructure for automatedtestsAutomates provisioning and deploymentSets up and configures monitoring

DevOps Architect Addresses cross-team technical concerns: releases,versioning, 3rd-party integration...May work as a technical counterpart to the productowner

Page 57: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps-related roles

DevOps Engineer Sets up and tailors the tools for the developmentteamBuilds and maintains the continuous delivery pipelineSets up and maintains infrastructure for automatedtestsAutomates provisioning and deploymentSets up and configures monitoring

DevOps Architect Addresses cross-team technical concerns: releases,versioning, 3rd-party integration...May work as a technical counterpart to the productowner

DevOps Coach Spreads DevOps culture in the teamAnalyzes and assesses current processesSupports developers in taking on operations-orientedtasks

Page 58: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Page 59: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

Page 60: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

Page 61: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

likes experiments & cutting edgetechnology

likes stability & predictability

Page 62: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

likes experiments & cutting edgetechnology

likes stability & predictability

self-service mentality gatekeeper mentality

Page 63: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

likes experiments & cutting edgetechnology

likes stability & predictability

self-service mentality gatekeeper mentalityfocus on broad skills focus on specialized skills

Page 64: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

likes experiments & cutting edgetechnology

likes stability & predictability

self-service mentality gatekeeper mentalityfocus on broad skills focus on specialized skillsensures quality by automatedtests

assumes quality based onexperience

Page 65: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

likes experiments & cutting edgetechnology

likes stability & predictability

self-service mentality gatekeeper mentalityfocus on broad skills focus on specialized skillsensures quality by automatedtests

assumes quality based onexperience

research once, then automate tweak manually, automate ifneeded

Page 66: How To Make Dev Ops Work @ Netlight Edge X Berlin

Hiring for DevOps

Developer Systems administrator

knows the application /architecture

knows the infrastructure

likes experiments & cutting edgetechnology

likes stability & predictability

self-service mentality gatekeeper mentalityfocus on broad skills focus on specialized skillsensures quality by automatedtests

assumes quality based onexperience

research once, then automate tweak manually, automate ifneeded

80% 20%

Page 67: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team Structure

Page 68: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team StructureAutonomous teams - should cover the entire delivery process

Page 69: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team StructureAutonomous teams - should cover the entire delivery process

Team structure always influences the product structure, and vice versa

Page 70: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team StructureAutonomous teams - should cover the entire delivery process

Team structure always influences the product structure, and vice versa

At least 1 DevOps support person in every team

Page 71: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team StructureAutonomous teams - should cover the entire delivery process

Team structure always influences the product structure, and vice versa

At least 1 DevOps support person in every team

Page 72: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team StructureAutonomous teams - should cover the entire delivery process

Team structure always influences the product structure, and vice versa

At least 1 DevOps support person in every team

Page 73: How To Make Dev Ops Work @ Netlight Edge X Berlin

Team StructureAutonomous teams - should cover the entire delivery process

Team structure always influences the product structure, and vice versa

At least 1 DevOps support person in every team

 

Don't have a "DevOps team"!

Page 74: How To Make Dev Ops Work @ Netlight Edge X Berlin

Definition of Done

Page 75: How To Make Dev Ops Work @ Netlight Edge X Berlin

Definition of DoneDeploy it to production when it's done

Page 76: How To Make Dev Ops Work @ Netlight Edge X Berlin

Definition of DoneDeploy it to production when it's done

vs.

It's done when it runs in production

Page 77: How To Make Dev Ops Work @ Netlight Edge X Berlin

Discussion points

Page 78: How To Make Dev Ops Work @ Netlight Edge X Berlin

Discussion pointsDo I still need an Operations team?

Page 79: How To Make Dev Ops Work @ Netlight Edge X Berlin

Discussion pointsDo I still need an Operations team?

Do I need a DevOps Product Owner?

Page 80: How To Make Dev Ops Work @ Netlight Edge X Berlin

Driving DevOps Culture

Page 81: How To Make Dev Ops Work @ Netlight Edge X Berlin

Explore

Page 82: How To Make Dev Ops Work @ Netlight Edge X Berlin

ExploreCreate platforms where people can try out new stuff, and show off theircreations.

Page 83: How To Make Dev Ops Work @ Netlight Edge X Berlin

ExploreCreate platforms where people can try out new stuff, and show off theircreations.

Creating a side project in a small team and seeing it through to productionmakes a great DevOps exercise.

Page 84: How To Make Dev Ops Work @ Netlight Edge X Berlin

ExploreCreate platforms where people can try out new stuff, and show off theircreations.

Creating a side project in a small team and seeing it through to productionmakes a great DevOps exercise.

Trying to automate something is a great way to learn how it works.

Page 85: How To Make Dev Ops Work @ Netlight Edge X Berlin

ExploreCreate platforms where people can try out new stuff, and show off theircreations.

Creating a side project in a small team and seeing it through to productionmakes a great DevOps exercise.

Trying to automate something is a great way to learn how it works.

Fail fast, fail often - failure should be embraced as a lesson learned.

Page 86: How To Make Dev Ops Work @ Netlight Edge X Berlin

Trust

Page 87: How To Make Dev Ops Work @ Netlight Edge X Berlin

TrustGive everyone in the team access to everything. "Trust barriers" killmotivation.

Page 88: How To Make Dev Ops Work @ Netlight Edge X Berlin

TrustGive everyone in the team access to everything. "Trust barriers" killmotivation.

Empower the team by giving them freedom and responsibilities. Don'tmicromanage.

Page 89: How To Make Dev Ops Work @ Netlight Edge X Berlin

TrustGive everyone in the team access to everything. "Trust barriers" killmotivation.

Empower the team by giving them freedom and responsibilities. Don'tmicromanage.

Cross-pollination is a great driver of culture. Decree from above is not.

Page 90: How To Make Dev Ops Work @ Netlight Edge X Berlin

Transparency

Page 91: How To Make Dev Ops Work @ Netlight Edge X Berlin

TransparencyIf you do not have full knowledge of your system, it will take much longer toinvestigate or fix problems.

Page 92: How To Make Dev Ops Work @ Netlight Edge X Berlin

TransparencyIf you do not have full knowledge of your system, it will take much longer toinvestigate or fix problems.

Everything concerning operations and infrastructure should be clear andtransparent for everyone.

Page 93: How To Make Dev Ops Work @ Netlight Edge X Berlin

TransparencyIf you do not have full knowledge of your system, it will take much longer toinvestigate or fix problems.

Everything concerning operations and infrastructure should be clear andtransparent for everyone.

Scripting and automation lead to a self-documenting system.

Page 94: How To Make Dev Ops Work @ Netlight Edge X Berlin

TransparencyIf you do not have full knowledge of your system, it will take much longer toinvestigate or fix problems.

Everything concerning operations and infrastructure should be clear andtransparent for everyone.

Scripting and automation lead to a self-documenting system.

Questions to ask:

Page 95: How To Make Dev Ops Work @ Netlight Edge X Berlin

TransparencyIf you do not have full knowledge of your system, it will take much longer toinvestigate or fix problems.

Everything concerning operations and infrastructure should be clear andtransparent for everyone.

Scripting and automation lead to a self-documenting system.

Questions to ask:

How quickly can someone I hire today start working productively?

Page 96: How To Make Dev Ops Work @ Netlight Edge X Berlin

TransparencyIf you do not have full knowledge of your system, it will take much longer toinvestigate or fix problems.

Everything concerning operations and infrastructure should be clear andtransparent for everyone.

Scripting and automation lead to a self-documenting system.

Questions to ask:

How quickly can someone I hire today start working productively?How good is my bus factor?

Page 97: How To Make Dev Ops Work @ Netlight Edge X Berlin

Practices

Page 98: How To Make Dev Ops Work @ Netlight Edge X Berlin

Practices

Error Budget

Define an SLO, e.g. 99% availability.As long as you're above that goal, push out new features, destabilizing thesystem.As soon as you drop below the threshold, stall or slow down releases andfocus on stability.

Page 99: How To Make Dev Ops Work @ Netlight Edge X Berlin

Practices

Error Budget

Define an SLO, e.g. 99% availability.As long as you're above that goal, push out new features, destabilizing thesystem.As soon as you drop below the threshold, stall or slow down releases andfocus on stability.

Rotating Roles

Put a team member (or one team in a multi-team environment) on operations-related duties.Rotate in fixed intervals (e.g. each sprint).

Page 100: How To Make Dev Ops Work @ Netlight Edge X Berlin

Practices

Error Budget

Define an SLO, e.g. 99% availability.As long as you're above that goal, push out new features, destabilizing thesystem.As soon as you drop below the threshold, stall or slow down releases andfocus on stability.

Rotating Roles

Put a team member (or one team in a multi-team environment) on operations-related duties.Rotate in fixed intervals (e.g. each sprint).

Ops Hat

In planning or estimation sessions, one participant explicitly takes the "ops hat"and puts extra scrutiny on operations-relevant aspects.

Page 101: How To Make Dev Ops Work @ Netlight Edge X Berlin

Resources

Page 102: How To Make Dev Ops Work @ Netlight Edge X Berlin

Site Reliability Engineering - How Google Runs Production Systems

Page 103: How To Make Dev Ops Work @ Netlight Edge X Berlin

DevOps: A Software Architect's Perspective

Page 104: How To Make Dev Ops Work @ Netlight Edge X Berlin

Spotify Resources

Spotify Engineering Culture - Part 1

https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

Spotify Engineering Culture - Part 2

https://labs.spotify.com/2014/09/20/spotify-engineering-culture-part-2/

Page 105: How To Make Dev Ops Work @ Netlight Edge X Berlin

Netflix Resources

DevOps at Netflix (2012 re:Invent talk)

http://www.slideshare.net/jedberg/devops-at-netflix-reinvent

Beyond DevOps: How Netflix Bridges the Gap (2015 QCon talk)

https://www.infoq.com/presentations/netflix-operations-devops

Page 106: How To Make Dev Ops Work @ Netlight Edge X Berlin

Thank you!Feel free to contact me or send feedback at [email protected]

Page 107: How To Make Dev Ops Work @ Netlight Edge X Berlin