“YOU BUILD IT, YOU RUN IT”
–Werner Vogels, Amazon @kmugrage
Slide 2
“…IT ALSO BRINGS THEM INTO DAY-TODAY CONTACT WITH THE CUSTOMER. THIS CUSTOMER FEEDBACK LOOP IS ESSENTIAL FOR IMPROVING THE QUALITY OF THE SERVICE.” –Werner Vogels, Amazon @kmugrage
https://queue.acm.org/detail.cfm?id=1142065
Slide 3
Slide 4
WE KNEW EVERYTHING ▸ Defined Continuous Integration ▸ Created the first (or second) CI server ▸ Created Selenium
@kmugrage
Slide 5
JAVA – WRITE ONCE, RUN ANYWHERE ▸ Developed a system on Windows laptops to be deployed to a Solaris cluster ▸ Did all of the right Continuous Integration things ▸ One small issue…
@kmugrage
Slide 6
Slide 7
HOMEWORK
@kmugrage
Slide 8
YOU ONLY HAVE TO CHANGE ONE THING TO DO THE DEVOPS
Slide 9
YOU ONLY HAVE TO CHANGE ONE THING TO DO THE DEVOPS EVERYTHING
Slide 10
THE CHANGES ▸ (Re)define words for your organization ▸ Change your organization to enable DevOps ▸ Use modern architectures and technologies
▸ Use Continuous Delivery to safely deploy on demand
@kmugrage
Slide 11
REDEFINE WORDS
FOR YOUR ORGANIZATION
Slide 12
WHAT ISN’T DEVOPS ▸ A Toolset ▸ A Role ▸ A Team
@kmugrage
Slide 13
IT’S VERBS, NOT NOUNS
developING and operatING
@kmugrage
“DEVOPS: A CULTURE WHERE PEOPLE, REGARDLESS OF TITLE OR BACKGROUND, WORK TOGETHER TO IMAGINE, DEVELOP, DEPLOY AND OPERATE A SYSTEM.” –Me @kmugrage
https://kenmugrage.com/2017/05/05/my-new-definition-of-devops/
Slide 17
CHANGE YOUR ORG
TO ENABLE DEVOPS
Slide 18
TRADITIONAL MODEL Development Teams
@kmugrage
Testing Team
Operations Team
Slide 19
“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 @kmugrage
http://www.melconway.com/Home/Conways_Law.html
Slide 20
TRADITIONAL MODEL Development Teams
@kmugrage
QA Team
Operations Team
Slide 21
RENAMING OPS WON’T SOLVE THE ISSUE Development Teams
@kmugrage
QA Team
DevOps Team
Slide 22
CREATING ANOTHER SILO DOESN’T SOLVE SILOS Development Teams
QA Team
DevOps Team @kmugrage
Operations Team
Slide 23
PRODUCT TEAMS
@kmugrage
Slide 24
USE MODERN
ARCHITECTURES AND TECHNOLOGIES
Slide 25
THERE’S A PHRASE THAT DEFINES LEGACY SOFTWARE. “THE STUFF THAT RUNS OUR BUSINESS” Me, and a lot of other people @kmugrage
Slide 26
MONOLITHS CAN BE HARD ▸ All functionality is in one process
▸ Scale by replicating the monolith on multiple servers
@kmugrage
https://www.thoughtworks.com/insights/blog/microservices-nutshell
Slide 27
DEVELOP SMALLER PIECES MICROSERVICE ARCHITECTURE ▸ Each element of functionality is in a separate service
▸ Scale by distributing these services across servers, replicating as needed
@kmugrage
https://www.thoughtworks.com/insights/blog/microservices-nutshell
Slide 28
DEFINITIONS MATTER ▸ Need to deploy specific versions at the same time? Not a microservice. ▸ Have a shared data source? Not a microservice.
@kmugrage
Slide 29
DON’T REBUILD THE WHOLE THING! ▸ Build services only when you understand the boundaries ▸ Build services where you need to react faster ▸ Build services where you need scalability
@kmugrage
Slide 30
DON’T REBUILD THE WHOLE THING!
@kmugrage
Slide 31
PRODUCT TEAMS
Car Rental Consumer Business to Business Tax Payments
Hotels
@kmugrage
Airlines
Slide 32
FINANCIAL SERVICES PLATFORM Edge Load Balancer Product Domain
Apply Domain
Service
Service Repository Command Handlers Event Handlers
Event Store
Repository E V E N T
Account Domain Service Repository Command Handlers Event Handlers
@kmugrage
Event Store
Command Handlers Event Handlers
Event Store
Customer Domain B U S
Service Repository Command Handlers Event Handlers
Event Store
Slide 33
WITHOUT EVENTS
User Service
Quote Service Quote Service Quote Service Quote Service
@kmugrage
Slide 34
EVENT NOTIFICATION
User Service
Quote Service @kmugrage
Service
Service
Service
Slide 35
EVENT SOURCING ▸ You don’t write to the data store, you create an event which writes to the store ▸ The test: You could completely blow away the store and recreate it from the event stream ▸ You use this model every day (I hope)
@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
@kmugrage
https://cloud.gov/overview/technology/responsibilities/
Slide 39
THE CLOUD IS JUST SOMEBODY ELSE’S COMPUTER Someone at every conference @kmugrage
Slide 40
PRODUCT TEAMS
@kmugrage
Slide 41
PRODUCT TEAMS
Platform Team @kmugrage
Compliance Team
Security Team
Slide 42
https://commons.wikimedia.org/wiki/File:Continous_Delivery_by_Jez_Humble _and_David_Farley.jpg
USE CONTINUOUS DELIVERY
TO SAFELY DEPLOY MORE OFTEN
Slide 43
A PREREQUISITE TO CD
CONTINUOUS INTEGRATION
Slide 44
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.
@kmugrage
https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre/
Slide 45
CI THEATRE
In another ThoughtWorks study only 10% of participants acknowledged that having a CI server was not the same as practicing CI.
@kmugrage
https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre/
Slide 46
ARE YOU PRACTICING CI?
@kmugrage
Slide 47
Slide 48
CONTINUOUS DELIVERY
Slide 49
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 @kmugrage
https://continuousdelivery.com/
Slide 50
CONTINUOUS DELIVERY IS WHAT YOU “DO” AS PART OF A DEVOPS CULTURE Me @kmugrage
Slide 51
CONTINUOUS DELIVERY PIPELINE
@kmugrage
Slide 52
CONTINUOUS DELIVERY VS CONTINUOUS DEPLOYMENT
@kmugrage
http://gofor.cd/cd_vs_cd
Slide 53
CONTINUOUS DELIVERY VS CONTINUOUS DEPLOYMENT
@kmugrage
http://gofor.cd/cd_vs_cd
Slide 54
OUR TEAMS
Product Team
@kmugrage
Security Team
Compliance Team
Slide 55
OUR CONTINUOUS DELIVERY PIPELINE UNIT TESTS
@kmugrage
FUNCTIONAL TESTS
DEPLOY STAGING
DEPLOY PRODUCTION
Slide 56
CONTINUOUS DELIVERY IS NOT JUST CONTINUOUS INTEGRATION WITH A PLUGIN AND A COUPLE EXTRA STEPS Me @kmugrage
Slide 57
EXAMPLES OF THINGS WHICH ARE BAD ▸ Deploying insecure software ▸ Deploying non-performant software ▸ Deploying non-complying software
▸ Deploying ineffective software
@kmugrage
Slide 58
THE PURPOSE OF A CONTINUOUS DELIVERY PIPELINE IS TO KILL A RELEASE CANDIDATE Me, and a lot of other people @kmugrage
SORRY, THERE’S NO SILVER BULLET
BUT THESE ARE SOLVED PROBLEMS AND THERE IS A LOT OF HELP
Slide 62
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
@kmugrage