Merge lp://staging/~vila/uci-engine/ideas into lp://staging/uci-engine
Proposed by
Vincent Ladeuil
Status: | Work in progress |
---|---|
Proposed branch: | lp://staging/~vila/uci-engine/ideas |
Merge into: | lp://staging/uci-engine |
Diff against target: |
193 lines (+158/-1) 4 files modified
.bzrignore (+4/-0) docs/Makefile (+8/-1) docs/architecture.rst (+134/-0) docs/images/ticket-worker.dot (+12/-0) |
To merge this branch: | bzr merge lp://staging/~vila/uci-engine/ideas |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Canonical CI Engineering | Pending | ||
Review via email: mp+213601@code.staging.launchpad.net |
Description of the change
Throwing ideas to fuel discussion, not proposing to merge.
Best read with:
$ (cd docs ; make html)
$ firefox docs/_build/
so you get the pretty picture.
The ticket worker is intended to implement various workflows defining isolated tasks. It could replace jenkins usage by the lander and provide a more agile architecture.
The main targeted change is to define the API via the messages exchanged between the workers.
To post a comment you must log in.
Unmerged revisions
- 419. By Vincent Ladeuil
-
Add a state automaton diagram for the ticket worker.
- 418. By Vincent Ladeuil
-
Pointers to rabbit for the never failing cluster configuration.
- 417. By Vincent Ladeuil
-
Brain dump for phase-1.
This is nice and straight forward. Well thought out and described (not half baked like mine have been :-) ).
To perform different workflows, can I assume that the ticket worker is created with that knowledge as an input from the ticket system? For example, ticket 9 needs to perform task A/B/C and ticket 10 needs to do just A/B. Also, does this convey what tasks can be retried and which ones fail the ticket?
You mention "the task send an outgoing message listing the outputs to another queue." What (or who's) queue is this sent to? Is it a queue owned by this ticket worker? Or is the imagebuilder send a message to the test-runner's queue? Or...
I've also been thinking about the possibility of duplicates tasks. I think with a lot of what we're doing, there's the possibility of a worker or task running but it's unable to communicate and so just merrily proceeds. Meanwhile, the owner of the worker declares it dead and starts up a new one to replace it. I'm not confident we can completely eradicate duplicates so am considering how to live with these in the back of my mind.