SlideShare uma empresa Scribd logo
1 de 46
Inside Yelp's SOA
Infrastructure
Or: How to evaluate the ecosystem when
considering PaaS’s.
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/yelp-infrastructure
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
- Kyle Anderson
- Operations Team at Yelp
- Trying not to build PaaS’s since forever
Who Am I:
Yelp’s Mission:
Connecting people with great
local businesses.
Yelp Stats:
As of Q3 2015
89M 3271%79M
What Is the Purpose of this Talk?
A. Inform you of Yelp’s SOA infrastructure
B. Persuade you to use Yelp’s Code
C. Inspire you to take ideas from Yelp’s SOA
journey
D. Promote Mesos/Docker/Kubernetes/etc
Let’s Start From Scratch
@imadveloper @sadserver
@sadoperator
@ExpertBeginner1
@hipsterhacker
Devs Ops
Let’s Ship Some Code
@imad
veloper
@sadserver
@sadoperator
@Expert
Beginner
1
@hipster
hacker
Devs Ops
What is the problem then, exactly?
● Empowering developers to ship code faster is a
competitive advantage
○ Somehow this didn’t used to be the case?
● This whole “devops” thing seems to hint that Ops
should help Devs get their code out
○ This implies some sort of tooling
● Automation is the key of course
○ Which leads to needing some sort “PaaS”
Ok Fine. What Does This Have to Do With SOA?
(microservices?)
What are we doing then?
As an Operations guy, my primary responsibility
is empowering developers to get their code
running healthily in production.
Use whatever words you want to describe that.
(devops, PaaS, bespoke, etc)
- Kyle Anderson
Face it: Everyone Builds A Bespoke PaaS to
Some Degree
● How Bespoke does it have to be?
● How much open-source technology can you
reuse?
● Should you buy instead of build?
OPTIONS:
● There is no shortage of tools out there
● How do you figure out what you want to use, if
anything?
More Help:
Talk: Beyond ad-hoc automation: to
structured platforms
Speaker: Bridget Kromhout
Track: Containers in Practice
Location: Ballroom A
Duration: 2:55pm - 3:45pm
Then what did Yelp do?
1. Survey what you have
2. Map out what what you want
3. Write as little code as possible!!
1. Survey What You Have
This was not Yelp’s first SOA rodeo. We already were
using these components:
Airbnb’s SmartStack
Nerve / Synapse
(service discovery) (testing in dev only)
(monitoring)
(CI/CD Pipelines)
2. Map Out What You Want
● Declarative config files that define how each
service is deployed (soa-configs)
● Automatic resource scheduling and contained
services (cgroups/docker)
● Consistent environments (containers)
● Visibility into their deploys and control their
workflow (pipelines)
3. Write As Little Code As Possible
Stage: Acceptance
We are going to deploy some sort of PaaS
Even if you are going to use the most
full-featured turn-key PaaS, you are
still going to end up adding SOME
modifications on top.
Warning:
Opinions Ahead
Choosing Principles
Building Your (Yelp’s) Dream PaaS:
SOA-Configs
When you accept you are going to
build your own PaaS, you get to pick
how you want it to work.
We wanted a git repo of service
definitions. We called it “soa-configs”
Building Your (Yelp’s) Dream PaaS:
SOA-Configs
SOA-Configs: A great foundation for a SOA
● Declarative control for how your
services are defined
● Git for rollbacks, audits, access control,
code review
● Yaml files are pretty easy to use
● Easy distribution (not a database)
Creating A Service
How Do You Do Service Discovery
in a Dynamic World?
● Yelp uses Airbnb’s SmartStack for
service discovery
● Works on Mesos, Puppet, Custom SOA,
etc.
● Not tied to a particular PaaS
How Do You Do Service Discovery
in a Dynamic World?
haproxy
docker container 1
lo 127.0.0.1
docker container 2
lo 127.0.0.1
eth0 169.254.14.17
eth0 169.254.14.18
docker0 169.254.1.1
eth0 10.0.1.2
lo:0 169.254.255.254
lo 127.0.0.1
What Next? You need a scheduler
● Humans just don’t cut it for scheduling
things on boxes
● Yelp wanted a production scheduler that
was active and could contain things
(docker support)
● The answer for us was Apache Mesos
What is Mesos?
● If your datacenters were an operating
system, Mesos would be the kernel.
● Knows about resources, schedulers,
agents, and pools
What is Mesos?
Why did Yelp Pick Mesos?
● We are in it for the long haul.
● Mesos has seen large-scale production
use at Twitter since 2010.
● Infrastructure agnostic
(not AWS-specific)
● Mesos has an upgrade path!
http://mesos.apache.org/documentation/latest/upgrades/
Why Did Yelp Pick Marathon?
● Marathon is a framework (think plugin) for Mesos
that supervises apps to make sure they are
healthy (like upstart or supervisord)
● Yelp picked Marathon because it was un-
opinionated and did one thing well.
Why Did Yelp Pick Marathon?
It’s Not Done Till It’s Shipped Monitored
● We use Sensu to monitor our services
and alert authors when they are not
healthy
● Services are monitored by default
(authors have to opt out)
It’s Not Done Till It’s Shipped Monitored
Service Status
The Result: PaaSTA
● PaaSTA is the name of “glue” of all these pieces
into a coherent set of tooling for developers.
● Enforces these opinions about how things
should be deployed
● Provides tools for inspecting and
deploying services
Deploying A Service
Service Status
Bad Service Status
Conclusion
● You can build the PaaS you have always
dreamed of, but you have to know what you
want first.
● Don’t deploy a tool just because everyone else is
doing it, know what problem you are trying to
solve and be deliberate.
● The parts are out there, don’t be distracted by
hype.
What Is the Purpose of this Talk?
A. Inform you of Yelp’s SOA infrastructure
B. Persuade you to use Yelp’s Code
C. Inspire you to take ideas from Yelp’s SOA
journey
D. Promote Mesos/Docker/Kubernetes/etc
What Is the Purpose of this Talk?
A. Inform you of Yelp’s SOA infrastructure
B. Persuade you to use Yelp’s Code
C. Inspire you to take ideas from Yelp’s SOA
journey
D. Promote Mesos/Docker/Kubernetes/etc
Share in Yelp’s Principles?
● PaaSTA
https://github.com/yelp/paasta
(Check out the Videos and PaaSTA Principles!)
○ Sensu:
https://sensuapp.org/
○ Mesos:
http://mesos.apache.org/
○ Marathon:
https://mesosphere.github.io/marathon/
○ Smartstack: http://nerds.airbnb.com/smartstack-service-
discovery-cloud/
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/yelp-
infrastructure

Mais conteúdo relacionado

Destaque

Node.js and The Internet of Things
Node.js and The Internet of ThingsNode.js and The Internet of Things
Node.js and The Internet of ThingsLosant
 
Introduction to Development for the Internet
Introduction to Development for the InternetIntroduction to Development for the Internet
Introduction to Development for the InternetMike Crabb
 
Introduction to Information Architecture
Introduction to Information ArchitectureIntroduction to Information Architecture
Introduction to Information ArchitectureMike Crabb
 
Montreal Girl Geeks: Building the Modern Web
Montreal Girl Geeks: Building the Modern WebMontreal Girl Geeks: Building the Modern Web
Montreal Girl Geeks: Building the Modern WebRachel Andrew
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and PracticesAnand Bagmar
 
iOS Scroll Performance
iOS Scroll PerformanceiOS Scroll Performance
iOS Scroll PerformanceKyle Sherman
 
Data made out of functions
Data made out of functionsData made out of functions
Data made out of functionskenbot
 
Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.Emiland
 
What I Carry: 10 Tools for Success
What I Carry: 10 Tools for SuccessWhat I Carry: 10 Tools for Success
What I Carry: 10 Tools for SuccessJonathon Colman
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Top Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventTop Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventChromeInfo Technologies
 
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom Brian Housand
 
Mobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigitalMobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigitalAleyda Solís
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeawaysHavas
 
Beyond the Gig Economy
Beyond the Gig EconomyBeyond the Gig Economy
Beyond the Gig EconomyJon Lieber
 
Creative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsCreative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsTommaso Di Bartolo
 
IT in Healthcare
IT in HealthcareIT in Healthcare
IT in HealthcareNetApp
 

Destaque (17)

Node.js and The Internet of Things
Node.js and The Internet of ThingsNode.js and The Internet of Things
Node.js and The Internet of Things
 
Introduction to Development for the Internet
Introduction to Development for the InternetIntroduction to Development for the Internet
Introduction to Development for the Internet
 
Introduction to Information Architecture
Introduction to Information ArchitectureIntroduction to Information Architecture
Introduction to Information Architecture
 
Montreal Girl Geeks: Building the Modern Web
Montreal Girl Geeks: Building the Modern WebMontreal Girl Geeks: Building the Modern Web
Montreal Girl Geeks: Building the Modern Web
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
 
iOS Scroll Performance
iOS Scroll PerformanceiOS Scroll Performance
iOS Scroll Performance
 
Data made out of functions
Data made out of functionsData made out of functions
Data made out of functions
 
Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.
 
What I Carry: 10 Tools for Success
What I Carry: 10 Tools for SuccessWhat I Carry: 10 Tools for Success
What I Carry: 10 Tools for Success
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Top Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventTop Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big Event
 
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom
 
Mobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigitalMobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigital
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeaways
 
Beyond the Gig Economy
Beyond the Gig EconomyBeyond the Gig Economy
Beyond the Gig Economy
 
Creative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsCreative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage Startups
 
IT in Healthcare
IT in HealthcareIT in Healthcare
IT in Healthcare
 

Mais de C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoC4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 

Mais de C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Último

The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 

Último (20)

The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 

Inside Yelp's SOA Infrastructure

  • 1. Inside Yelp's SOA Infrastructure Or: How to evaluate the ecosystem when considering PaaS’s.
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /yelp-infrastructure
  • 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  • 4. - Kyle Anderson - Operations Team at Yelp - Trying not to build PaaS’s since forever Who Am I:
  • 5. Yelp’s Mission: Connecting people with great local businesses.
  • 6. Yelp Stats: As of Q3 2015 89M 3271%79M
  • 7. What Is the Purpose of this Talk? A. Inform you of Yelp’s SOA infrastructure B. Persuade you to use Yelp’s Code C. Inspire you to take ideas from Yelp’s SOA journey D. Promote Mesos/Docker/Kubernetes/etc
  • 8. Let’s Start From Scratch @imadveloper @sadserver @sadoperator @ExpertBeginner1 @hipsterhacker Devs Ops
  • 9. Let’s Ship Some Code @imad veloper @sadserver @sadoperator @Expert Beginner 1 @hipster hacker Devs Ops
  • 10. What is the problem then, exactly? ● Empowering developers to ship code faster is a competitive advantage ○ Somehow this didn’t used to be the case? ● This whole “devops” thing seems to hint that Ops should help Devs get their code out ○ This implies some sort of tooling ● Automation is the key of course ○ Which leads to needing some sort “PaaS”
  • 11. Ok Fine. What Does This Have to Do With SOA? (microservices?)
  • 12. What are we doing then? As an Operations guy, my primary responsibility is empowering developers to get their code running healthily in production. Use whatever words you want to describe that. (devops, PaaS, bespoke, etc) - Kyle Anderson
  • 13. Face it: Everyone Builds A Bespoke PaaS to Some Degree ● How Bespoke does it have to be? ● How much open-source technology can you reuse? ● Should you buy instead of build?
  • 14. OPTIONS: ● There is no shortage of tools out there ● How do you figure out what you want to use, if anything?
  • 15. More Help: Talk: Beyond ad-hoc automation: to structured platforms Speaker: Bridget Kromhout Track: Containers in Practice Location: Ballroom A Duration: 2:55pm - 3:45pm
  • 16. Then what did Yelp do? 1. Survey what you have 2. Map out what what you want 3. Write as little code as possible!!
  • 17. 1. Survey What You Have This was not Yelp’s first SOA rodeo. We already were using these components: Airbnb’s SmartStack Nerve / Synapse (service discovery) (testing in dev only) (monitoring) (CI/CD Pipelines)
  • 18. 2. Map Out What You Want ● Declarative config files that define how each service is deployed (soa-configs) ● Automatic resource scheduling and contained services (cgroups/docker) ● Consistent environments (containers) ● Visibility into their deploys and control their workflow (pipelines)
  • 19. 3. Write As Little Code As Possible
  • 20. Stage: Acceptance We are going to deploy some sort of PaaS Even if you are going to use the most full-featured turn-key PaaS, you are still going to end up adding SOME modifications on top.
  • 23. Building Your (Yelp’s) Dream PaaS: SOA-Configs When you accept you are going to build your own PaaS, you get to pick how you want it to work. We wanted a git repo of service definitions. We called it “soa-configs”
  • 24. Building Your (Yelp’s) Dream PaaS: SOA-Configs
  • 25. SOA-Configs: A great foundation for a SOA ● Declarative control for how your services are defined ● Git for rollbacks, audits, access control, code review ● Yaml files are pretty easy to use ● Easy distribution (not a database)
  • 27. How Do You Do Service Discovery in a Dynamic World? ● Yelp uses Airbnb’s SmartStack for service discovery ● Works on Mesos, Puppet, Custom SOA, etc. ● Not tied to a particular PaaS
  • 28. How Do You Do Service Discovery in a Dynamic World? haproxy docker container 1 lo 127.0.0.1 docker container 2 lo 127.0.0.1 eth0 169.254.14.17 eth0 169.254.14.18 docker0 169.254.1.1 eth0 10.0.1.2 lo:0 169.254.255.254 lo 127.0.0.1
  • 29. What Next? You need a scheduler ● Humans just don’t cut it for scheduling things on boxes ● Yelp wanted a production scheduler that was active and could contain things (docker support) ● The answer for us was Apache Mesos
  • 30. What is Mesos? ● If your datacenters were an operating system, Mesos would be the kernel. ● Knows about resources, schedulers, agents, and pools
  • 32. Why did Yelp Pick Mesos? ● We are in it for the long haul. ● Mesos has seen large-scale production use at Twitter since 2010. ● Infrastructure agnostic (not AWS-specific) ● Mesos has an upgrade path! http://mesos.apache.org/documentation/latest/upgrades/
  • 33. Why Did Yelp Pick Marathon? ● Marathon is a framework (think plugin) for Mesos that supervises apps to make sure they are healthy (like upstart or supervisord) ● Yelp picked Marathon because it was un- opinionated and did one thing well.
  • 34. Why Did Yelp Pick Marathon?
  • 35. It’s Not Done Till It’s Shipped Monitored ● We use Sensu to monitor our services and alert authors when they are not healthy ● Services are monitored by default (authors have to opt out)
  • 36. It’s Not Done Till It’s Shipped Monitored
  • 38. The Result: PaaSTA ● PaaSTA is the name of “glue” of all these pieces into a coherent set of tooling for developers. ● Enforces these opinions about how things should be deployed ● Provides tools for inspecting and deploying services
  • 42. Conclusion ● You can build the PaaS you have always dreamed of, but you have to know what you want first. ● Don’t deploy a tool just because everyone else is doing it, know what problem you are trying to solve and be deliberate. ● The parts are out there, don’t be distracted by hype.
  • 43. What Is the Purpose of this Talk? A. Inform you of Yelp’s SOA infrastructure B. Persuade you to use Yelp’s Code C. Inspire you to take ideas from Yelp’s SOA journey D. Promote Mesos/Docker/Kubernetes/etc
  • 44. What Is the Purpose of this Talk? A. Inform you of Yelp’s SOA infrastructure B. Persuade you to use Yelp’s Code C. Inspire you to take ideas from Yelp’s SOA journey D. Promote Mesos/Docker/Kubernetes/etc
  • 45. Share in Yelp’s Principles? ● PaaSTA https://github.com/yelp/paasta (Check out the Videos and PaaSTA Principles!) ○ Sensu: https://sensuapp.org/ ○ Mesos: http://mesos.apache.org/ ○ Marathon: https://mesosphere.github.io/marathon/ ○ Smartstack: http://nerds.airbnb.com/smartstack-service- discovery-cloud/
  • 46. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/yelp- infrastructure