From Dev/Ops
todevops
Patrick Debois
[email protected]@patrickdebois
http://jedi.be/blog
Kris Buytaert
[email protected]@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?
Inspired by
• Vampires (Programmers) versus Werewolves (Sysadmins)
• http://www.codinghorror.com/blog/2010/08/vampires-programmers-versus-werewolves-sysadmins.html
Top Related