SlideShare a Scribd company logo
1 of 76
Download to read offline
Humans By The Hundred
Scaling Big Data for Big Team Growth
$ whoami
SRE Manager at Yelp
CWRU Alum
Pittsburgh native
<3 Web Operations
Just a dude
Yelp’s Mission:
Connecting people with great
local businesses.
Yelp Stats:
As of Q2 2015
83M 3268%83M
What is Yelp?
Many sites: www, m, biz, api
Mobile apps
Partner platform
Hundreds of developers
Thousands of servers
Why Am I Here?
This talk is about people
The Goal
Iterate as fast as possible
Regardless of how many people
are participating
Deployment
How It Starts
Deployment: the early days
Get a few people together in slack/irc/etc.
Merge up the code
Run the tests
Manually test it in stage
Cross your fingers
Things get slower...
Tests take longer to run
More hosts = longer downloads
More developers = more eyeballs
More features = more code
The Problem: Humans Are Fallible
The Problem: Humans Are Fallible
“…oh @$#&”
The Problem, With Math
Assume:
Every change has a chance of success: 98%
That means no test failures, no reverts, etc.
Every deploy has a number of changes: n
Any failure in the pipeline invalidates the deploy
Let’s figure out the probability of a
successful deployment: p
The Problem, With Math
Only you
p = .98 (98%)
You and a friend
p = .98 * .98 = .96 (96%)
You and nine co-workers
p = .98 * .98 * .98 * … * .98 = .82 (82%)
The Problem, With Math
p = (.98)n
The Problem, With Math
p = (.98)n
exponential decay!
This doesn’t scale!
More developers = more changes
More changes = longer deploys
Longer deploys = less time to develop
Less time to develop = slower to iterate
Slower to iterate != the goal
Mitigating Exponential Decay
p = (.98)n
Mitigating Exponential Decay
p = (.98)n
Making it harder to screw up
Write more tests
Write better tests
Get better code reviews
Get better infrastructure
Switch programming languages
Use better tools
Just write better software and stop
making mistakes!
PROBLEM SOLVED
The Real World
Testing builds confidence in our changes
Testing does not protect you from failure
Better tools, tests, and infrastructure can
raise our success rates
Mitigating Exponential Decay
p = (.98)n
Mitigating Exponential Decay
p = (.98)n
Service-Oriented Architecture
Large monolith → smaller services
Services communicate over network
Usually HTTP, but you can do RPC, SOAP, etc.
Service = independent code base
Independent deployments
Service-Oriented Architecture
Benefits
Smaller code bases = upper bound to n
Failure domains become isolated
Technology independence
Federated responsibility
Service-Oriented Architecture
Drawbacks
everything becomes decoupled
function calls start looking like HTTP requests
versioning can be a nightmare
tracking dependencies is hard
data consistency becomes challenging
end-to-end testing becomes hard(er), if not
impossible
SOA scales people, not code.
Conquering SOA
With the monolith, it’s easy to focus on
mean time between failures (MTBF)
Conquering SOA
In a SOA, focus on mean time to recovery
(MTTR)
Conquering SOA
Fail fast
Anticipate failure
Leverage iteration speed to recover fast
Conquering SOA
Treat everything as distributed
That means everything will fail
Use timeouts, retries
Find ways to degrade gracefully
Fail fast & isolated
Don’t rely on synchronous processes
Prepare for eventual consistency
Reaping the Benefits
Smaller failure domains
Fewer people & changes to manage
Deploys get smaller
Deploys get faster
Deploys become continuous
Reaping the Benefits
Smaller changes
means smaller code reviews
means faster validation
means smaller blast radius
means faster iteration
Continuous Delivery
Everyone works against master branch
Master is deployed when commits added
Deployment gated by tests
Monitoring knows something is wrong
before you do!
PROBLEM SOLVED
Testing
Tests are hard to get right.
How can we do better?
“Not Recommended” Tests
“Not Recommended” Tests
If a test fails on master:
a feature is broken on the live website, or
your test sucks and you should ditch it
In either case, we disable it
Ticket is created
Developers can fix it later or just bin it and start
fresh
Reliable tests >> test coverage.
Don’t always run all the tests!
Tests of external services should be
monitoring
Define your boundaries.
yelp.com / dataset_challenge
● 61K businesses
● 61K checkin-sets
● 481K business attributes
● 1.6M reviews
● 366K users
● 2.8M edge social-graph
● 495K tips
Your academic project, research or visualizations, submitted by Dec 31,
2015
=
$5,000 prize + $1,000 for publication + $500 for presenting*
Academic dataset from 10 cities in 4 countries!
@YelpEngineering
YelpEngineers
engineeringblog.yelp.com
github.com/yelp
yelp.com/careers
Questions?

More Related Content

What's hot

DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...Gene Kim
 
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.ioSLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.ioDevOpsDays Tel Aviv
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation WorkshopJules Pierre-Louis
 
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012Nick Galbreath
 
AB Testing at Expedia
AB Testing at ExpediaAB Testing at Expedia
AB Testing at ExpediaPaul Lucas
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014Andreas Grabner
 
JavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont DeliveryJavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont DeliveryAndreas Grabner
 
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...Andreas Grabner
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentationNikolas Vourlakis
 
Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Daniel Wellman
 
Making disaster routine
Making disaster routineMaking disaster routine
Making disaster routinePeter Varhol
 
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal ReadinessTis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal ReadinessSOASTA
 
Attacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryAttacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryJames Wickett
 
Datadog + VictorOps Webinar
Datadog + VictorOps WebinarDatadog + VictorOps Webinar
Datadog + VictorOps WebinarDatadog
 
Telling Tales and Solving Crimes with New Relic
Telling Tales and Solving Crimes with New RelicTelling Tales and Solving Crimes with New Relic
Telling Tales and Solving Crimes with New RelicJames Ford
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentSarah Dutkiewicz
 
Geek Sync I SQL Server 2016 Performance Tricks You Need to Know
Geek Sync I SQL Server 2016 Performance Tricks You Need to KnowGeek Sync I SQL Server 2016 Performance Tricks You Need to Know
Geek Sync I SQL Server 2016 Performance Tricks You Need to KnowIDERA Software
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamAndreas Grabner
 

What's hot (20)

DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
DOES16 San Francisco - David Blank-Edelman - Lessons Learned from a Parallel ...
 
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.ioSLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
SLO DRIVEN DEVELOPMENT, ALON NATIV, Tomorrow.io
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
 
Doing monitoring right
Doing monitoring rightDoing monitoring right
Doing monitoring right
 
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
 
AB Testing at Expedia
AB Testing at ExpediaAB Testing at Expedia
AB Testing at Expedia
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014
 
JavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont DeliveryJavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont Delivery
 
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentation
 
Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)
 
Making disaster routine
Making disaster routineMaking disaster routine
Making disaster routine
 
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal ReadinessTis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
 
Attacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryAttacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous Delivery
 
Datadog + VictorOps Webinar
Datadog + VictorOps WebinarDatadog + VictorOps Webinar
Datadog + VictorOps Webinar
 
Telling Tales and Solving Crimes with New Relic
Telling Tales and Solving Crimes with New RelicTelling Tales and Solving Crimes with New Relic
Telling Tales and Solving Crimes with New Relic
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Geek Sync I SQL Server 2016 Performance Tricks You Need to Know
Geek Sync I SQL Server 2016 Performance Tricks You Need to KnowGeek Sync I SQL Server 2016 Performance Tricks You Need to Know
Geek Sync I SQL Server 2016 Performance Tricks You Need to Know
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
 
Goodtests
GoodtestsGoodtests
Goodtests
 

Viewers also liked

"Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E...
"Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E..."Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E...
"Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E...Yelp Engineering
 
Working With Big Data
Working With Big DataWorking With Big Data
Working With Big DataSeth Familian
 
Ensuring Consistency in a Replicated World
Ensuring Consistency in a Replicated WorldEnsuring Consistency in a Replicated World
Ensuring Consistency in a Replicated WorldYelp Engineering
 
Building a World Class Security Team
Building a World Class Security TeamBuilding a World Class Security Team
Building a World Class Security TeamYelp Engineering
 
Millennials 5 insights and 5 watchouts
Millennials   5 insights and 5 watchoutsMillennials   5 insights and 5 watchouts
Millennials 5 insights and 5 watchoutsMatt Carter
 
Goals تحديد الاهداف
Goals تحديد الاهدافGoals تحديد الاهداف
Goals تحديد الاهدافahmed hassan
 
اختيار الصديق3
اختيار الصديق3اختيار الصديق3
اختيار الصديق3Salman Alsuhail
 
WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...
WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...
WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...Digiday
 
الحكم الثمانية
الحكم الثمانيةالحكم الثمانية
الحكم الثمانيةSalman Alsuhail
 
تطوير أهداف التعليم العامة والخاصة
تطوير أهداف التعليم العامة والخاصةتطوير أهداف التعليم العامة والخاصة
تطوير أهداف التعليم العامة والخاصةreemalahmari
 
Marketing Challenges: Data
Marketing Challenges: DataMarketing Challenges: Data
Marketing Challenges: DataSmartFocusWorld
 
"Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen...
"Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen..."Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen...
"Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen...Yelp Engineering
 
Scaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsScaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsYelp Engineering
 
How Yelp does Service Discovery
How Yelp does Service DiscoveryHow Yelp does Service Discovery
How Yelp does Service DiscoveryJohn Billings
 
تدريب
تدريبتدريب
تدريبmyoon
 
Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...
Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...
Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...Rainer Sternfeld
 
Big Data - an actuarial perspective
Big Data - an actuarial perspectiveBig Data - an actuarial perspective
Big Data - an actuarial perspectiveMateusz Maj
 

Viewers also liked (20)

"Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E...
"Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E..."Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E...
"Optimal Learning for Fun and Profit" by Scott Clark (Presented at The Yelp E...
 
Giving Design Critique
Giving Design CritiqueGiving Design Critique
Giving Design Critique
 
Working With Big Data
Working With Big DataWorking With Big Data
Working With Big Data
 
Ensuring Consistency in a Replicated World
Ensuring Consistency in a Replicated WorldEnsuring Consistency in a Replicated World
Ensuring Consistency in a Replicated World
 
Building a World Class Security Team
Building a World Class Security TeamBuilding a World Class Security Team
Building a World Class Security Team
 
Millennials 5 insights and 5 watchouts
Millennials   5 insights and 5 watchoutsMillennials   5 insights and 5 watchouts
Millennials 5 insights and 5 watchouts
 
Goals تحديد الاهداف
Goals تحديد الاهدافGoals تحديد الاهداف
Goals تحديد الاهداف
 
اختيار الصديق3
اختيار الصديق3اختيار الصديق3
اختيار الصديق3
 
WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...
WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...
WTF is First-Party vs. Third-Party Data? (Digiday WTF Programmatic for Publis...
 
الحكم الثمانية
الحكم الثمانيةالحكم الثمانية
الحكم الثمانية
 
تطوير أهداف التعليم العامة والخاصة
تطوير أهداف التعليم العامة والخاصةتطوير أهداف التعليم العامة والخاصة
تطوير أهداف التعليم العامة والخاصة
 
Marketing Challenges: Data
Marketing Challenges: DataMarketing Challenges: Data
Marketing Challenges: Data
 
MySQL At Yelp
MySQL At YelpMySQL At Yelp
MySQL At Yelp
 
"Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen...
"Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen..."Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen...
"Using ElasticSearch to Scale Near Real-Time Search" by John Billings (Presen...
 
Scaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsScaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique Visitors
 
Analytics for startups
Analytics for startupsAnalytics for startups
Analytics for startups
 
How Yelp does Service Discovery
How Yelp does Service DiscoveryHow Yelp does Service Discovery
How Yelp does Service Discovery
 
تدريب
تدريبتدريب
تدريب
 
Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...
Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...
Designing a Better Planet with Big Data and Sensor Networks (for Intelligent ...
 
Big Data - an actuarial perspective
Big Data - an actuarial perspectiveBig Data - an actuarial perspective
Big Data - an actuarial perspective
 

Similar to Humans by the hundred

Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian Henerey
 
One trunk one pipeline one truth
One trunk one pipeline one truthOne trunk one pipeline one truth
One trunk one pipeline one truthPaul Boocock
 
Drive Continuous Delivery With Continuous Testing
Drive Continuous Delivery With Continuous TestingDrive Continuous Delivery With Continuous Testing
Drive Continuous Delivery With Continuous TestingCA Technologies
 
Scrum in Wonderland
Scrum in WonderlandScrum in Wonderland
Scrum in Wonderlandsjmarsh
 
Arquitetura orientada a micro serviços: Nirvana ou pesadelo?
Arquitetura orientada a micro serviços: Nirvana ou pesadelo?Arquitetura orientada a micro serviços: Nirvana ou pesadelo?
Arquitetura orientada a micro serviços: Nirvana ou pesadelo?tdc-globalcode
 
Microservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareMicroservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareChristophe Marchal
 
Lessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec LifeLessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec LifeMatt Tesauro
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auevanbottcher
 
Testing – Why We Do It Badly2
Testing – Why We Do It Badly2Testing – Why We Do It Badly2
Testing – Why We Do It Badly2adevney
 
The Lean Startup fbFund Edition
The Lean Startup fbFund EditionThe Lean Startup fbFund Edition
The Lean Startup fbFund EditionEric Ries
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOpsKMS Technology
 
Software Testing in a Digital Transformation Journey
Software Testing in a Digital Transformation JourneySoftware Testing in a Digital Transformation Journey
Software Testing in a Digital Transformation JourneyAlan Cafruni Gularte
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationPreetam Palwe
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingCameron Presley
 
The Lean Startup EA edition
The Lean Startup EA editionThe Lean Startup EA edition
The Lean Startup EA editionEric Ries
 
S.R.E - create ultra-scalable and highly reliable systems
S.R.E - create ultra-scalable and highly reliable systemsS.R.E - create ultra-scalable and highly reliable systems
S.R.E - create ultra-scalable and highly reliable systemsRicardo Amaro
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentTimothy Fitz
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingJames Briers
 

Similar to Humans by the hundred (20)

Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
One trunk one pipeline one truth
One trunk one pipeline one truthOne trunk one pipeline one truth
One trunk one pipeline one truth
 
Drive Continuous Delivery With Continuous Testing
Drive Continuous Delivery With Continuous TestingDrive Continuous Delivery With Continuous Testing
Drive Continuous Delivery With Continuous Testing
 
Scrum in Wonderland
Scrum in WonderlandScrum in Wonderland
Scrum in Wonderland
 
Arquitetura orientada a micro serviços: Nirvana ou pesadelo?
Arquitetura orientada a micro serviços: Nirvana ou pesadelo?Arquitetura orientada a micro serviços: Nirvana ou pesadelo?
Arquitetura orientada a micro serviços: Nirvana ou pesadelo?
 
Microservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareMicroservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or Nightmare
 
Lessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec LifeLessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec Life
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.au
 
Testing – Why We Do It Badly2
Testing – Why We Do It Badly2Testing – Why We Do It Badly2
Testing – Why We Do It Badly2
 
Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1
 
The Lean Startup fbFund Edition
The Lean Startup fbFund EditionThe Lean Startup fbFund Edition
The Lean Startup fbFund Edition
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
 
Software Testing in a Digital Transformation Journey
Software Testing in a Digital Transformation JourneySoftware Testing in a Digital Transformation Journey
Software Testing in a Digital Transformation Journey
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
 
The Lean Startup EA edition
The Lean Startup EA editionThe Lean Startup EA edition
The Lean Startup EA edition
 
S.R.E - create ultra-scalable and highly reliable systems
S.R.E - create ultra-scalable and highly reliable systemsS.R.E - create ultra-scalable and highly reliable systems
S.R.E - create ultra-scalable and highly reliable systems
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated Testing
 

More from Yelp Engineering

Teeing Up Python - Code Golf
Teeing Up Python - Code GolfTeeing Up Python - Code Golf
Teeing Up Python - Code GolfYelp Engineering
 
A Beginners Guide To Launching Yelp In Hong Kong
A Beginners Guide To Launching Yelp In Hong KongA Beginners Guide To Launching Yelp In Hong Kong
A Beginners Guide To Launching Yelp In Hong KongYelp Engineering
 
Optimal Learning for Fun and Profit with MOE
Optimal Learning for Fun and Profit with MOEOptimal Learning for Fun and Profit with MOE
Optimal Learning for Fun and Profit with MOEYelp Engineering
 

More from Yelp Engineering (6)

Human Ops
Human OpsHuman Ops
Human Ops
 
Teeing Up Python - Code Golf
Teeing Up Python - Code GolfTeeing Up Python - Code Golf
Teeing Up Python - Code Golf
 
Fluxx Streaming
Fluxx StreamingFluxx Streaming
Fluxx Streaming
 
A Beginners Guide To Launching Yelp In Hong Kong
A Beginners Guide To Launching Yelp In Hong KongA Beginners Guide To Launching Yelp In Hong Kong
A Beginners Guide To Launching Yelp In Hong Kong
 
Own Your Career
Own Your CareerOwn Your Career
Own Your Career
 
Optimal Learning for Fun and Profit with MOE
Optimal Learning for Fun and Profit with MOEOptimal Learning for Fun and Profit with MOE
Optimal Learning for Fun and Profit with MOE
 

Recently uploaded

Statistics For Management by Richard I. Levin 8ed.pdf
Statistics For Management by Richard I. Levin 8ed.pdfStatistics For Management by Richard I. Levin 8ed.pdf
Statistics For Management by Richard I. Levin 8ed.pdfnikeshsingh56
 
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBoston Institute of Analytics
 
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis modelDecoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis modelBoston Institute of Analytics
 
DATA ANALYSIS using various data sets like shoping data set etc
DATA ANALYSIS using various data sets like shoping data set etcDATA ANALYSIS using various data sets like shoping data set etc
DATA ANALYSIS using various data sets like shoping data set etclalithasri22
 
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...Jack Cole
 
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Boston Institute of Analytics
 
IBEF report on the Insurance market in India
IBEF report on the Insurance market in IndiaIBEF report on the Insurance market in India
IBEF report on the Insurance market in IndiaManalVerma4
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...Dr Arash Najmaei ( Phd., MBA, BSc)
 
Role of Consumer Insights in business transformation
Role of Consumer Insights in business transformationRole of Consumer Insights in business transformation
Role of Consumer Insights in business transformationAnnie Melnic
 
Presentation of project of business person who are success
Presentation of project of business person who are successPresentation of project of business person who are success
Presentation of project of business person who are successPratikSingh115843
 
Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...
Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...
Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...ThinkInnovation
 
Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...
Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...
Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...ThinkInnovation
 
Digital Indonesia Report 2024 by We Are Social .pdf
Digital Indonesia Report 2024 by We Are Social .pdfDigital Indonesia Report 2024 by We Are Social .pdf
Digital Indonesia Report 2024 by We Are Social .pdfNicoChristianSunaryo
 

Recently uploaded (16)

2023 Survey Shows Dip in High School E-Cigarette Use
2023 Survey Shows Dip in High School E-Cigarette Use2023 Survey Shows Dip in High School E-Cigarette Use
2023 Survey Shows Dip in High School E-Cigarette Use
 
Statistics For Management by Richard I. Levin 8ed.pdf
Statistics For Management by Richard I. Levin 8ed.pdfStatistics For Management by Richard I. Levin 8ed.pdf
Statistics For Management by Richard I. Levin 8ed.pdf
 
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
 
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis modelDecoding Movie Sentiments: Analyzing Reviews with Data Analysis model
Decoding Movie Sentiments: Analyzing Reviews with Data Analysis model
 
DATA ANALYSIS using various data sets like shoping data set etc
DATA ANALYSIS using various data sets like shoping data set etcDATA ANALYSIS using various data sets like shoping data set etc
DATA ANALYSIS using various data sets like shoping data set etc
 
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
why-transparency-and-traceability-are-essential-for-sustainable-supply-chains...
 
Data Analysis Project: Stroke Prediction
Data Analysis Project: Stroke PredictionData Analysis Project: Stroke Prediction
Data Analysis Project: Stroke Prediction
 
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
 
IBEF report on the Insurance market in India
IBEF report on the Insurance market in IndiaIBEF report on the Insurance market in India
IBEF report on the Insurance market in India
 
Insurance Churn Prediction Data Analysis Project
Insurance Churn Prediction Data Analysis ProjectInsurance Churn Prediction Data Analysis Project
Insurance Churn Prediction Data Analysis Project
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
 
Role of Consumer Insights in business transformation
Role of Consumer Insights in business transformationRole of Consumer Insights in business transformation
Role of Consumer Insights in business transformation
 
Presentation of project of business person who are success
Presentation of project of business person who are successPresentation of project of business person who are success
Presentation of project of business person who are success
 
Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...
Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...
Decision Making Under Uncertainty - Is It Better Off Joining a Partnership or...
 
Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...
Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...
Predictive Analysis - Using Insight-informed Data to Plan Inventory in Next 6...
 
Digital Indonesia Report 2024 by We Are Social .pdf
Digital Indonesia Report 2024 by We Are Social .pdfDigital Indonesia Report 2024 by We Are Social .pdf
Digital Indonesia Report 2024 by We Are Social .pdf
 

Humans by the hundred

Editor's Notes

  1. this is what the speaker notes will look like
  2. 4 years at Yelp, 80 people -> hundreds Just going to talk about what I’ve learned along that way
  3. For this talk to make sense, we have to also talk about what Yelp is. Connect people w/ great local businesses
  4. Approx. 83 million UMVs via mobile More than 83 million reviews contributed since inception Approx. 68% of all searches on Yelp came from mobile (mobile web & app) Yelp is present across 32 countries
  5. To drive numbers like that, big platform Lots of sites and apps with lots of features, lots of people working on them, and lots of computers that powers it all
  6. Well, I can write a convincing talk proposal. ...well, and we’re sponsoring
  7. You’ve been conned! And now you can’t leave!
  8. You thought I was going to come up here and talk about big data (we’re at CHUG, right?)
  9. ...but instead I am here to talk to you about people
  10. and that’s because skynet hasn’t taken over yet, so at the end of the day it’s still humans that write software
  11. Figuring out how to make good software is hard, especially when solving big data problems
  12. and the infrastructure that allows that software to exist is challenging to create and maintain effectively
  13. both the software and the infrastructure are critical, but the infrastructure tends to be much harder to change than the software It’s like the foundation of your house… or the wheels on your car
  14. and that infrastructure is as important for scaling the humans parts of your company as the technology!
  15. so these things are all intertwined. if you solve the people problems, the technology will follow (and vice versa)
  16. Just going to talk about some challenging problems we’ve faced. We have cool technology, but the way we succeed is in how we scale our people!
  17. Ok but actually WTF are we talking about
  18. one of the very first things that gets in the way with this, particularly for something like a website, is...
  19. This is the one the biggest challenges that makes accomplishing our goal difficult
  20. This is how most projects, companies, etc. start: single code repo, maybe a server or two, and one or a couple of developers
  21. And then ship it! Dump the code into production, probably restart everything. Click around, make sure stuff looks good. Maybe you’ve even got error monitoring! This works for a while, and it’s all you need when you get started.
  22. But then time passes, and the monolith grows. You add features. You add developers to make those features.
  23. As you add code and scale out your org + infrastructure, things naturally take longer. What was once a 10 minute deploy process might take closer to 30 minutes… or 45 minutes… or maybe even an hour! ...but that’s not a big deal, right?
  24. And here we run into a problem.
  25. HUMANS SCREW UP
  26. As you grow, you’re doing more stuff. More people writing more code to power more features covered by more tests that guard deployments with more people in them. More stuff means more chances to screw up, which we do, because we are humans. And when you screw up, it means back to square one… new build, new test run, new deployment. ...and everyone has lost as much time as it takes to get this far. And they’ll have to invest it all again to get their code out!
  27. This starts looking pretty grim even around 10 branches, and that’s assuming a (generous) 98% success rate! At 20 branches we’re below 70%!
  28. So… how can we do better?
  29. Well, we can try to improve this number...
  30. Make it harder to screw up! Decrease the chances of failure. This is where almost all teams start focusing their efforts first.
  31. Here are some common ways people to try to make screwing up more difficult.
  32. It’s easy!
  33. This doesn’t work in the real world. At the end of the day, we’re still human We’re people! We make mistakes! We just spent a long time talking about how we’re fallible. Why would this be any less true of the systems we create to prevent us from making mistakes?
  34. In reality, doing all those things does help
  35. But at the end of the day, you need more to scale an org. We want the asymptotic solutions, not the constant factor.
  36. ...and of course, as computing professionals, you’ve all probably been writhing in your seats, trying to tell me to do this first
  37. We tackle this asymptotic factor with SOA. Split up large code bases into smaller ones that can be developed independently and communicate over common interfaces. How you size this is up to you. Don’t fall prey to the hype of “microservices” if it doesn’t make sense for you.
  38. It is a lot harder to do SOA than a monolith, and it can decrease your rate of success dramatically! It takes a lot of effort and discipline to get it right. However, it’s very difficult to obtain the advantages it provides any other way.
  39. Embrace the idea that failures will happen, and be ready for them! In a world like this, you need to safeguard your deployment process. It’s a problem if it gets slow, because it’s your out when you screw up.
  40. Ok, but wait a second. You just said deployment is gated using tests, right? But I thought those were hard to get right!
  41. ...and there is a real cost to getting them wrong!
  42. It can be easy, especially in dynamic languages, to accrue dependencies on other things over time. “Katamari” dependencies
  43. It can be tempting to write tests that cover way, way too much
  44. Tests that don’t have enough coverage
  45. slow tests
  46. tests that rely on lots of external infrastructure
  47. tests that test the outside world: external apis, vendors, etc.
  48. Like we talked about before: stop treating the tests as a safety net. Not all tests are sacred, and indeed a lot of them are probably hurting you if you’ve been around long enough. Some tests are better than others.
  49. A test that fails on master when nothing is actually broken is actually depriving you of information. You have no idea if what that test tests is OK, because a failure doesn’t mean anything and therefore a pass doesn’t mean anything either!
  50. Reliable tests are wayyy better than achieving high test coverage. CD only works when green actually means green and red actually means red.
  51. We have a hard time with this one because Python is a dynamic language, but if you can do this, you should!
  52. Monitoring will let you know even sooner when your integration code with a partner breaks, especially when it’s their side. Running this at integration time isn’t telling you anything and it’s slowing you down.