RCv3 recap - rackerlabs/otter GitHub Wiki
Priority interrupt
- RCv3: right now
- Convergence: done Soon(TM)
- Hence: have to do RCv3 in job code!
- Implement RCv3 in convergence’s terms
- not more of the same dead-end job code
What does that even mean?
- Remove single-job orientation
- Sounds simple, but biggest change so far
- Many shiny new things
- e.g.:
IStep
,Request
, pure HTTP - Great ideas! But not strictly convergence
- Implement feature in terms of
IStep
et al. - Use that in the old code
- Convergence is a huge change no matter what
- Breaking it up into small pieces is desirable
- Non-essential parts can be done incrementally
- Find needed features/warts while they’re easy to fix
Put lots of new machinery into prod at the same time
or
Introduce pieces gradually, then just convergence logic
Latter is clearly desirable!
- Requirements really quite similar (if not identical)
- Add a server, add it to a load balancer…
- Thank you, Ying!
- Tons of reviews and deploys
- A+++ would pair again
- Business perspective: clearly RCv3!
- Technical perspective:
- Convergence integration path
- Kicking the tires on a lot of new stuff
- Lots of cleanups; make next steps easier
- Probably not; CLB-only assumption ran pretty deep
- Lots of untested behavior: try to stick to what’s there
- Contingency plan always at the ready
- “Just get it done with treq”
- Making the request isn’t the hard part
- Getting right args at right call sites is
- API we have: tokens, endpoints, direct treq calls
- API we want:
IStep
,Request
,pure_http
+effect
- Pass a ”
request_func
” - Actually just
lambda *a, **kw: None
- Has old values (auth token…) as attrs
- Consolidates auth stuff on 1 object
-
lambda *a, **kw: None
-> realrequest_func
- Keep arguments for backwards compatibility
Suggestion: keep going :-)
- Gradually replace direct treq code in worker
- Remove old argument crutches
- Support most (all?) operations for convergence in worker code
- Not really; API calls have to work anyway
- Worst part: thread
request_func
through calls - Tricky part: work around poor tests