SlideShare a Scribd company logo
DevOps Patterns & Antipatterns
for Continuous Software Updates
“What can possibly go wrong?!”
Why software updates?
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
“As everycompanybecome asoftware company,
Security vulnerabilities are the new oil spills”
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Identify Fix Deploy
Identify
Immediately
Fix
OS upgrade
Deploy
years
Identify
2 months
Fix
Struts upgrade
Deploy
2 months
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Identify
As fast as possible
Fix
As fast as possible
Deploy
As fast as possible
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
This is not
a new idea!
XP: short feedback
Scrum: reducing cycle time
to absolute minimum
TPS: Decide as late as
possible and Deliver as fast
as possible
Kanban: Incremental
change
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #dockercon jfrog.com/shownotes@ErinMeyerINSEAD’s “Culture Map”
🎩
shownotes
http://jfrog.com/shownotes
Slides
Video
Links
Comments, Ratings
Raffle
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Do we want
it?
Let’s
update!
Are there
any high
risks?
How about no
Do we trust
the
update?
Update
available
No
Yes
Yes
Yes
NoNo
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
number of artifacts as a symptom of complexity
@jbaruch @jfrog #LiquidSoftware www.liquidsoftware.com
IoT
Serverless
Docker
Infrastructure as Code
Continuous Delivery
Continuous Integration
Agile
Microservices
2000
Today
The problem is not the code, it’s the data. Big data.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
#emptyenvelopefromchina
@jbaruch #LiquidSoftware @devopsdotcom
http://jfrog.com/shownotes
Do we want
it?
Let’s
update!
Are there
any high
risks?
Can we
verify the
update?
How about no
Do we trust
the
update?
Update
available
No
Yes
Yes
Yes
Yes
NoNoNo
Time
consuming
verification
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Features
that we
want
Acceptance
tests costs
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Do we want
it?
Let’s update!
Are there
any high
risks?
Update
available
No
Yes
No one
asked you
(auto update)
Your browser
Twitter in your browser
Twitter on your smartphone
Your smartphone OS?!
What can possibly
go wrong?
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Continuous
updates pattern:
Local rollback
Problem: update went
catastrophically wrong and
an over the-air patch can’t
reach the device
Solution: Have a previous
version saved on the device
prior to update. Rollback in
case problem occurred
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Continuous
updates pattern:
OTA software
updates
Problem: physical recalls
are costly. Extremely costly.
Also, you can’t force an
upgrade.
Solution: Implement over
the air software updates,
preferably, continuous
updates.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
continuous OTA updates are like normal OTA updates,
but better
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Continuous
updates pattern:
continuous
updates
Problem: In batch updates
important features wait for
non-important features.
Solution: Implement
continuous updates.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
You thought your problems are hard?
Things under your control Server-side Updates IoT (Mobile, Automotive,
Edge) Updates
The availability of the target
✓ ✕
The state of the target
✓ ✕
The version on the target
✓ ✕
The access to the target
✓ ✕
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
KNIGHT-MARE
New system reused old APIs
1 out of 8 servers was not
updated
New clients sent requests to
machine contained old code
Engineers undeployed
working code from updated
servers, increasing the load on
the not-updated server
No monitoring, no alerting, no
debugging
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
Automated
deployment
Problem: People suck at
repetitive tasks.
Solution: Automate
everything.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
frequent updates
Problem: Seldom
deployments generate
anxiety and stress, leading
to errors.
Solution: Update
frequently to develop skill
and habit.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
state awareness
Problem: Target state can
affect the update process
and the behavior of the
system after the update.
Solution: Know and
consider target state when
updating.
Reverting might require
revering the state.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Cloud-dark
New rules are deployed
frequently to battle attacks
Deployment of a single
misconfigured rule
Included regex to spike
CPU to 100%
“Affected region: Earth”
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
Progressive
Delivery
Problem: Releasing a bug
affects ALL the users.
Solution: Release to a
small number of users first
effectively reducing the
blast radius and observe.
If a problem occurs, stop
the release, revert or
update the affected users.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
observability
Problem: Some problems
are hard to trace relying on
user feedback only
Solution: Implement
tracing, monitoring and
logging
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
Rollbacks
Problem: Fixes might take
time, users suffer in a
meanwhile
Solution: Implement
rollback, the ability to
deploy a previous version
without delay
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates pattern:
feature flags
Problem: Rollbacks are not
always supported by the
deployment target platform
Solution: Embed 2 versions
of the features in the app
itself and trigger them with
API calls
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
Continuous
updates pattern:
zero downtime
updates
Problem: You will probably
loose all your users if you
shut down for 5 weeks to
perform an update.
Solution: Perform zero-
downtime OTA small and
fequent continuous
updates.
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Continuous
updates
Frequent
Automatic
Tested
Progressively delivered
State-aware
Observability
*Local Rollbacks
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Do we want
it?
Let’s update!
Are there
any high
risks?
Do we trust
the
update?
Update
available
No
Yes
Yes
Yes
Sure, why not?
(auto update)
Our goal is to transition from bulk and rare software updates to
extremely tiny and extremely frequent software updates;
so tiny and so frequent that they provide an illusion of
software flowing from development to the update target.
We call it the Liquid Software vision.
”
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Corner cases?
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020
@jbaruch #LiquidSoftware @devopsdotcom http://jfrog.com/shownotes
Q&A and twitter ads
@jbaruch
#LiquidSoftware
#DevNexus
https://liquidsoftware.com
https://jfrog.com/shownotes

More Related Content

PDF
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
PDF
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
PDF
Continuous Deployment at Etsy — TimesOpen NYC
PPTX
DevOps - Understanding Core Concepts (Old)
PPTX
6 easy bug tracking tips & tricks every developer should know!
PPTX
Continuous Delivery
PDF
Continuous Delivery Distilled
PPTX
Continuous Testing in Vegas
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Continuous Deployment at Etsy — TimesOpen NYC
DevOps - Understanding Core Concepts (Old)
6 easy bug tracking tips & tricks every developer should know!
Continuous Delivery
Continuous Delivery Distilled
Continuous Testing in Vegas

What's hot (19)

PDF
Continuous Deployment: The Dirty Details
PPTX
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
PDF
Principles and Practices in Continuous Deployment at Etsy
PDF
PPTX
Continuous delivery applied
PPT
Understand release engineering
PDF
CLL19 - Acceptance Tests as Monitors
PDF
Auto-Cascading Security Updates Through Docker Images
KEY
Continuous Integration, the minimum viable product
PPTX
Agile Mindset and Its Implications - My Understanding
PDF
Continuous testing in agile projects 2015
PPTX
PPTX
Continuous Delivery with TFS msbuild msdeploy
PPT
The Why and How of Continuous Delivery
PPTX
Qa in CI/CD
PPTX
CI/CD for mobile at HERE
PPTX
How do you implement Continuous Delivery? Part 4: Automated Testing
ODP
Continuous Integration using TFS
PPTX
Techniques, Tips & Tools For Mobile App Testing
Continuous Deployment: The Dirty Details
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Principles and Practices in Continuous Deployment at Etsy
Continuous delivery applied
Understand release engineering
CLL19 - Acceptance Tests as Monitors
Auto-Cascading Security Updates Through Docker Images
Continuous Integration, the minimum viable product
Agile Mindset and Its Implications - My Understanding
Continuous testing in agile projects 2015
Continuous Delivery with TFS msbuild msdeploy
The Why and How of Continuous Delivery
Qa in CI/CD
CI/CD for mobile at HERE
How do you implement Continuous Delivery? Part 4: Automated Testing
Continuous Integration using TFS
Techniques, Tips & Tools For Mobile App Testing
Ad

Similar to DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020 (20)

PPTX
Patterns and Antipatterns for Software updates
PPTX
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
PDF
Open source communities and business eco system strategy - OW2 Consortium fro...
KEY
AgileCE2011 holistic devployment
PDF
Agile EE2011 holistic devployment
PDF
Open Source Business Models
PDF
Effective entrepreneurship for developers
PPTX
CONTINUOUS DELIVERY EN BANQUE
PDF
Scaling a Serverless Developer Platform for Teams
PDF
1004 z2 env_positioned
PDF
Delivery Patterns for Rapid and Reliable Releases @ JAX DevOps London (May 2019)
PDF
Delivery patterns for rapid and reliable releases (All Day DevOps 2018)
PDF
Deliver Fast with Confidence
PDF
Continuous Delivery Patterns for Boring Releases @ DevOps Porto meetup - July...
PDF
How Modern Software Architecture Benefits from Patterns Found in Natural Comp...
PPTX
NDC London 2020 - Challenges of Managing CoreFx Repo -- Karel Zikmund
PDF
Devnology back toschool software reengineering
PDF
Webinar Bm V4[1]
PDF
How to Introduce Continuous Delivery
PDF
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
Patterns and Antipatterns for Software updates
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
Open source communities and business eco system strategy - OW2 Consortium fro...
AgileCE2011 holistic devployment
Agile EE2011 holistic devployment
Open Source Business Models
Effective entrepreneurship for developers
CONTINUOUS DELIVERY EN BANQUE
Scaling a Serverless Developer Platform for Teams
1004 z2 env_positioned
Delivery Patterns for Rapid and Reliable Releases @ JAX DevOps London (May 2019)
Delivery patterns for rapid and reliable releases (All Day DevOps 2018)
Deliver Fast with Confidence
Continuous Delivery Patterns for Boring Releases @ DevOps Porto meetup - July...
How Modern Software Architecture Benefits from Patterns Found in Natural Comp...
NDC London 2020 - Challenges of Managing CoreFx Repo -- Karel Zikmund
Devnology back toschool software reengineering
Webinar Bm V4[1]
How to Introduce Continuous Delivery
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
Ad

More from Baruch Sadogursky (20)

PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
PDF
Data driven devops as presented at QCon London 2018
PDF
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
PDF
Java Puzzlers NG S03 a DevNexus 2018
PDF
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
PDF
Data driven devops as presented at Codemash 2018
PPTX
Best Practices for Managing Docker Versions as presented at JavaOne 2017
PDF
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
PPTX
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
PDF
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
PDF
Let’s Wing It: A Study in DevRel Strategy
PDF
Log Driven First Class Customer Support at Scale
PPTX
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
PDF
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
PDF
Groovy Puzzlers S04: The Bytecode Bites Back at Gr8Conf US 2017
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Gr8Conf 2017
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Downtown San J...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
Data driven devops as presented at QCon London 2018
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
Java Puzzlers NG S03 a DevNexus 2018
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
Data driven devops as presented at Codemash 2018
Best Practices for Managing Docker Versions as presented at JavaOne 2017
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
Let’s Wing It: A Study in DevRel Strategy
Log Driven First Class Customer Support at Scale
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Groovy Puzzlers S04: The Bytecode Bites Back at Gr8Conf US 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Gr8Conf 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Downtown San J...

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Cloud computing and distributed systems.
PPT
Teaching material agriculture food technology
PDF
Electronic commerce courselecture one. Pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Approach and Philosophy of On baking technology
Encapsulation_ Review paper, used for researhc scholars
Cloud computing and distributed systems.
Teaching material agriculture food technology
Electronic commerce courselecture one. Pdf
Review of recent advances in non-invasive hemoglobin estimation
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm

DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com April 2020