From Dev/Ops to devops - Jedi€¦ · But agile devs know all that. We all become developers now?...

Post on 22-Jun-2020

31 views 0 download

Transcript of From Dev/Ops to devops - Jedi€¦ · But agile devs know all that. We all become developers now?...

From Dev/Ops

todevops

Patrick Debois

Patrick.Debois@jedi.be@patrickdebois

http://jedi.be/blog

Kris Buytaert

Kris.Buytaert@inuits.be@krisbuytaert

http://krisbuytaert.be/blog

There was this great IT company

Full of IT-professionals

But when a new

release was at hand

Things changed

DEVS OPS

“please deploy this warfile now”

“we need more detail”

“just do it, it’s important”

“we still need more info”

I’m superior!

Operations is so slow

We create real value

Devs don’t know production

We protect real value

I’m superior!

silenceAnd after a few rounds

The business was horrified

Dev/Ops

Dev/Ops

Why can’t we just get along?

Infrastructure used to be hard(ware)

operations could only jump not fly

therefore operations avoided change

But then came virtualization

The cloud showed us how to scale

Infrastructure as code

CFEngine Puppet Chef

# tomcat.pp

class tomcat {

! package {! ! "java-1.6.0-sun-compat":! ! ! ensure => "installed";! ! "tomcat6":! ! ! require => [Package["java-1.6.0-sun-compat"], Package["ntc-tomcat-log4j"]],! ! ! ensure => "installed";! ! "tomcat6-admin-webapps":! ! ! ensure => "installed";! ! "log4j":! ! ! ensure => "installed";! ! "tanukiwrapper":! ! ! ensure => "installed";! ! "mysql-connector-java":! ! ! ensure => "installed";! }

! file {! ! "/etc/init.d/tomcat6": mode => "0755", owner => "root", group => "root", source => "puppet:///tomcat/tomcat6.init"; }

! user {! ! "tomcat":! ! ! ensure => "present",! ! ! require => Package["tomcat6"];! }}!

tomcat",! ! ! mode => "0755",! ! ! require => Package['tomcat6'],! ! ! content => template("headers/header-xml.erb","tomcat/tomcat6-init.erb");! ! "/etc/init.d/build-jar-repo":! ! ! owner => "tomcat", group => "tomcat", mode => "0755",! ! ! require => Package['tomcat6'], source => "puppet:///tomcat/build-jar-repo";! ! "/var/log/tomcat6/$name":! ! ! owner => "tomcat",! ! ! group => "tomcat",! ! ! mode => "0755",! ! ! require => Package['tomcat6'],! ! ! ensure => "directory";! ! "/var/cache/tomcat6/temp/$name": owner => "root", group => "root", mode => "0755",! ! ! require => Package['tomcat6'], ensure => "directory";! ! "/var/cache/tomcat6/work/$name": owner => "root", group => "root", mode => "0755",! ! ! require => Package['tomcat6'], ensure => "directory";! ! "/usr/local/tomcat6-$name/temp":! ! ! ensure => "link", require => File["/var/cache/tomcat6/temp/$name"], target => "/var/cache/tomcat6/temp/$name";! ! "/usr/local/tomcat6-$name/work":! ! ! ensure => "link", require => File["/var/cache/tomcat6/work/$name"], target => "/var/cache/tomcat6/work/$name";! ! "/usr/local/tomcat6-$name/work/Catalina": owner => "tomcat", group => "tomcat", ensure => "directory", require => File["/usr/local/tomcat6-$name/work"]; "/usr/local/tomcat6-$name/work/Catalina/localhost": owner => "tomcat", group => "tomcat", ensure => "directory", require => File["/usr/local/tomcat6-$name/work/Catalina"]; "/usr/local/tomcat6-$name/work/Catalina/localhost/manager": owner => "tomcat", group => "tomcat", ensure => "directory", require => File["/usr/local/tomcat6-$name/work/Catalina/localhost"];! }

! service { "tomcat6-$name": enable => "false", require => [Package['tomcat6'], Package['tanukiwrapper']];! ! "build-jar-repo":! ! ! enable => "true",! ! ! start => "/etc/init.d/build-jar-repo", require => File["/etc/init.d/build-jar-repo"]];! }!

Example tomcat recipe

AgileInfrastructure

Rebuild from Scratch

Version control

Automate things

Controlled changes

It’s more then just automation

use tests as brakes to allow you to go faster

Test deploy

+ rollbackscenario’s

Make things reproducible

Agile Sysadmin

Operations backlog

Planning Poker

Iterations vs flow

Pair system administration

Kanban board

Backlog Todo(3) Test(2) Production(1)

OPS-OPS Problem

Network

Sysadmin

Storage

Security

But agile devs know all that

We all become

developers now?

Devs can just shipa virtual machine?

Stop the rockstar mentality!

Don’t fear

for your job

All this automation will only help against some local pain

Let’s turn the pain level up a notch

Continuous Integration

If it’s harddo it more often

BuildPipelines

DEV TEST UAT PREPROD PROD

Make all environmentsthe same

DEV TEST PROD

Software only brings value in Production

Parallel Build Pipelines

Infrastructure Build & Test

Software Build & Test

Data Build & Test

Application

OS Level

Data

Synchronize your release cycles

Think Continuous

Delivery

There are still a few problems to solve

How to package things

access

We all want our

Debug logs !=

Operational Logs

Focus on: Flow & Cycle Time

Value stream mapping

Minimize waste

Zero defect policy

Stop the line mentality

Fix things early in the process

We wantContinuous Improvement

We need to overcome a

bigger pain

We need to overcome the silos

Development Operations

Prince2, Agile, Scrum ITIL, Cobit, CMMI

Current management styles

focus on optimizing individual parts

Devsoptimize

their worldview

Opsoptimize

their worldview

Not In My Back YardSyndrome

Causing technical debt

Like cron job fixes

The map is not

the territoryAlfred Korzybski

Systems Thinking

Understand it’s a business problem

do the right thing vs

the thing right

Collect Metrics

Problemsin production

Failure to deploy

Functionalitynot working

Bugs Failed deploys Incidents

When to decideProject vs Incidents

Orfunctional

vs non-functionalrequirements

Relate it to business value

Value lostMarket lossValue Added

Bugs Failed deploys Incidents

Advise and Accept the business decision

Recap: No Silver Bullet

It’s a jobtitle

Even though we have a different culture

HardwareSoftware

We share the same customer

We try to solve the same business problem

Why only work together when things go wrong?

Managers are there to support you.

Not to tell you what to do

It’s not about the tools

It’s a cultural shift

THE SECRET SAUCE OF THE DEVOPS:

CAMS• Culture

• Automation

• Measurement

• Sharing

John Willis & Damon Edwards

Multiple levelshave higher impact

Culture is hard, start with behavior

Effort to change

Impact

Tools

Behavior

Culture

Become Awesome again

Interesting Books

Want to know more?

#devops on twitter & irchttp://devopsdays.orghttp://devopscafe.org

http://planetdevops.netdevops googlegroup

devops-toolchain googlegroup

What keeps you awakeat night?