|
|
|
|
|
by dopidopHN
1283 days ago
|
|
Hey I see “service config” referenced a lot in that thread, but your answers has the more occurrences. I’m not sure I follow what it is. A technical construct, like a code template or a API that services implements ? Or a process constructs, like a SOP to follow with checkboxes? Thanks |
|
A lot of software development is about generating abstractions.
"Service" is a possible abstraction someone might want to generate and develop.
I think a service abstraction can be defined by:
So it would make sense to create a yaml config file committed to a repo containing something like: Once you have a definition, it can be extended to meet growing needs. You might choose to do something like: And then you could generate a webpage with a dropdown where "CoolAppServerName.prod" is an option and the dashboard including graphs for the time series metrics "CoolAppServerName.prod.5xx" and "CoolAppServerName.prod.latency_percentiles" automatically show up. Maybe instead of having service names in the dropdown you have owner names in the dropdown.You could potentially write some code that attempts to validate no significant changes in those metrics and use it to automatically verify that newly pushed code didn't take down the website.
Service config means creating an authoritative service identifier (authoritative because it's the only identifier used in tooling) and then attaching a configuration to it.
Facebook and google have (or at least at some point had) tupperware and borg respectively, that are basically custom verisons of the above extended for their infrastructures.