SlideShare a Scribd company logo
SLO
DRIVEN
DEVELOPMENT
Alon Nativ, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO
DRIVEN
DEVELOPMENT
Name: Alon Nativ
Company: Tomorrow.io
Hobbies: Rant about Python
@anativ /anativ
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
Accurate
Accurate ML & Data
Accurate ML & Data Save Lives
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
LIGHTNING ALERT
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SIMPLE
DESIGN
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
Why?
Requirements
Why?
Requirements
Lambda?
Cold Start
Why?
Requirements
Lambda?
Cold Start
Pub/Sub?
No SLA
Why?
Requirements
Lambda?
Cold Start
Pub/Sub?
No SLA
@#$!&%^
!!!!
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
The most IMPORTANT
feature of any system is its
RELIABILITY
100% is the wrong
RELIABILITY
target for basically
EVERYTHING.
Benjamin Trynor Sloss
VP of 24x7 Engineering, Google
every number that you pick has
DIRECT IMPACT on your cost velocity
and architecture
99.5
99.4 99.6 99.7 99.8 99.9 1
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLA
SLA - Service Level Agreement
SLA - Service Level Agreement
Binding
Agreement
SLA - Service Level Agreement
Binding
Agreement
Pay
SLA - Service Level Agreement
Binding
Agreement
Pay Sales &
Customers
DOWN OVER a DAY
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLA Refund Time / Month
99% > X >= 95% 25% 1d 12h 31m
If you are proud of your
SLA you are probably
doing something
WRONG
SLA SLO
SLO - Service Level Objectives
SLO - Service Level Objectives
User
Happiness
SLO - Service Level Objectives
User
Happiness
Your
Expectations
SLO - Service Level Objectives
User
Happiness
Your
Expectations
Product &
SRE*
GOOD SLO
0ms 1500ms
?
SLA SLO SLI
SLI
SLI
SLI - Service Level Indicator
SLI - Service Level Indicator
Key Metrics
SLI - Service Level Indicator
Key Metrics Monitors
SLI - Service Level Indicator
Key Metrics Monitors Developers &
SRE*
SLI =
good events
valid events
X 100
recipe
for
good
SLI
GOOD SLI
GOOD SLI
Up to 4
2-4
GOOD SLI
Up to 4 No Internal*
Metrics
2-4
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
Response
Time
Response
Time
Number Of
Results
Response
Time
Number Of
Results
Top Clicks
Response
Time
Number Of
Results
Top Clicks CPU
X
HIGH CORRELATION
Bad Good
HIGH CORRELATION
This slide can’t be reached
ERROR_NO_SLIDE_FOUND
1 - SLO = ERROR BUDGET
SPENDING
ERROR
BUDGET
SPENDING
ERROR BUDGET
SLI Error Budget
SPENDING
ERROR BUDGET
SLI Error Budget
ERRORS
PER DAY
Weekend
MetaGoat
Team A: TESTS
Team B: CI/CD
W. Edwards Deming.
Data Scientist
Without DATA
you are another
person with an
OPINION.
MTTR / MTTF
MTTR
Mean Time To Recovery
MTTF
Mean Time to Failure
Team B: MTTR (rollback)
Team A: MTTF (tests)
Team A: MTTF (tests)
Team B: MTTR (rollback)
Team B: MTTR (rollback)
Team A: MTTF (tests)
If you can’t
MEASURE it, you
can’t IMPROVE it.
Lord Kelvin
Mathematician & engineer
TRADEOFFS
SPARE BUDGET
SPARE BUDGET
Features
SPARE BUDGET
Features Risky
Experiments
SPARE BUDGET
Features Risky
Experiments
Spot /
preemptible
SPARE BUDGET
Features Risky
Experiments
Spot /
preemptible
Scale Down
SPARE BUDGET
Features Risky
Experiments
Spot /
preemptible
Scale Down A/B Testing
OUT OF BUDGET
OUT OF BUDGET
Deployment
freeze
OUT OF BUDGET
Deployment
freeze
Post Mortem
OUT OF BUDGET
Deployment
freeze
Post Mortem CI/CD
OUT OF BUDGET
Deployment
freeze
Post Mortem CI/CD
Monitoring
OUT OF BUDGET
Deployment
freeze
Post Mortem CI/CD
Monitoring Relax SLO
OUT OF BUDGET
Deployment
freeze
Post Mortem CI/CD
Monitoring Relax SLO Deprecate
Services
HIGH SLO
HIGH SLO
Less Budget
HIGH SLO
Less Budget Development
Time
HIGH SLO
Less Budget Development
Time
Sleeping
Hours
HIGH SLO
Less Budget Development
Time
Sleeping
Hours
Maintenance
x2-x10
FIRST STEPS
USER
CENTRIC
In GOD we trust
all others bring
DATA
W. Edwards Deming.
Data Scientist
USE YOUR
BUDGET
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
If you can’t
manage your
RELIABILITY,
your reliability
MANAGES you
Be part of tomorrow, TODAY.
alon@tomorrow.io /anativ

More Related Content

What's hot (20)

PPTX
Top Lessons Learned From The DevOps Handbook
XebiaLabs
 
PPTX
DevOps and the Importance of Single Source Code Repos 
Perforce
 
PPT
Integrated Dev And Qa Team With Scrum
Ethan Huang
 
PPT
Continuous Deployment
Brian Henerey
 
PDF
Scrum Control or Kanban Agility? You Can Have both, Using Metrics
Atlassian
 
PDF
Drupal and Devops , the Survey Results
Kris Buytaert
 
PPTX
Security & DevOps- Ways To Make Sure Your Apps & Infrastructure Are Secure
Puppet
 
PDF
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Keet Sugathadasa
 
PDF
Software architecture in a DevOps world
Bert Jan Schrijver
 
PPTX
How Do We Better Sell DevOps? - PuppetConf 2013
Puppet
 
PDF
Attacking Pipelines--Security meets Continuous Delivery
James Wickett
 
PPTX
DOES SFO 2016 - Scott Willson - Top 10 Ways to Fail at DevOps
Gene Kim
 
PPTX
2016 State of DevOps Report Webinar
Puppet
 
PDF
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
dev2ops
 
PPTX
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
Gene Kim
 
PPTX
Team wide testing
Ethan Huang
 
PPTX
What is DevOps
Kyle Hailey
 
PDF
Planning for Contract Agile Projects
Mike Cohn
 
PPTX
Release Readiness Validation with Keptn for Austrian Online Banking Software
Andreas Grabner
 
PDF
Debugging distributed systems
Bert Jan Schrijver
 
Top Lessons Learned From The DevOps Handbook
XebiaLabs
 
DevOps and the Importance of Single Source Code Repos 
Perforce
 
Integrated Dev And Qa Team With Scrum
Ethan Huang
 
Continuous Deployment
Brian Henerey
 
Scrum Control or Kanban Agility? You Can Have both, Using Metrics
Atlassian
 
Drupal and Devops , the Survey Results
Kris Buytaert
 
Security & DevOps- Ways To Make Sure Your Apps & Infrastructure Are Secure
Puppet
 
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Keet Sugathadasa
 
Software architecture in a DevOps world
Bert Jan Schrijver
 
How Do We Better Sell DevOps? - PuppetConf 2013
Puppet
 
Attacking Pipelines--Security meets Continuous Delivery
James Wickett
 
DOES SFO 2016 - Scott Willson - Top 10 Ways to Fail at DevOps
Gene Kim
 
2016 State of DevOps Report Webinar
Puppet
 
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
dev2ops
 
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
Gene Kim
 
Team wide testing
Ethan Huang
 
What is DevOps
Kyle Hailey
 
Planning for Contract Agile Projects
Mike Cohn
 
Release Readiness Validation with Keptn for Austrian Online Banking Software
Andreas Grabner
 
Debugging distributed systems
Bert Jan Schrijver
 

Similar to SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io (20)

PDF
Cloud Foundry Summit Berlin Keynote
EMC
 
PPTX
How agile is your team
Phani Bhushan
 
PDF
S.R.E - create ultra-scalable and highly reliable systems
Ricardo Amaro
 
PDF
The Four Keys - Measuring DevOps Success
Dina Graves Portman
 
PPTX
Humans by the hundred
Yelp Engineering
 
PDF
Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Rundeck
 
PDF
Measurement magic in world of DevOps
Kai Jokiniemi
 
PDF
GCP-pdevops devops engineer exam prepearitaon guide
skooldevops
 
PPTX
Making the Switch from HP Quality Center to qTest
QASymphony
 
PPT
Acceptance Testing Driven Development, TDD
Laurent PY
 
PDF
Introduction to Agile
Charlotte Chang
 
PPT
Introduction To Six Sigma
makarand_lotankar
 
PDF
User Story Cycle Time - An Universal Agile Maturity Measurement
Ethan Huang
 
PPTX
Stop multiplying by 4 PHP Tour 2014
Chuck Reeves
 
PDF
Improving Defect Yield - a three step approach
STAG Software Private Limited
 
PDF
How to Apply a Product Mindset to Your Platform Team Tomorrow
Jelmer Borst
 
PPT
Optimizing Your Agile Testing Processes
Stanton Champion
 
PPTX
Lead Time: What We Know About It...
azheglov
 
PDF
What Can DevOps Learn from Formula 1?
Stephen Burton
 
PPTX
Embedding a Shift Left Culture in your Enterprise
Gerald Bachlmayr
 
Cloud Foundry Summit Berlin Keynote
EMC
 
How agile is your team
Phani Bhushan
 
S.R.E - create ultra-scalable and highly reliable systems
Ricardo Amaro
 
The Four Keys - Measuring DevOps Success
Dina Graves Portman
 
Humans by the hundred
Yelp Engineering
 
Keeping Your DevOps Transformation From Crushing Your Ops Capacity
Rundeck
 
Measurement magic in world of DevOps
Kai Jokiniemi
 
GCP-pdevops devops engineer exam prepearitaon guide
skooldevops
 
Making the Switch from HP Quality Center to qTest
QASymphony
 
Acceptance Testing Driven Development, TDD
Laurent PY
 
Introduction to Agile
Charlotte Chang
 
Introduction To Six Sigma
makarand_lotankar
 
User Story Cycle Time - An Universal Agile Maturity Measurement
Ethan Huang
 
Stop multiplying by 4 PHP Tour 2014
Chuck Reeves
 
Improving Defect Yield - a three step approach
STAG Software Private Limited
 
How to Apply a Product Mindset to Your Platform Team Tomorrow
Jelmer Borst
 
Optimizing Your Agile Testing Processes
Stanton Champion
 
Lead Time: What We Know About It...
azheglov
 
What Can DevOps Learn from Formula 1?
Stephen Burton
 
Embedding a Shift Left Culture in your Enterprise
Gerald Bachlmayr
 
Ad

More from DevOpsDays Tel Aviv (20)

PDF
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
DevOpsDays Tel Aviv
 
PPTX
GRAPHQL TO THE RES(T)CUE, ELLA SHARAKANSKI, Salto
DevOpsDays Tel Aviv
 
PPTX
MICROSERVICES ABOVE THE CLOUD - DESIGNING THE INTERNATIONAL SPACE STATION FOR...
DevOpsDays Tel Aviv
 
PPTX
THE (IR)RATIONAL INCIDENT RESPONSE: HOW PSYCHOLOGICAL BIASES AFFECT INCIDENT ...
DevOpsDays Tel Aviv
 
PPTX
PRINCIPLES OF OBSERVABILITY // DANIEL MAHER, DataDog
DevOpsDays Tel Aviv
 
PPTX
NUDGE AND SLUDGE: DRIVING SECURITY WITH DESIGN // J. WOLFGANG GOERLICH, Duo S...
DevOpsDays Tel Aviv
 
PPTX
(Ignite) TAKE A HIKE: PREVENTING BATTERY CORROSION - LEAH VOGEL, CHEGG
DevOpsDays Tel Aviv
 
PPTX
THE THREE DISCIPLINES OF CI/CD SECURITY, DANIEL KRIVELEVICH, Cider Security
DevOpsDays Tel Aviv
 
PDF
THE PLEASURES OF ON-PREM, TOMER GABEL
DevOpsDays Tel Aviv
 
PPTX
CONFIGURATION MANAGEMENT IN THE CLOUD NATIVE ERA, SHAHAR MINTZ, EggPack
DevOpsDays Tel Aviv
 
PPTX
SOLVING THE DEVOPS CRISIS, ONE PERSON AT A TIME, CHRISTINA BABITSKI, Develeap
DevOpsDays Tel Aviv
 
PPTX
OPTIMIZING PERFORMANCE USING CONTINUOUS PRODUCTION PROFILING ,YONATAN GOLDSCH...
DevOpsDays Tel Aviv
 
PPTX
HOW TO SCALE YOUR ONCALL OPERATION, AND SURVIVE TO TELL, ANTON DRUKH
DevOpsDays Tel Aviv
 
PPTX
FLYING BLIND - ACCESSIBILITY IN MONITORING, FEU MOUREK, Icinga
DevOpsDays Tel Aviv
 
PPTX
(Ignite) WHAT'S BURNING THROUGH YOUR CLOUD BILL - GIL BAHAT, CIDER SECURITY
DevOpsDays Tel Aviv
 
PPTX
ONBOARDING IN LOCKDOWN, HILA FOX, Augury
DevOpsDays Tel Aviv
 
PPTX
DON'T PANIC: GETTING YOUR INFRASTRUCTURE DRIFT UNDER CONTROL, ERAN BIBI, Firefly
DevOpsDays Tel Aviv
 
PPTX
(Ignite) OPEN SOURCE - OPEN CHOICE: HOW TO CHOOSE AN OPEN-SOURCE PROJECT, HIL...
DevOpsDays Tel Aviv
 
PPTX
(Ignite) HISTORY IS A WHEEL. TECH IS A SPIRAL, ERAN ZIMBLER, Alibaba Cloud
DevOpsDays Tel Aviv
 
PDF
LGBTech at DevOpsDays Tel Aviv
DevOpsDays Tel Aviv
 
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
DevOpsDays Tel Aviv
 
GRAPHQL TO THE RES(T)CUE, ELLA SHARAKANSKI, Salto
DevOpsDays Tel Aviv
 
MICROSERVICES ABOVE THE CLOUD - DESIGNING THE INTERNATIONAL SPACE STATION FOR...
DevOpsDays Tel Aviv
 
THE (IR)RATIONAL INCIDENT RESPONSE: HOW PSYCHOLOGICAL BIASES AFFECT INCIDENT ...
DevOpsDays Tel Aviv
 
PRINCIPLES OF OBSERVABILITY // DANIEL MAHER, DataDog
DevOpsDays Tel Aviv
 
NUDGE AND SLUDGE: DRIVING SECURITY WITH DESIGN // J. WOLFGANG GOERLICH, Duo S...
DevOpsDays Tel Aviv
 
(Ignite) TAKE A HIKE: PREVENTING BATTERY CORROSION - LEAH VOGEL, CHEGG
DevOpsDays Tel Aviv
 
THE THREE DISCIPLINES OF CI/CD SECURITY, DANIEL KRIVELEVICH, Cider Security
DevOpsDays Tel Aviv
 
THE PLEASURES OF ON-PREM, TOMER GABEL
DevOpsDays Tel Aviv
 
CONFIGURATION MANAGEMENT IN THE CLOUD NATIVE ERA, SHAHAR MINTZ, EggPack
DevOpsDays Tel Aviv
 
SOLVING THE DEVOPS CRISIS, ONE PERSON AT A TIME, CHRISTINA BABITSKI, Develeap
DevOpsDays Tel Aviv
 
OPTIMIZING PERFORMANCE USING CONTINUOUS PRODUCTION PROFILING ,YONATAN GOLDSCH...
DevOpsDays Tel Aviv
 
HOW TO SCALE YOUR ONCALL OPERATION, AND SURVIVE TO TELL, ANTON DRUKH
DevOpsDays Tel Aviv
 
FLYING BLIND - ACCESSIBILITY IN MONITORING, FEU MOUREK, Icinga
DevOpsDays Tel Aviv
 
(Ignite) WHAT'S BURNING THROUGH YOUR CLOUD BILL - GIL BAHAT, CIDER SECURITY
DevOpsDays Tel Aviv
 
ONBOARDING IN LOCKDOWN, HILA FOX, Augury
DevOpsDays Tel Aviv
 
DON'T PANIC: GETTING YOUR INFRASTRUCTURE DRIFT UNDER CONTROL, ERAN BIBI, Firefly
DevOpsDays Tel Aviv
 
(Ignite) OPEN SOURCE - OPEN CHOICE: HOW TO CHOOSE AN OPEN-SOURCE PROJECT, HIL...
DevOpsDays Tel Aviv
 
(Ignite) HISTORY IS A WHEEL. TECH IS A SPIRAL, ERAN ZIMBLER, Alibaba Cloud
DevOpsDays Tel Aviv
 
LGBTech at DevOpsDays Tel Aviv
DevOpsDays Tel Aviv
 
Ad

Recently uploaded (20)

PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 

SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io

Editor's Notes

  • #2: Hello <PAUSE> Today I’m going to talk about “SLO Driven Development” But before we will do that, I want to ask you a few questions Who knows here what is SLA [RAISE HAND] SLO? [PAUSE] SLI? [PAUSE] How heard about SLO Driven Development? [PAUSE] Ok, they are few people here that knows understand Japanese
  • #3: Because, when I searched for “SLO Driven Development” I got two results <PAUSE> and well, it was Japanese There not a lot of people here that knows Japanese so we will do it in English. And I don’t even speak Japanese :)
  • #4: What are we going to talk about today? Everyone wants a service that is up and reliable 100% of the time. But no one is able to do it. Do we really want it? Do we need it? Today I’ll talk about tools that can help us manage our reliability, improve our time to value, save money and make our team happier Improve time to value Save Money Make team happier
  • #5: My name is Alon Nativ I work at Tomorrow.io as Systeem Architect Hobbies: Rant about Python You can listen to me talk at the reversim podcast Follow me on twitter / linkedin
  • #6: Tomorrow.io is a weather intelligence platform. We provide companies weather insights in order to improve their business.
  • #7: We are accurate weather forecast, minute by minute by the street level. So we can tell you that it is going to rain tomorrow at 12:17 here at the University for 21min but only 3min after that at sharona market.
  • #8: We are using ML & big data, handling Billions of events per minute in order to do that.
  • #9: But thing that I most proud of is that we alerts on weather hazards, lightning, and flood in order to save people life especially on 3rd world countries So reliability is very important to us.
  • #10: I would like to start with a story of a system that we built, and talk about the Good the bad & the ugly [PAUSE] and it got really ugly This is a story about a developer that just wanted to get home alive but took some wrong turns in the middle of the process
  • #11: Tomorrow.io is a weather company, so we wanted to build a lightning alert system called “Fulmo”. Fulmo is the esperanto word for lightning, esperanto is some flavor of latin. So what is this system: There are lightning sensors all over the world that collects information on lightning strike it can be Cloud to Cloud or Cloud to Ground and provides some information about the lightning. The location of the lightning - lat/lon If it was Cloud 2 Cloud or Cloud 2 Ground How many sensors saw it And a few more variables on the lightnings Now we have clients that wants to get a notifications when the lightning is in a specific area. The notification can be a WebHook, sms, email, slack you named it. So the clients define area of interests and some filters on it and they want to be notified once the conditions are met. It can be by the lightning type / by amount of lightnings in a few seconds, when there are no lightnings for a few minutes or some other parameters. [PAUSE] The next step [NEXT SLIDE] The developer took his notebook and wrote the requirements
  • #12: The developer took his notebook and wrote the requirements The system requirements were very simple The PM asked one thing Notify on Every Lightning In Less Than 500 millisecond 1 liner Short and very easy to understand
  • #14: So I looked at the design and I was very happy I thought to myself that we are building exactly the right system that will take us where we need to. We are building a very simple and efficient system. something that everyone likes [PAUSE] Someone even told me, this system is like bicycles, it is THE most efficient tool to get from point A to point B it is very easy to maintenance and even a kid can use it. But… it seems that we were wrong, we were actually building something else. [CLICK] We built something that was much more like a spaceship :) I found out that we were building something very complex that was very far from the original design… The lambda were replaced by docker over k8s The queue systems were replaced by redis queue It becomes a multi regional system - so we had to add de-dup system to make sure that we are not sending the same lightning twice… and much more changes…. Instead of simple serverless system… we got something that is extremely complex to deploy and managed And we were WAY off our original time estimations
  • #15: So I looked at the design and I was very happy I thought to myself that we are building exactly the right system that will take us where we need to. We are building a very simple and efficient system. something that everyone likes [PAUSE] But… it seems that I was wrong, we were actually building something else. [CLICK] I found out that we were building something very complex that was very far from the original design… The lambda were replaced by docker over k8s The queue systems were replaced by redis queue It becomes a multi regional system - so we had to add de-dup system to make sure that we are not sending the same lightning twice… and much more changes…. Instead of simple serverless system… we got something that is extremely complex to deploy and managed And we were WAY off our original time estimations
  • #16: So I asked the developer, WHY???? We had a working system a very simple one. WHY did you decided to change it? His answer was: It simply didn’t answer the requirements On some cases we had cold start on the lambda and it took a bit over 500 mili to send the notification And why replacing the pub/sub? it doesn't guarantee a sub second delivery SLA But who cares about this rare cases? So we looked back at the requirements
  • #21: Notify on Every Lightning In Less Than 500 millisecond [CLICK]
  • #22: Every equals 100% So we were building a spaceship just because we had wrong definitions of SLA! [PAUSE] So let’s talk about SLAs [PAUSE]
  • #23: The most important feature of any system is its reliability! [PAUSE] If reliability is the most important feature then why not aiming for 100% reliability What does it mean to get to 100% reliability? [PAUSE] Let’s put a data center in space! In case a meteor is going to hit earth! We want 100% reliability right? Everyone understands that this is stupied and unreasonable but we keep saying that we want that the system will be up ALL THE TIME [PAUSE] do we? Maybe 99.999% is good enough? why not 99.99%? How do we define this? Who is responsible for defining the limits? [PAUSE]
  • #24: 100% is the wrong reliability target for basically EVERYTHING [PAUSE] This was said by Benjamin Trynor - VP of 24x7 Engineering at Google And he is basically the father of SRE he invented the term and he created that group in Google, so I think that we can all agree that he some experience with large systems.. Now if we will look back at our product requirements “Notify on EVERY Lightning In Less Than 500 ms” We know that the requirement were wrong. We all understand that 100% is the wrong number [PAUSE] So what is the right number? Sadly there is no easy answer for that.
  • #25: So what is the reliability target that we should aim for? there is no easy answer for that But what I can tell you is that [PAUSE] If you are really serious about your SLO [PAUSE] every number that you pick has direct impact on your cost / velocity and architecture The higher the reliability target the more time it will take you to built the system you will need a much more complected system. It will be more expensive
  • #26: We have tools that can help us find the right number SLA, SLO, SLI
  • #27: We have tools that can help us find the right number SLA, SLO, SLI
  • #28: SLA - The agreement you with your clients or users “Binding Agreement” - With external users it might be a legal contract You may need to pay your users! - this is not a good business :) Defined by “Sales / Customers” For most cases, SLA is just a business number to tell your clients that you will make sure that they will get good service and if not, you are going to pay them back. [PAUSE]
  • #29: SLA - The agreement you with your clients or users “Binding Agreement” - With external users it might be a legal contract You may need to pay your users! - this is not a good business :) Defined by “Sales / Customers” For most cases, SLA is just a business number to tell your clients that you will make sure that they will get good service and if not, you are going to pay them back. [PAUSE]
  • #30: SLA - The agreement you with your clients or users “Binding Agreement” - With external users it might be a legal contract You may need to pay your users! - this is not a good business :) Defined by “Sales / Customers” For most cases, SLA is just a business number to tell your clients that you will make sure that they will get good service and if not, you are going to pay them back. [PAUSE]
  • #31: SLA - The agreement you with your clients or users “Binding Agreement” - With external users it might be a legal contract You may need to pay your users! - this is not a good business :) Defined by “Sales / Customers” For most cases, SLA is just a business number to tell your clients that you will make sure that they will get good service and if not, you are going to pay them back. [PAUSE]
  • #32: If I’ll tell you that I know about an Amazing service but only if it will down for over a day and a half you will get a significant refund. I guess most of you will be laughing and some of you will say that they will never use such a service.
  • #33: But probably Most of you use this service :) AWS can be down for over a day and a half each month and you will get a partial refund
  • #34: But probably Most of you use this service :) AWS can be down for over a day and a half each month and you will get a partial refund
  • #35: Remmber this [PAUSE] IF YOU ARE PROUD OF YOUR SLA YOU ARE PROBABLY DOING SOMETHING WRONG [PAUSE] It is a pure business decision, if it is not blocking your sales then you should keep it as low as possible! Don’t try to be a hero or be innovative with your SLA, this is not the place to do it [PAUSE] There are some rare cases that this is a go to market strategy but on most cases… Keep it low.
  • #36: We have tools that can help us find the right number SLA, SLO, SLI
  • #37: SLOs - The objectives your team must hit to meet that agreement “User Happiness” What you expect from yourself - you should have higher expectations than what others expect from you. - here you can be proud of your service SRE + Product The SLO needs to be higher than your SLA, As we saw before, that shouldn’t be that hard But it can take time to define the right SLO because A good SLO is the point where
  • #38: SLOs - The objectives your team must hit to meet that agreement “User Happiness” What you expect from yourself - you should have higher expectations than what others expect from you. - here you can be proud of your service SRE + Product The SLO needs to be higher than your SLA, As we saw before, that shouldn’t be that hard But it can take time to define the right SLO because A good SLO is the point where
  • #39: SLOs - The objectives your team must hit to meet that agreement “User Happiness” What you expect from yourself - you should have higher expectations than what others expect from you. - here you can be proud of your service SRE + Product The SLO needs to be higher than your SLA, As we saw before, that shouldn’t be that hard But it can take time to define the right SLO because A good SLO is the point where
  • #40: SLOs - The objectives your team must hit to meet that agreement “User Happiness” What you expect from yourself - you should have higher expectations than what others expect from you. - here you can be proud of your service SRE + Product The SLO needs to be higher than your SLA, As we saw before, that shouldn’t be that hard But it can take time to define the right SLO because A good SLO is the point where
  • #41: What is a good SLO? A good SLO is the point where your users should be happy. What is a happy user? Well there is no easy answer for that. We do know it should be better even much better than our SLA. SLO is the point where your users are happy with your service Unless you have 1 user and you can ask him, if not what should we aim for? 95% of the users? 80%? 50%? That is a really hard question and the answer is that we don’t know. But we can try. That is why SLO are defined with Product Managers. There job is to understand the users so they should say what is the business impact of downtime. Can we tolerate 1h per month? 30min? 10min? Because we invest development time the higher the SLO is we need to find the tradeoff between business and development time. You need to remember that SLO is only for external services it also for internal services. So maybe the user of your services are sitting next to you You can ask them what happens if the service is down. Maybe they can change the algorithm a bit, add caching or change the cadence that they use your service in order to relax the problem. So you will be able to reduce your SLO. In order to define good SLO you have to understand your users. —- What is a good SLO? A good SLO is the point where your users should be happy. What is a happy user? That is a really hard question :) Unless you have only one user and you can ask him you need to find the point where downtime doesn’t heart the business too much. It depend on the kind of service and the industry. Due to the fact that SLO has business implications it is usually defined with the product managers
  • #42: We have tools that can help us find the right number SLA, SLO, SLI
  • #43: SLI - The real numbers on your performance (metrics) “Key Metrics” Monitors (how + what to measure?) SLI is defined by developers + SRE
  • #44: SLI - The real numbers on your performance (metrics) “Key Metrics” Monitors (how + what to measure?) SLI is defined by developers + SRE
  • #45: SLI - The real numbers on your performance (metrics) “Key Metrics” Monitors (how + what to measure?) SLI is defined by developers + SRE
  • #46: SLI - The real numbers on your performance (metrics) “Key Metrics” Monitors (how + what to measure?) SLI is defined by developers + SRE
  • #47: What is good events? That is the easy part If you have a website and we put a target that we want to render the page in under 100ms. So every request that is under 100ms with status code 200 is a GOOD EVENT But what is a valid event? STATUS CODE 200 UNDER 100 ms
  • #48: It is not easy to pick good SLI Let’s talk about few tips in order to do that
  • #49: As a rule of thumb you should have 2-4 metrics CPU is not interesting Do you care what is the CPU in google servers when you are doing a search? You care about latency & response time so you should find metrics related to them Pick a metric that measure user happiness
  • #50: As a rule of thumb you should have 2-4 metrics CPU is not interesting Do you care what is the CPU in google servers when you are doing a search? You care about latency & response time so you should find metrics related to them Pick a metric that measure user happiness
  • #51: As a rule of thumb you should have 2-4 metrics CPU is not interesting Do you care what is the CPU in google servers when you are doing a search? You care about latency & response time so you should find metrics related to them Pick a metric that measure user happiness
  • #52: Google Search Example
  • #53: We probably care about the response time
  • #54: We expect to see lots of resluts
  • #55: We are expect to find our results in the first 3 results - not in the 5th page
  • #56: We as users don’t care what is the CPU of the services while searching
  • #57: For example if your users are not happy in the red area then the left graph is not helping us *** Write notes from my recordings
  • #58: For example if your users are not happy in the red area then the left graph is not helping us *** Write notes from my recordings
  • #59: Let’s talk about errors. We already understand that our services are not 100% reliable so eventually everyone will have errors It can be partial downtime It can be planned or unplanned But how do we measure it? There is a simple way called error budget What is an error budget? The amount of time that you are allow to not provide service
  • #61: *Verify image Spending error budget First we need to change the term that we use when we have an error orr an outage. We are SPENDING error budget, not accidentally using it. You are in control of your own budget! You are the CFO of your own services This is your budget and you spend it. What should we SPEND our error budget on? So let’s see uber error budget spend pattern
  • #62: The uber error rate graph, in the weekend they don’t have much errors… because no one is deploying to production, One of the drivers to high error rate is the number of your deployments… the more changes* that we make in the system the higher the chance that we will cause errors.
  • #63: The uber error rate graph, in the weekend they don’t have much errors… because no one is deploying to production, One of the drivers to high error rate is the number of your deployments… the more changes* that we make in the system the higher the chance that we will cause errors.
  • #64: The uber error rate graph, in the weekend they don’t have much errors… because no one is deploying to production, One of the drivers to high error rate is the number of your deployments… the more changes* that we make in the system the higher the chance that we will cause errors.
  • #65: Let me tell you a story about MetaCat A company that build the Metaverse for cats Using VR they makes our cats happier, sleep better & the make sure that they are not going to take over the world! This company had 2 teams Each team had 4 downtimes per Month VP R&D told the team leaders to fix it Team A. made more tests Team B. worked on rollbacks What is a better approach? [PAUSE] Let’s See what you think Team A [RAISE HAND] OK Team B [RAISE HAND] Don’t know [RAISE HAND]
  • #66: Let me tell you a story about MetaCat A company that build the Metaverse for cats Using VR they makes our cats happier, sleep better & the make sure that they are not going to take over the world! This company had 2 teams Each team had 4 downtimes per Month VP R&D told the team leaders to fix it Team A. made more tests Team B. worked on rollbacks What is a better approach? [PAUSE] Let’s See what you think Team A [RAISE HAND] OK Team B [RAISE HAND] Don’t know [RAISE HAND]
  • #67: We are missing data to answer this Data is the key to make smart decisions Without data you are another person with an opinion
  • #69: How to improve MTTR Faster rollback Gradual rollout Canary deployments Faster Ci/CD
  • #70: How to improve MTTF Testing! Multi region Scale test
  • #71: Team A: improved tests, they basically tried to improve the MTTF Team B: Improve the CI/CD to deploy code faster & do faster rollbacks
  • #72: Team A: improved tests, they basically tried to improve the MTTF Team B: Improve the CI/CD to deploy code faster & do faster rollbacks
  • #73: Team A: improved tests, they basically tried to improve the MTTF Team B: Improve the CI/CD to deploy code faster & do faster rollbacks
  • #74: Team A: improved tests, they basically tried to improve the MTTF Team B: Improve the CI/CD to deploy code faster & do faster rollbacks
  • #75: If you can’t measure it, you can’t improve it. So in order to improve quality we invest in tests or we can also invest in better rollback. Another option is to do a gradual rollout, so if we deploy to new version to 10% of our users even if we have outage of 30min - we will use only 3min of our error budget Improve SLI response Time Gradual Rollout - 10% of 60min
  • #76: Now let’s talk about tradeoffs, how can we improve SLO by simply “stop writing code” / or more correctly “stop adding new features”, it might sound like a joke :) but let’s talk about a real world example when we actually want to do it. Let’s think that we want to move our servers to a new cloud or do a DB migration, 1 weeks of development? 2 weeks? 4M for 6m? Maybe we can deploy with downtime? And to recover it, not adding new features… work on test, other systems but you saved few weeks and used this time to do something else Maintenance window
  • #77: What to do with the budget? Releasing new features Expected System Changes Inevitable failure in hardware, networks, etc.. Cloud issue Risky Experiments Save $ using spot / preemptible VM Spare Budget? You can use spot / preemptible machines Scale down Faster A/B testing
  • #78: What to do with the budget? Releasing new features Expected System Changes Inevitable failure in hardware, networks, etc.. Cloud issue Risky Experiments Save $ using spot / preemptible VM Spare Budget? You can use spot / preemptible machines Scale down Faster A/B testing
  • #79: What to do with the budget? Releasing new features Expected System Changes Inevitable failure in hardware, networks, etc.. Cloud issue Risky Experiments Save $ using spot / preemptible VM Spare Budget? You can use spot / preemptible machines Scale down Faster A/B testing
  • #80: What to do with the budget? Releasing new features Expected System Changes Inevitable failure in hardware, networks, etc.. Cloud issue Risky Experiments Save $ using spot / preemptible VM Spare Budget? You can use spot / preemptible machines Scale down Faster A/B testing
  • #81: What to do with the budget? Releasing new features Expected System Changes Inevitable failure in hardware, networks, etc.. Cloud issue Risky Experiments Save $ using spot / preemptible VM Spare Budget? You can use spot / preemptible machines Scale down Faster A/B testing
  • #82: What to do with the budget? Releasing new features Expected System Changes Inevitable failure in hardware, networks, etc.. Cloud issue Risky Experiments Save $ using spot / preemptible VM Spare Budget? You can use spot / preemptible machines Scale down Faster A/B testing
  • #83: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #84: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #85: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #86: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #87: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #88: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #89: Freeze feature releases Prioritize post mortem items Automate deployment pipelines Speed up your CI/CD Create internal dev tools Improve monitoring and observability Require SRE consultation Relax the SLO Kill the service!!!!
  • #90: High SLO - the impact on system lifecycle higher Error rate Higher development time Higher maintenance time Less sleeping hours :) Maintenance a system cost ~2-10x development time the higher the SLO the more expensive that the system is
  • #91: High SLO - the impact on system lifecycle higher Error rate Higher development time Higher maintenance time Less sleeping hours :) Maintenance a system cost ~2-10x development time the higher the SLO the more expensive that the system is
  • #92: High SLO - the impact on system lifecycle higher Error rate Higher development time Higher maintenance time Less sleeping hours :) Maintenance a system cost ~2-10x development time the higher the SLO the more expensive that the system is
  • #93: High SLO - the impact on system lifecycle higher Error rate Higher development time Higher maintenance time Less sleeping hours :) Maintenance a system cost ~2-10x development time the higher the SLO the more expensive that the system is
  • #94: High SLO - the impact on system lifecycle higher Error rate Higher development time Higher maintenance time Less sleeping hours :) Maintenance a system cost ~2-10x development time the higher the SLO the more expensive that the system is
  • #95: SLO not only for development but also to define teams Let’s look at google SRE group % toil should be 10-40% if over 40% they offload tasks to the developers or they need more people in the team At some point they stop feature releases
  • #96: summarize Define your SLO Measure your error rate Make sure you are match your SLO That's it… Easy! :)
  • #97: Think about your audience, your users What they really care about, what define happy user?
  • #98: Data Data Data Without data we can’t make smart decisions.
  • #99: Use your error budget! You probably don’t have a lot of it, but every budget can help you Don’t left money on the table
  • #100: To summarize this Think about your users Use Data Use your error budget
  • #101: We are software engineers, We are not building bridges We shouldn’t aim for 100% reliability and we must accept downtimes. Don’t hope that you won’t have downtimes, understand that you will have it. Don’t ignore the problem make sure that you manage it and don’t let it manage you