~/talk

Applied Science Fiction: Operating a Research-Led Product

slides:none on file

Research-led AR pipelines use Buildkite + Kubernetes job CI to run unit and slow functional tests, with CI doing 5–10 canned work units and a weekly 14-hour full-corpus run for release gating. Modules are independent Celery workers on RabbitMQ, built into container images by a small k8s operator + KEDA autoscaling so every version can run side-by-side on separate task queues. Other specifics: structured logs via python structlog into Loki, retries and timeouts per work unit, static analysis adopted, test weeks quarterly, and user data anonymized before entering corpuses.

AI-written summary · about

  1. 0:00THE ADVANCED COMPUTING SYSTEMS ASSOCIATION
  2. 1:17PIPELINES
  3. 1:37BUILDING GUARDRAILS (Most) researchers are not engineers And don't want to be engineers Build safe paths to move forward Strong mutual respect for specialization Progress with confidence and quality
  4. 2:53WRITING TESTS? Functional tests Easy harness Numeric metrics Unit tests, as applicable and comfortable
  5. 3:43CODE REVIEW Deputize the most technical Code quality, obvious performance issues, test coverage Science review: I stay out of it
  6. 4:08STATIC ANALYSIS » Pre-Commit: tool runner Black: code formatter Isort: more code formatting Flake8: code quality Overall well received
  7. 5:24DEPLOYMENT Ludicrously Automated Custom operator CI deploys on tag or main
  8. 6:34PARALLEL INSTANCES New release, new instance Latest builds update in place Old versions are left time-locked Unless there's a critical issue Pipeline definitions pin module versions
  9. 7:19AUTOSCALING Running every version forever is $$$ We already have a queue driven architecture Autoscaling!
  10. 7:49LATEST Work collisions Like an unpinned dependency Needed for corpus runs Overall positive
  11. 8:27PIPELINE DEFINITIONS Declarative is nice DSL is more realistic Compilable DSL is best
  12. 9:06DEFAULTS ONE-OFFS
  13. 10:11RUNTIME SUPPORT Helper libraries Format conversion Logging and metrics Common algorithms Asset sync, in and out
  14. 10:55NO REALLY, RETRIES! CELERY_ACKS_LATE Queue based retries Pipeline based retries
  15. 11:14TIMEOUTS Trust with retries but verify with timeouts Nested timeouts Work unit Individual steps If it has a timeout, it should also have a metric
  16. 11:42ASIDE: STRUCTURED LOGGING You already know this is good But really, it is logfmt is a nice mix of parsing but also humans Context variables that attach to every log line ts=2022... level=INFO msg="Hello world" run_id=6362
  17. 12:15SOCIAL SUPPORT Office hours Brown-bag talks Testing weeks
  18. 12:51TESTING WEEK No new features or fixes All quality all the time Great place to introduce new tools Gets everyone talking about tests/quality
  19. 14:08CORPUS MANAGEMENT Production edge cases? Personal info (PI) Easy copy tools w/ anonymization Paid testers whenever possible
  20. 15:07OPEN ISSUES
  21. 15:33LICENSING What is safe to use Experiments vs. production I am not a lawyer, talk to your legal team Internal training
  22. 16:07Engineering tools work for research too As long as you build them well DAGs are your friend New versions as new deploys Retry failures everywhere » Observability is for everyone Plan together, succeed together
  23. 16:37BE KIND
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.