YOU ONLY HAVE TO CHANGE ONE
THING TO MAKE DEVOPS WORK
EVERYTHING
YOU ONLY HAVE TO CHANGE ONE
THING TO DO THE DEVOPS
EVERYTHING
DEVOPS ISN’T SOMETHING YOU
DO
@kmugrage
THE CHANGES IN TODAY’S TALK
▸ Redefine words for your organization
▸ Change your organization to enable DevOps
▸ Use modern architectures and technologies
▸ Use Continuous Delivery to safely deploy more often
▸ There’s no test, but there is homework
@kmugrage
WHO AM I?
▸ From Seattle, Washington, USA
▸ Technology Evangelist at ThoughtWorks
▸ DevOpsDays Organizer
▸ Infrequent blogger at ken.wtf and gocd.org
FOR YOUR
ORGANIZATION
REDEFINE WORDS
@kmugrage
WHAT ISN’T DEVOPS
▸ A Toolset
▸ A Role
▸ A Team
@kmugrage@kmugrage
IT’S VERBS, NOT NOUNS
developING and operatING
@kmugrage
CAMS
▸ Culture
▸ Automation
▸ Measurement
▸ Sharing
https://blog.chef.io/2010/07/16/what-devops-means-to-me/
@kmugrage
CALMS
▸ Culture
▸ Automation
▸ Lean
▸ Measurement
▸ Sharing
https://blog.chef.io/2010/07/16/what-devops-means-to-me/
@kmugrage@kmugrage
“DEVOPS: A CULTURE WHERE PEOPLE,
REGARDLESS OF TITLE OR BACKGROUND, WORK
TOGETHER TO IMAGINE, DEVELOP, DEPLOY AND
OPERATE A SYSTEM.”
–Me
https://kenmugrage.com/2017/05/05/my-new-definition-of-devops/
TO ENABLE DEVOPS
CHANGE YOUR ORG
@kmugrage@kmugrage
TRADITIONAL MODEL
Development Teams Testing Team Operations Team
@kmugrage@kmugrage
“ANY ORGANIZATION THAT DESIGNS A SYSTEM
(DEFINED BROADLY) WILL PRODUCE A DESIGN
WHOSE STRUCTURE IS A COPY OF THE
ORGANIZATION'S COMMUNICATION STRUCTURE.”
–Mel Conway
http://www.melconway.com/Home/Conways_Law.html
@kmugrage@kmugrage
TRADITIONAL MODEL
Development Teams QA Team Operations Team
@kmugrage@kmugrage
RENAMING OPS WON’T SOLVE THE ISSUE
Development Teams QA Team DevOps Team
@kmugrage@kmugrage
CREATING ANOTHER SILO DOESN’T SOLVE SILOS
Development Teams QA Team Operations Team
DevOps Team
@kmugrage@kmugrage
PRODUCT TEAMS
@kmugrage@kmugrage
“YOU BUILD IT, YOU RUN IT”
–Werner Vogels, Amazon
https://queue.acm.org/detail.cfm?id=1142065
@kmugrage@kmugrage
“GIVING DEVELOPERS OPERATIONAL RESPONSIBILITIES HAS GREATLY ENHANCED THE QUALITY OF THE SERVICES, BOTH FROM
A CUSTOMER AND A TECHNOLOGY POINT OF VIEW. THE TRADITIONAL MODEL IS THAT YOU TAKE YOUR SOFTWARE TO THE WALL
THAT SEPARATES DEVELOPMENT AND OPERATIONS, AND THROW IT OVER AND THEN FORGET ABOUT IT. NOT AT AMAZON.
YOU BUILD IT, YOU RUN IT.
THIS BRINGS DEVELOPERS INTO CONTACT WITH THE DAY-TO-DAY OPERATION OF THEIR SOFTWARE. IT ALSO BRINGS THEM INTO
DAY-TO-DAY CONTACT WITH THE CUSTOMER. THIS CUSTOMER FEEDBACK LOOP IS ESSENTIAL FOR IMPROVING THE QUALITY OF
THE SERVICE.”
–Werner Vogels, Amazon
https://queue.acm.org/detail.cfm?id=1142065
ARCHITECTURES AND
TECHNOLOGIES
USE MODERN
@kmugrage
MONOLITHS CAN BE HARD
▸ All functionality is in one process
▸ Scale by replicating the monolith on multiple
servers
https://www.thoughtworks.com/insights/blog/microservices-nutshell
@kmugrage
DEVELOP SMALLER PIECES
MICROSERVICE ARCHITECTURE
▸ Each element of functionality is in a separate
service
▸ Scale by distributing these services across
servers, replicating as needed
https://www.thoughtworks.com/insights/blog/microservices-nutshell
@kmugrage@kmugrage
MODERN ARCHITECTURE EXAMPLE
@kmugrage@kmugrage
SHIPPING BEFORE CONTAINERS
http://enacademic.com/dic.nsf/enwiki/162086
@kmugrage@kmugrage
SHIPPING WITH CONTAINERS
http://enacademic.com/dic.nsf/enwiki/162086
@kmugrage@kmugrage
MODERN INFRASTRUCTURE - DOCKER
OPERATING SYSTEM
DOCKER ENGINE
CONFIGURATION
LIBRARIES
APPLICATION
CONFIGURATION
LIBRARIES
APPLICATION
CONFIGURATION
LIBRARIES
APPLICATION
CONFIGURATION
LIBRARIES
DATABASE
@kmugrage@kmugrage
MODERN INFRASTRUCTURE - KUBERNETES
MASTER NODE
API
SERVER
kubectl
Web UI
KUBELET
PROXY
KUBELET
PROXY
KUBELET
PROXY
NODE NODE NODE
LOAD BALANCER
USERS
OPERATORS
POD
SCHEDULER
@kmugrage@kmugrage
DOCKER WITH KUBERNETES
@kmugrage@kmugrage
HOMEWORK
http://samnewman.io/books/building_microservices/
http://nealford.com/books/
@kmugrage@kmugrage
HOMEWORK
https://github.com/dtsato/devops-in-practice-workshop
@kmugrage@kmugrage
PRODUCT TEAMS
Rental Cars
Consumer
Tax
Hotels
Business to Business
Airlines
Payments
@kmugrage@kmugrage
THE HEART OF DOING EVOLUTIONARY ARCHITECTURE
IS TO MAKE SMALL CHANGES, AND PUT IN
FEEDBACK LOOPS THAT ALLOW EVERYONE TO LEARN
FROM HOW THE SYSTEM IS DEVELOPING.
Martin Fowler
Foreword to Building Evolutionary Architecture
WE STILL HAVE TO DEPLOY SOMEWHERE
@kmugrage@kmugrage
CAR AS A SERVICE
https://www.k3syspro.com/cloud-computing-choosing-right-deployment-method/
@kmugrage
AN EXAMPLE OF PLATFORM AS A SERVICE
CLOUD.GOV
▸ Official service of the US Government
▸ 325 required security controls
▸ 269 handled by cloud.gov
▸ 41 shared
▸ 15 handled by customer
https://cloud.gov/overview/technology/responsibilities/
@kmugrage@kmugrage
THE CLOUD IS JUST SOMEBODY ELSE’S
COMPUTER
Someone at every conference
@kmugrage@kmugrage
PRODUCT TEAMS
@kmugrage@kmugrage
PRODUCT TEAMS
Platform Team Compliance Team Security Team
TO SAFELY DEPLOY
MORE OFTEN
USE CONTINUOUS DELIVERY
https://commons.wikimedia.org/wiki/
File:Continous_Delivery_by_Jez_Humble_and_David_Farley.jpg
@kmugrage@kmugrage
CONTINUOUS DELIVERY IS THE ABILITY TO GET CHANGES OF
ALL TYPES—INCLUDING NEW FEATURES, CONFIGURATION
CHANGES, BUG FIXES AND EXPERIMENTS—INTO
PRODUCTION, OR INTO THE HANDS OF
USERS, SAFELY AND QUICKLY IN A SUSTAINABLE WAY.
Jez Humble
https://continuousdelivery.com/
@kmugrage@kmugrage
MORE HOMEWORK
@kmugrage@kmugrage
CONTINUOUS DELIVERY IS WHAT YOU
“DO” AS PART OF A DEVOPS CULTURE
Me
CONTINUOUS INTEGRATION
A PREREQUISITE TO CD
@kmugrage@kmugrage
CI THEATRE
The ThoughtWorks tech radar recently
recommended putting a hold on the tech team
anti-pattern, CI Theatre. CI Theatre describes the
illusion of practicing continuous integration (CI)
while not really practicing it.
https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre/
@kmugrage@kmugrage
CI THEATRE
In our study only 10% of participants
acknowledged that having a CI server
was not the same as practicing CI.
https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre/
@kmugrage@kmugrage
ARE YOU PRACTICING CI?
@kmugrage@kmugrage
CONTINUOUS DELIVERY PIPELINE
@kmugrage@kmugrage
CD VS CD
http://gofor.cd/cd_vs_cd
@kmugrage@kmugrage
OUR TEAMS
Product Team Security Team Compliance Team
@kmugrage@kmugrage
OUR CONTINUOUS DELIVERY PIPELINE
UNIT
TESTS
FUNCTIONAL
TESTS
DEPLOY
STAGING
DEPLOY
PRODUCTION
@kmugrage
EXAMPLES OF THINGS WHICH ARE BAD
▸ Deploying insecure software
▸ Deploying non-performant software
▸ Deploying non-complying software
▸ Deploying ineffective software
@kmugrage@kmugrage
…OF THE 106 COMPONENTS PER APPLICATION, THE
REPORT’S ANALYSIS REVEALED AN AVERAGE OF 24 (I.E.,
23%) HAVE KNOWN CRITICAL OR SEVERE SECURITY
VULNERABILITIES…
Derek Weeks
http://blog.sonatype.com/2015/06/rework-is-choking-software-2015-state-of-the-software-supply-chain-report/
@kmugrage@kmugrage
THE PURPOSE OF A CONTINUOUS
DELIVERY PIPELINE IS TO KILL A
RELEASE CANDIDATE
Me, and a lot of other people
@kmugrage@kmugrage
OUR CONTINUOUS DELIVERY PIPELINE
UNIT
TESTS
FUNCTIONAL
TESTS
DEPLOY
STAGING
DEPLOY
PRODUCTION
SECURITY TESTS (OWASP, OTHERS)
COMPLIANCE TESTS (SERVERSPEC, INSPEC)
SORRY, THERE’S NO
SILVER BULLET
@kmugrage
SUMMARY
▸ Redefine words for your organization
▸ Change your organization to enable DevOps
▸ Use modern architectures and technologies
▸ Use Continuous Delivery to safely deploy more often
THANK YOU!
For more information about our products
https://www.thoughworks.com/products/
https://www.gocd.org/

You only have to change one thing to make DevOps work, Everything