In this intro talk, I describe Yelp's "SOA Configs", a git repo containing the metadata to describe all of Yelp's internal services, and explain why it works so well for us.
care how small your services are. • SOA == Service Oriented Architecture ◦ Opposite of a monolithic app architecture. Usually accompanied with teams (reverse Conway’s law?)
in the monolith ◦ it “pays the bills” ◦ Treated mostly like any other service • Still though, lots of teams, lots of services ◦ Years of pushing for “the SOA dream”? • In AWS and Datacenter in 3 “super” regions (yes, hybrid) • We think we have some good “behind the scenes ideas”
files to be the source of truth about what our SOA infrastructure looks like instead of being in databases, zookeeper, or just from “whoever ran the deploy command last” • Be declarative instead of imperative • “Just a git repo”
Commits Rsync Pulls Machine generated files added Read-Only Slaves Most Servers At Yelp Most Servers At Yelp Most Servers At Yelp Read-Only Slaves Read-Only Slaves Most Servers At Yelp
• Gitolite for ACLs - Sure • Pre-receive hooks for validation - Cool • Cron Jobs to Deploy the Git repo - What else? • Rsync Fanout to distribute the files - Heh, fine • Yelp Puppet-Cron makes this easy and high- frequency: https://github.com/Yelp/puppet-cron
data (ownership) • general service metadata (what is it?) • monitoring data (who should get alerts?) • deployments data (where should it run?) • routing data (where should it be advertised?)
enough privileges to edit them • They are configs about the services, not for the services (they don’t exist in the code repo) • Super fast deployment. No code, only config. • Describe the concepts, not the implementation • Build the metadata and the tools will follow!
To persuade viewers buy Yelp’s SOA configs enterprise product offering C. To Inspire viewers to build their own SOA configs - based on some of these ideas presented D. To bore viewers about how Yelp rsyncs YAML files around with cron jobs. Reading Comprehension Question: (what is the purpose of this talk?)
To persuade viewers buy Yelp’s SOA configs enterprise product offering C. To Inspire viewers to build their own SOA configs - based on some of these ideas presented D. To bore viewers about how Yelp rsyncs YAML files around with cron jobs. Reading Comprehension Question: (what is the purpose of this talk?)