SlideShare a Scribd company logo
Deploy Stuff, Run Stuff
Buildstuff.lt 2016
Kris Buytaert
@krisbuytaert
Kris BuytaertKris Buytaert
● I used to be a Dev,I used to be a Dev,
● Then Became an OpThen Became an Op
● Chief Trolling Officer and Open SourceChief Trolling Officer and Open Source
Consultant @Consultant @inuits.euinuits.eu
● Everything is an effing DNS ProblemEverything is an effing DNS Problem
● Building Clouds since before the bookstoreBuilding Clouds since before the bookstore
● Some books, some papers, some blogsSome books, some papers, some blogs
● Evangelizing devopsEvangelizing devops
● Organiser of #devopsdays, #cfgmgmtcamp,Organiser of #devopsdays, #cfgmgmtcamp,
#loadays, ….#loadays, ….
What's this devopsWhat's this devops
thing anyhow ?thing anyhow ?
C(L)AMSC(L)AMS
● CultureCulture
● (Lean)(Lean)
● AutomationAutomation
● MeasurementMeasurement
● SharingSharing
Damon Edwards and John WillisDamon Edwards and John Willis
Gene KimGene Kim
Culture,Culture,
automation,automation,
Measturement,Measturement,
sharingsharing
the “old” daysthe “old” days
● ““Put this Code Live, here's a tarball” NOW!Put this Code Live, here's a tarball” NOW!
● What dependencies ?What dependencies ?
● No machines available ?No machines available ?
● What database ?What database ?
● Security ?Security ?
● High Availability ?High Availability ?
● Scalability ?Scalability ?
● My computer can't install this ?My computer can't install this ?
Blamefull OrganisationsBlamefull Organisations
HistoricallyDifferent GoalsHistoricallyDifferent Goals
DevelopmentDevelopment
● New releasesNew releases
● New FeaturesNew Features
● New platformsNew platforms
● New architecturesNew architectures
● Functional ReqFunctional Req
OperationsOperations
● Stable PlatformStable Platform
● No DowntimeNo Downtime
● Scalable PlatformScalable Platform
● Non Functional ReqNon Functional Req
MethodologiesMethodologies
● WaterfallWaterfall
● WatermillWatermill
● SAFESAFE
● Scrum
● Kanban
DOD in ScrumDOD in Scrum
•
DoD is a checklist of valuable activities requiredDoD is a checklist of valuable activities required
to produce software.to produce software.
•
Definition of Done is a simple list of activitiesDefinition of Done is a simple list of activities
(writing code, coding comments, unit testing,(writing code, coding comments, unit testing,
integration testing, release notes, designintegration testing, release notes, design
documents, etc.) that adddocuments, etc.) that add
verifiable/demonstrable value to the product.verifiable/demonstrable value to the product.
•
DoD is the primary reporting mechanism forDoD is the primary reporting mechanism for
team members.team members.
DoD in Scrum (2)DoD in Scrum (2)
a tool for bringing transparency to the work aa tool for bringing transparency to the work a
Scrum Team is performing. It is related more toScrum Team is performing. It is related more to
the quality of a product, rather than itsthe quality of a product, rather than its
functionality.functionality.
EnglishEnglish
Done means testedDone means tested
Done means deployedDone means deployed
In productionIn production
If it isn't monitored it isn't inIf it isn't monitored it isn't in
productionproduction
Done = In production andDone = In production and
MonitoredMonitored
Product vs ProjectProduct vs Project
● Frequent releasesFrequent releases
● UpdatesUpdates
● UpgradesUpgrades
● Frequent HandoversFrequent Handovers
● Fire & ForgetFire & Forget
● One HandoverOne Handover
A software project is not done untilA software project is not done until
your last enduser is in his grave !your last enduser is in his grave !
Kris Buytaert, #devopsdays Amsterdam 2013Kris Buytaert, #devopsdays Amsterdam 2013
Culture,Culture,
Automation,Automation,
Measurement,Measurement,
SharingSharing
What r u rambling bout ?What r u rambling bout ?
● Typical problems:Typical problems:
•
Non functional requirements are not part of aNon functional requirements are not part of a
sprintsprint
the un-buildablethe un-buildable
● The libraries you depend on have beenThe libraries you depend on have been
removed by the upstream authorremoved by the upstream author
•
Too oldToo old
•
AbandonnedAbandonned
● You haven't specified the versions and theYou haven't specified the versions and the
'latest' version is'latest' version is
•
BrokenBroken
•
incompatibleincompatible
● Rubybems.org,Github.com is downRubybems.org,Github.com is down
the un-packageablethe un-packageable
the un-packageablethe un-packageable
Run stuff, Deploy Stuff
Run stuff, Deploy Stuff
Run stuff, Deploy Stuff
the un-deployablethe un-deployable
● You require manual changes to filesYou require manual changes to files
•
Files in different locationsFiles in different locations
● Your haven't versionned all the filesYour haven't versionned all the files
•
Plenty of files are missingPlenty of files are missing
•
Missing librariesMissing libraries
● Do you really expect everyone to know how toDo you really expect everyone to know how to
deploy your Flavour of the week stackdeploy your Flavour of the week stack
““If my computerIf my computer
can't install it,can't install it,
the installer isthe installer is
broken”broken”
Luke Kanies atLuke Kanies at
Fosdem (2007)Fosdem (2007)
the un-configurablethe un-configurable
● Sometimes the preconfigured oneSometimes the preconfigured one
● Config is inside the build artifactConfig is inside the build artifact
•
.war, binary, code.war, binary, code
● Redeploy / restart is required to reconfigureRedeploy / restart is required to reconfigure
● Log on with the credentials generated inLog on with the credentials generated in
/tmp/blahX2312/tmp/blahX2312
● Click on the 3rd button on the left, then downClick on the 3rd button on the left, then down
and first on the right.and first on the right.
As an Ops personAs an Ops person
““As a system administrator, I can tell whenAs a system administrator, I can tell when
software vendors hate me. It shows in theirsoftware vendors hate me. It shows in their
products.”products.”
““DON'T make the administrative interface aDON'T make the administrative interface a
GUI. System administrators need aGUI. System administrators need a
command-line tool for constructingcommand-line tool for constructing
repeatable processes. Procedures are bestrepeatable processes. Procedures are best
documented by providing commands thatdocumented by providing commands that
we can copy and paste from the procedurewe can copy and paste from the procedure
document to the command line. We cannotdocument to the command line. We cannot
achieve the same repeatability when theachieve the same repeatability when the
instructions are: "Checkmark the 3rd andinstructions are: "Checkmark the 3rd and
5th options, but not the 2nd option, then5th options, but not the 2nd option, then
click OK." Sysadmins do not want a GUI thatclick OK." Sysadmins do not want a GUI that
requires 25 clicks for each new user.”requires 25 clicks for each new user.”
Thomas A. Limoncelli in ACM Queue December 2010Thomas A. Limoncelli in ACM Queue December 2010
http://queue.acm.org/detail.cfm?id=1921361http://queue.acm.org/detail.cfm?id=1921361
the un-runnablethe un-runnable
● You shipped a .exe fileYou shipped a .exe file
•
We run on LinuxWe run on Linux
● You shipped a Docker fileYou shipped a Docker file
•
We have no containerized infrastructureWe have no containerized infrastructure
● Your application connects to 10.0.0.1:3306Your application connects to 10.0.0.1:3306
● Your application connects toYour application connects to
myapp.ourcompany.commyapp.ourcompany.com
● Your code requires Python 5Your code requires Python 5
•
We are on EL 7We are on EL 7
the un-clusterablethe un-clusterable
● Where is your state ?Where is your state ?
● How do you know where to connect to ?How do you know where to connect to ?
● /tmp is not a distributed filesystem/tmp is not a distributed filesystem
the un-cloudablethe un-cloudable
● Where is your state ?Where is your state ?
the un-securedthe un-secured
● Clear text passwords in config filesClear text passwords in config files
● Passwords as parametersPasswords as parameters
● No encryptionNo encryption
● Vague ssl version build inVague ssl version build in
● No authentication at allNo authentication at all
● Users are stored locallyUsers are stored locally
Culture,Culture,
Automation,Automation,
Measurement :Measurement :
measure all the thingsmeasure all the things
SharingSharing
the un-monitorablethe un-monitorable
● Is this thing even on ?Is this thing even on ?
● Logs ?Logs ?
● Log verbosity ?Log verbosity ?
● Log corelation ?Log corelation ?
● Consistent output for testingConsistent output for testing
● If the enduser calls, your monitoring has failedIf the enduser calls, your monitoring has failed
the un-measurablethe un-measurable
● No metrics,No metrics,
● No log entries to derive metrics from,No log entries to derive metrics from,
● Please providePlease provide
•
MetricsMetrics
•
Health / status page / apiHealth / status page / api
•
LogsLogs
Culture,Culture,
Automation,Automation,
Measurement,Measurement,
SharingSharing
Run stuff, Deploy Stuff
This new 'D' hypeThis new 'D' hype
● New kid on the blockNew kid on the block
● Vagrant-lxc with a nice cliVagrant-lxc with a nice cli
● The Ultimate “devops tool”The Ultimate “devops tool”
● ““Unseen” growthUnseen” growth
● Docker is the new cool thing to doDocker is the new cool thing to do
DockerDocker
DockerDocker
DockerDocker
DockerDocker
DockerDocker
DockerDocker
A typical EnterpriseA typical Enterprise
ContainerContainer● No different from aNo different from a
full vmfull vm
● Multiple servicesMultiple services
running in onerunning in one
containercontainer
● Ssh is the defaultSsh is the default
connectionconnection
Why ?Why ?
● I want a VMI want a VM
•
Please fill in these 4 formsPlease fill in these 4 forms
•
Wait 2 weeks.Wait 2 weeks.
● RepeatRepeat
IT Departments have not adapted,IT Departments have not adapted,
'Shadow'-IT is winning'Shadow'-IT is winning
These DaysThese Days
● ““Put this Code Live, here's a DockerPut this Code Live, here's a Docker
Container ”Container ”
● No machines available ?No machines available ?
● What database ? Where to store theWhat database ? Where to store the
data ?data ?
● Security ? What distro is this even ?Security ? What distro is this even ?
Bad Cows ?Bad Cows ?
● How do we monitor his ?How do we monitor his ?
● Backups ?Backups ?
● How did you build this ?How did you build this ?
11 days into operations11 days into operations
● ““Put this Code Live, here'sPut this Code Live, here's
Dockerfile”Dockerfile”
● What corporate proxy ?What corporate proxy ?
● Oh I missed 2 other containersOh I missed 2 other containers
● Security ? What distro is this even ?Security ? What distro is this even ?
Bad Cows ?Bad Cows ?
● What do you mean “We are a RHELWhat do you mean “We are a RHEL
shop ?”shop ?”
Closing the gaps between dev and ops,Closing the gaps between dev and ops,
AGAIN !!AGAIN !!
● Where do your containers come from ?Where do your containers come from ?
● Who build it ?Who build it ?
● Can you rebuild it ?Can you rebuild it ?
● Do you even need a containerDo you even need a container
● How do you build the hosts that run theHow do you build the hosts that run the
containers ?containers ?
● Infrastructure as code ++Infrastructure as code ++
Image Build by devs,Image Build by devs,
maintained by nobodymaintained by nobody
Can you ?Can you ?
● When GitHub is down ?When GitHub is down ?
● When rubygems.org isWhen rubygems.org is
down ?down ?
● When someone removesWhen someone removes
a Node.js library ?a Node.js library ?
● Fix critical SecurityFix critical Security
Issues ?Issues ?
● Can your business suriveCan your business surive
if you answer NO toif you answer NO to
these questions ?these questions ?
● I love docker as aI love docker as a
technologytechnology
● I hate that it too oftenI hate that it too often
put us back 5 years withput us back 5 years with
regards to Cultureregards to Culture
adoptionadoption
● Docker is an easy victim,Docker is an easy victim,
there's other tools thatthere's other tools that
create similar situationscreate similar situations
● It's still mostly aboutIt's still mostly about
CultureCulture
It's still aboutIt's still about
collaborationcollaboration
It's not about the toolsIt's not about the tools
It's about changeIt's about change
It's about the peopleIt's about the people
ContactContact
Kris BuytaertKris Buytaert Kris.Buytaert@inuits.beKris.Buytaert@inuits.be
Further ReadingFurther Reading
@krisbuytaert@krisbuytaert
http://www.krisbuytaert.be/blog/http://www.krisbuytaert.be/blog/
http://www.inuits.be/http://www.inuits.be/
InuitsInuits
Essensteenweg 31Essensteenweg 31
BrasschaatBrasschaat
BelgiumBelgium
891.514.231891.514.231
+32 475 961221+32 475 961221

More Related Content

ODP
Devops is not about Tooling
PDF
No, we can't do continuous delivery
ODP
Adopting Devops , Stories from the trenches
ODP
devops is a reorg
PDF
Devops 101 QA with Kris Buytaert
PDF
Groovy there's a docker in my application pipeline
PDF
Run stuff, Deploy Stuff, Jax London 2017 Edition
ODP
Continous Delivery of your Infrastructure
Devops is not about Tooling
No, we can't do continuous delivery
Adopting Devops , Stories from the trenches
devops is a reorg
Devops 101 QA with Kris Buytaert
Groovy there's a docker in my application pipeline
Run stuff, Deploy Stuff, Jax London 2017 Edition
Continous Delivery of your Infrastructure

What's hot (20)

PDF
Devops, The future is here, it's just not evenly distributed
PDF
Dev secops opsec, devsec, devops ?
PDF
Open Source Monitoring in 2015
ODP
On the Importance of Infrastructure as Code
ODP
From devoops to devops
PDF
Closing the gap between Distros(devs) and their Users(ops)
PDF
Dod is not done
PDF
Devops is a Security Requirement
PDF
Devops is dead, Long Live Devops
ODP
Nightmare on Docker street
ODP
The influence of "Distributed platforms" on #devops
ODP
Another 7 tools for your #devops stack
PDF
Monitoring Drupal In an Infrastructure as Code Age
ODP
From MonitoringSucks to Monitoring Love , 2016 Edition
PDF
Docker is killing your #devops Efforts
PDF
Continuous Infrastructure First
ODP
Looking back at 6.5 years of #devopsdays
PDF
Continuous Infrastructure First
PDF
Monitoring in an Infrastructure as Code Age
PDF
Can we fix dev-oops ?
Devops, The future is here, it's just not evenly distributed
Dev secops opsec, devsec, devops ?
Open Source Monitoring in 2015
On the Importance of Infrastructure as Code
From devoops to devops
Closing the gap between Distros(devs) and their Users(ops)
Dod is not done
Devops is a Security Requirement
Devops is dead, Long Live Devops
Nightmare on Docker street
The influence of "Distributed platforms" on #devops
Another 7 tools for your #devops stack
Monitoring Drupal In an Infrastructure as Code Age
From MonitoringSucks to Monitoring Love , 2016 Edition
Docker is killing your #devops Efforts
Continuous Infrastructure First
Looking back at 6.5 years of #devopsdays
Continuous Infrastructure First
Monitoring in an Infrastructure as Code Age
Can we fix dev-oops ?
Ad

Viewers also liked (17)

PDF
Looking back at 7 years of #devopsdays
PDF
Técnicas de gestión del tiempo para Administradores de Sistemas
PPTX
DevOps Transformations
PPTX
Why to docker
PPTX
All Things Open : Crash Course in Open Source Cloud Computing
PDF
Shirt Ops: How to make awesome t-shirts for your conference
PDF
Pragmatic Security and Rugged DevOps - SXSW 2015
PDF
Application Security Epistemology in a Continuous Delivery World
PDF
Build Your Agile Testing Skill Set
PDF
Agile Requirements Exploration: How Testers Add Value
PDF
Containers - (Austin Cloud Meetup April 2016)
PDF
Fluentd - Flexible, Stable, Scalable
PPT
Los nuevos desafíos del testing
PDF
The Future of System Administration
PPTX
RSA Conference 2016: Who Are You? From Meat to Electrons and Back Again
PPTX
Speeding Up Innovation
PDF
使用 Elasticsearch 及 Kibana 進行巨量資料搜尋及視覺化-曾書庭
Looking back at 7 years of #devopsdays
Técnicas de gestión del tiempo para Administradores de Sistemas
DevOps Transformations
Why to docker
All Things Open : Crash Course in Open Source Cloud Computing
Shirt Ops: How to make awesome t-shirts for your conference
Pragmatic Security and Rugged DevOps - SXSW 2015
Application Security Epistemology in a Continuous Delivery World
Build Your Agile Testing Skill Set
Agile Requirements Exploration: How Testers Add Value
Containers - (Austin Cloud Meetup April 2016)
Fluentd - Flexible, Stable, Scalable
Los nuevos desafíos del testing
The Future of System Administration
RSA Conference 2016: Who Are You? From Meat to Electrons and Back Again
Speeding Up Innovation
使用 Elasticsearch 及 Kibana 進行巨量資料搜尋及視覺化-曾書庭
Ad

Similar to Run stuff, Deploy Stuff (20)

ODP
Automating MySQL operations with Puppet
ODP
From Config Management Sucks to #cfgmgmtlove
ODP
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
ODP
Continuous Delivery of (y)our infrastructure.
PDF
DevOps Days Kyiv 2019 -- continuous Infrafirstructure First //Kris buytaert
PDF
Continuous Infrastructure First Ignite Edition
PDF
Pipeline as code for your infrastructure as Code
ODP
Icinga Camp Amsterdam - Infrastructure as Code
PDF
Moby is killing your devops efforts
ODP
Deploying your SaaS stack OnPrem
ODP
Monitoring in an Infrastructure as Code Age
PDF
Devops Devops Devops, at Froscon
PDF
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
PDF
Open Source Monitoring in 2019
PDF
Devops, the future is here, it's just not evenly distributed yet.
PDF
Devops, Secops, Opsec, DevSec *ops *.* ?
PDF
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
ODP
When traditional configuration management is to slow for your needs
PDF
Its not about the tooling
PDF
Drupal and Devops , the Survey Results
Automating MySQL operations with Puppet
From Config Management Sucks to #cfgmgmtlove
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
Continuous Delivery of (y)our infrastructure.
DevOps Days Kyiv 2019 -- continuous Infrafirstructure First //Kris buytaert
Continuous Infrastructure First Ignite Edition
Pipeline as code for your infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as Code
Moby is killing your devops efforts
Deploying your SaaS stack OnPrem
Monitoring in an Infrastructure as Code Age
Devops Devops Devops, at Froscon
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
Open Source Monitoring in 2019
Devops, the future is here, it's just not evenly distributed yet.
Devops, Secops, Opsec, DevSec *ops *.* ?
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
When traditional configuration management is to slow for your needs
Its not about the tooling
Drupal and Devops , the Survey Results

More from Kris Buytaert (20)

PDF
Years of (not) learning , from devops to devoops
PDF
Observability will not fix your Broken Monitoring ,Ignite
PDF
Infrastructure as Code Patterns
PDF
From devoops to devops 13 years of (not) learning
PDF
Pipeline all the Dashboards as Code
PDF
Help , My Datacenter is on fire
PDF
GitOps , done Right
PDF
Devops is Dead, Long live Devops
PDF
10 years of #devopsdays, but what have we really learned ?
PDF
Is there a Future for devops ?
PDF
10 Years of #devopsdays weirdness
PDF
ADDO 2019: Looking back at over 10 years of Devops
PDF
Migrating to Puppet 5
ODP
Repositories as Code
ODP
Is there a future for devops ?
ODP
Looking back at 5 years of #cfgmgmtcamp
PDF
The Return of the Dull Stack Engineer
PDF
Pipeline as Code
ODP
Looking back at 7.5 years of Devopsdays , DOd PDX
ODP
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Years of (not) learning , from devops to devoops
Observability will not fix your Broken Monitoring ,Ignite
Infrastructure as Code Patterns
From devoops to devops 13 years of (not) learning
Pipeline all the Dashboards as Code
Help , My Datacenter is on fire
GitOps , done Right
Devops is Dead, Long live Devops
10 years of #devopsdays, but what have we really learned ?
Is there a Future for devops ?
10 Years of #devopsdays weirdness
ADDO 2019: Looking back at over 10 years of Devops
Migrating to Puppet 5
Repositories as Code
Is there a future for devops ?
Looking back at 5 years of #cfgmgmtcamp
The Return of the Dull Stack Engineer
Pipeline as Code
Looking back at 7.5 years of Devopsdays , DOd PDX
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
KodekX | Application Modernization Development
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Big Data Technologies - Introduction.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Empathic Computing: Creating Shared Understanding
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Spectroscopy.pptx food analysis technology
Teaching material agriculture food technology
KodekX | Application Modernization Development
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectral efficient network and resource selection model in 5G networks
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
Diabetes mellitus diagnosis method based random forest with bat algorithm
Big Data Technologies - Introduction.pptx
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Programs and apps: productivity, graphics, security and other tools
Empathic Computing: Creating Shared Understanding
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectroscopy.pptx food analysis technology

Run stuff, Deploy Stuff

  • 1. Deploy Stuff, Run Stuff Buildstuff.lt 2016 Kris Buytaert @krisbuytaert
  • 2. Kris BuytaertKris Buytaert ● I used to be a Dev,I used to be a Dev, ● Then Became an OpThen Became an Op ● Chief Trolling Officer and Open SourceChief Trolling Officer and Open Source Consultant @Consultant @inuits.euinuits.eu ● Everything is an effing DNS ProblemEverything is an effing DNS Problem ● Building Clouds since before the bookstoreBuilding Clouds since before the bookstore ● Some books, some papers, some blogsSome books, some papers, some blogs ● Evangelizing devopsEvangelizing devops ● Organiser of #devopsdays, #cfgmgmtcamp,Organiser of #devopsdays, #cfgmgmtcamp, #loadays, ….#loadays, ….
  • 3. What's this devopsWhat's this devops thing anyhow ?thing anyhow ?
  • 4. C(L)AMSC(L)AMS ● CultureCulture ● (Lean)(Lean) ● AutomationAutomation ● MeasurementMeasurement ● SharingSharing Damon Edwards and John WillisDamon Edwards and John Willis Gene KimGene Kim
  • 6. the “old” daysthe “old” days ● ““Put this Code Live, here's a tarball” NOW!Put this Code Live, here's a tarball” NOW! ● What dependencies ?What dependencies ? ● No machines available ?No machines available ? ● What database ?What database ? ● Security ?Security ? ● High Availability ?High Availability ? ● Scalability ?Scalability ? ● My computer can't install this ?My computer can't install this ?
  • 8. HistoricallyDifferent GoalsHistoricallyDifferent Goals DevelopmentDevelopment ● New releasesNew releases ● New FeaturesNew Features ● New platformsNew platforms ● New architecturesNew architectures ● Functional ReqFunctional Req OperationsOperations ● Stable PlatformStable Platform ● No DowntimeNo Downtime ● Scalable PlatformScalable Platform ● Non Functional ReqNon Functional Req
  • 10. DOD in ScrumDOD in Scrum • DoD is a checklist of valuable activities requiredDoD is a checklist of valuable activities required to produce software.to produce software. • Definition of Done is a simple list of activitiesDefinition of Done is a simple list of activities (writing code, coding comments, unit testing,(writing code, coding comments, unit testing, integration testing, release notes, designintegration testing, release notes, design documents, etc.) that adddocuments, etc.) that add verifiable/demonstrable value to the product.verifiable/demonstrable value to the product. • DoD is the primary reporting mechanism forDoD is the primary reporting mechanism for team members.team members.
  • 11. DoD in Scrum (2)DoD in Scrum (2) a tool for bringing transparency to the work aa tool for bringing transparency to the work a Scrum Team is performing. It is related more toScrum Team is performing. It is related more to the quality of a product, rather than itsthe quality of a product, rather than its functionality.functionality.
  • 13. Done means testedDone means tested
  • 14. Done means deployedDone means deployed In productionIn production
  • 15. If it isn't monitored it isn't inIf it isn't monitored it isn't in productionproduction Done = In production andDone = In production and MonitoredMonitored
  • 16. Product vs ProjectProduct vs Project ● Frequent releasesFrequent releases ● UpdatesUpdates ● UpgradesUpgrades ● Frequent HandoversFrequent Handovers ● Fire & ForgetFire & Forget ● One HandoverOne Handover
  • 17. A software project is not done untilA software project is not done until your last enduser is in his grave !your last enduser is in his grave ! Kris Buytaert, #devopsdays Amsterdam 2013Kris Buytaert, #devopsdays Amsterdam 2013
  • 19. What r u rambling bout ?What r u rambling bout ? ● Typical problems:Typical problems: • Non functional requirements are not part of aNon functional requirements are not part of a sprintsprint
  • 20. the un-buildablethe un-buildable ● The libraries you depend on have beenThe libraries you depend on have been removed by the upstream authorremoved by the upstream author • Too oldToo old • AbandonnedAbandonned ● You haven't specified the versions and theYou haven't specified the versions and the 'latest' version is'latest' version is • BrokenBroken • incompatibleincompatible ● Rubybems.org,Github.com is downRubybems.org,Github.com is down
  • 26. the un-deployablethe un-deployable ● You require manual changes to filesYou require manual changes to files • Files in different locationsFiles in different locations ● Your haven't versionned all the filesYour haven't versionned all the files • Plenty of files are missingPlenty of files are missing • Missing librariesMissing libraries ● Do you really expect everyone to know how toDo you really expect everyone to know how to deploy your Flavour of the week stackdeploy your Flavour of the week stack
  • 27. ““If my computerIf my computer can't install it,can't install it, the installer isthe installer is broken”broken” Luke Kanies atLuke Kanies at Fosdem (2007)Fosdem (2007)
  • 28. the un-configurablethe un-configurable ● Sometimes the preconfigured oneSometimes the preconfigured one ● Config is inside the build artifactConfig is inside the build artifact • .war, binary, code.war, binary, code ● Redeploy / restart is required to reconfigureRedeploy / restart is required to reconfigure ● Log on with the credentials generated inLog on with the credentials generated in /tmp/blahX2312/tmp/blahX2312 ● Click on the 3rd button on the left, then downClick on the 3rd button on the left, then down and first on the right.and first on the right.
  • 29. As an Ops personAs an Ops person ““As a system administrator, I can tell whenAs a system administrator, I can tell when software vendors hate me. It shows in theirsoftware vendors hate me. It shows in their products.”products.” ““DON'T make the administrative interface aDON'T make the administrative interface a GUI. System administrators need aGUI. System administrators need a command-line tool for constructingcommand-line tool for constructing repeatable processes. Procedures are bestrepeatable processes. Procedures are best documented by providing commands thatdocumented by providing commands that we can copy and paste from the procedurewe can copy and paste from the procedure document to the command line. We cannotdocument to the command line. We cannot achieve the same repeatability when theachieve the same repeatability when the instructions are: "Checkmark the 3rd andinstructions are: "Checkmark the 3rd and 5th options, but not the 2nd option, then5th options, but not the 2nd option, then click OK." Sysadmins do not want a GUI thatclick OK." Sysadmins do not want a GUI that requires 25 clicks for each new user.”requires 25 clicks for each new user.” Thomas A. Limoncelli in ACM Queue December 2010Thomas A. Limoncelli in ACM Queue December 2010 http://queue.acm.org/detail.cfm?id=1921361http://queue.acm.org/detail.cfm?id=1921361
  • 30. the un-runnablethe un-runnable ● You shipped a .exe fileYou shipped a .exe file • We run on LinuxWe run on Linux ● You shipped a Docker fileYou shipped a Docker file • We have no containerized infrastructureWe have no containerized infrastructure ● Your application connects to 10.0.0.1:3306Your application connects to 10.0.0.1:3306 ● Your application connects toYour application connects to myapp.ourcompany.commyapp.ourcompany.com ● Your code requires Python 5Your code requires Python 5 • We are on EL 7We are on EL 7
  • 31. the un-clusterablethe un-clusterable ● Where is your state ?Where is your state ? ● How do you know where to connect to ?How do you know where to connect to ? ● /tmp is not a distributed filesystem/tmp is not a distributed filesystem
  • 32. the un-cloudablethe un-cloudable ● Where is your state ?Where is your state ?
  • 33. the un-securedthe un-secured ● Clear text passwords in config filesClear text passwords in config files ● Passwords as parametersPasswords as parameters ● No encryptionNo encryption ● Vague ssl version build inVague ssl version build in ● No authentication at allNo authentication at all ● Users are stored locallyUsers are stored locally
  • 34. Culture,Culture, Automation,Automation, Measurement :Measurement : measure all the thingsmeasure all the things SharingSharing
  • 35. the un-monitorablethe un-monitorable ● Is this thing even on ?Is this thing even on ? ● Logs ?Logs ? ● Log verbosity ?Log verbosity ? ● Log corelation ?Log corelation ? ● Consistent output for testingConsistent output for testing ● If the enduser calls, your monitoring has failedIf the enduser calls, your monitoring has failed
  • 36. the un-measurablethe un-measurable ● No metrics,No metrics, ● No log entries to derive metrics from,No log entries to derive metrics from, ● Please providePlease provide • MetricsMetrics • Health / status page / apiHealth / status page / api • LogsLogs
  • 39. This new 'D' hypeThis new 'D' hype ● New kid on the blockNew kid on the block ● Vagrant-lxc with a nice cliVagrant-lxc with a nice cli ● The Ultimate “devops tool”The Ultimate “devops tool” ● ““Unseen” growthUnseen” growth ● Docker is the new cool thing to doDocker is the new cool thing to do
  • 41. A typical EnterpriseA typical Enterprise ContainerContainer● No different from aNo different from a full vmfull vm ● Multiple servicesMultiple services running in onerunning in one containercontainer ● Ssh is the defaultSsh is the default connectionconnection
  • 42. Why ?Why ? ● I want a VMI want a VM • Please fill in these 4 formsPlease fill in these 4 forms • Wait 2 weeks.Wait 2 weeks. ● RepeatRepeat IT Departments have not adapted,IT Departments have not adapted, 'Shadow'-IT is winning'Shadow'-IT is winning
  • 43. These DaysThese Days ● ““Put this Code Live, here's a DockerPut this Code Live, here's a Docker Container ”Container ” ● No machines available ?No machines available ? ● What database ? Where to store theWhat database ? Where to store the data ?data ? ● Security ? What distro is this even ?Security ? What distro is this even ? Bad Cows ?Bad Cows ? ● How do we monitor his ?How do we monitor his ? ● Backups ?Backups ? ● How did you build this ?How did you build this ?
  • 44. 11 days into operations11 days into operations ● ““Put this Code Live, here'sPut this Code Live, here's Dockerfile”Dockerfile” ● What corporate proxy ?What corporate proxy ? ● Oh I missed 2 other containersOh I missed 2 other containers ● Security ? What distro is this even ?Security ? What distro is this even ? Bad Cows ?Bad Cows ? ● What do you mean “We are a RHELWhat do you mean “We are a RHEL shop ?”shop ?”
  • 45. Closing the gaps between dev and ops,Closing the gaps between dev and ops, AGAIN !!AGAIN !! ● Where do your containers come from ?Where do your containers come from ? ● Who build it ?Who build it ? ● Can you rebuild it ?Can you rebuild it ? ● Do you even need a containerDo you even need a container ● How do you build the hosts that run theHow do you build the hosts that run the containers ?containers ? ● Infrastructure as code ++Infrastructure as code ++
  • 46. Image Build by devs,Image Build by devs, maintained by nobodymaintained by nobody
  • 47. Can you ?Can you ? ● When GitHub is down ?When GitHub is down ? ● When rubygems.org isWhen rubygems.org is down ?down ? ● When someone removesWhen someone removes a Node.js library ?a Node.js library ? ● Fix critical SecurityFix critical Security Issues ?Issues ? ● Can your business suriveCan your business surive if you answer NO toif you answer NO to these questions ?these questions ?
  • 48. ● I love docker as aI love docker as a technologytechnology ● I hate that it too oftenI hate that it too often put us back 5 years withput us back 5 years with regards to Cultureregards to Culture adoptionadoption ● Docker is an easy victim,Docker is an easy victim, there's other tools thatthere's other tools that create similar situationscreate similar situations ● It's still mostly aboutIt's still mostly about CultureCulture It's still aboutIt's still about collaborationcollaboration
  • 49. It's not about the toolsIt's not about the tools It's about changeIt's about change It's about the peopleIt's about the people
  • 50. ContactContact Kris BuytaertKris Buytaert Kris.Buytaert@inuits.beKris.Buytaert@inuits.be Further ReadingFurther Reading @krisbuytaert@krisbuytaert http://www.krisbuytaert.be/blog/http://www.krisbuytaert.be/blog/ http://www.inuits.be/http://www.inuits.be/ InuitsInuits Essensteenweg 31Essensteenweg 31 BrasschaatBrasschaat BelgiumBelgium 891.514.231891.514.231 +32 475 961221+32 475 961221