Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

151

Share

Inside Yelp's SOA Infrastructure

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1oIylnz.

Kyle Anderson discusses Yelp's internal platform as a service (PaaSTA), which takes a holistic view for taking services from an idea and git repo, to monitored in production. Kyle includes lots of details on how to tie Mesos, Docker, SmartStack, Haproxy, Git, and Sensu all together into a coherent system that developers can use to ship their code in a self-serve way. Filmed at qconsf.com.

Kyle Anderson is an SRE on the Operations team at Yelp and has been tinkering with servers for about 10 years.

Related Books

Free with a 30 day trial from Scribd

See all

Inside Yelp's SOA Infrastructure

  1. 1. Inside Yelp's SOA Infrastructure Or: How to evaluate the ecosystem when considering PaaS’s.
  2. 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. 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. 4. - Kyle Anderson - Operations Team at Yelp - Trying not to build PaaS’s since forever Who Am I:
  5. 5. Yelp’s Mission: Connecting people with great local businesses.
  6. 6. Yelp Stats: As of Q3 2015 89M 3271%79M
  7. 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. 8. Let’s Start From Scratch @imadveloper @sadserver @sadoperator @ExpertBeginner1 @hipsterhacker Devs Ops
  9. 9. Let’s Ship Some Code @imad veloper @sadserver @sadoperator @Expert Beginner 1 @hipster hacker Devs Ops
  10. 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. 11. Ok Fine. What Does This Have to Do With SOA? (microservices?)
  12. 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. 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. 14. OPTIONS: ● There is no shortage of tools out there ● How do you figure out what you want to use, if anything?
  15. 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. 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. 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. 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. 19. 3. Write As Little Code As Possible
  20. 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.
  21. 21. Warning: Opinions Ahead
  22. 22. Choosing Principles
  23. 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. 24. Building Your (Yelp’s) Dream PaaS: SOA-Configs
  25. 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)
  26. 26. Creating A Service
  27. 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. 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. 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. 30. What is Mesos? ● If your datacenters were an operating system, Mesos would be the kernel. ● Knows about resources, schedulers, agents, and pools
  31. 31. What is Mesos?
  32. 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. 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. 34. Why Did Yelp Pick Marathon?
  35. 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. 36. It’s Not Done Till It’s Shipped Monitored
  37. 37. Service Status
  38. 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
  39. 39. Deploying A Service
  40. 40. Service Status
  41. 41. Bad Service Status
  42. 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. 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. 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. 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. 46. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/yelp- infrastructure
  • EricVazquez27

    Jun. 6, 2021
  • AkodadiKhalid

    Mar. 24, 2021
  • Justincredibles

    Feb. 17, 2021
  • DivahMongwe

    Feb. 5, 2021
  • IbrahimAlMalki3

    Dec. 21, 2020
  • ElmoManuelZeledon1

    Nov. 21, 2020
  • AdrianGheorghe9

    Oct. 29, 2020
  • AbdouSalam2

    Apr. 23, 2020
  • SreekanthRoySeeku

    Apr. 13, 2020
  • ahmadsafirun

    Apr. 8, 2020
  • jjJaquan

    Feb. 18, 2020
  • SimeonAbraham

    Feb. 9, 2020
  • JoshuaMedler

    Feb. 3, 2020
  • TishaSkipworth

    Dec. 8, 2019
  • dithnarkyose

    Oct. 31, 2019
  • SainaphaKamphira

    Oct. 24, 2019
  • shoma2

    Oct. 9, 2019
  • YangsupKim1

    Sep. 1, 2019
  • FranciscoFloresFernn

    Aug. 19, 2019
  • JeremyZakini

    Jul. 18, 2019

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1oIylnz. Kyle Anderson discusses Yelp's internal platform as a service (PaaSTA), which takes a holistic view for taking services from an idea and git repo, to monitored in production. Kyle includes lots of details on how to tie Mesos, Docker, SmartStack, Haproxy, Git, and Sensu all together into a coherent system that developers can use to ship their code in a self-serve way. Filmed at qconsf.com. Kyle Anderson is an SRE on the Operations team at Yelp and has been tinkering with servers for about 10 years.

Views

Total views

17,465

On Slideshare

0

From embeds

0

Number of embeds

98

Actions

Downloads

0

Shares

0

Comments

0

Likes

151

×