Persistent process #9123
KoltesDigital
started this conversation in
General
Replies: 1 comment 3 replies
-
|
The closest I can think of are services, for which an RFC exists. But it's in open state, and it doesn't look like there is a lot of progress on it. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I have a use case and I fear Concourse was not designed for it. But I'd like to discuss to what extend, alternatives, etc.
I'm using Bazel for quite some times, and I'm now trying to decrease CI duration. Usually with CI, builds and tests are isolated from each other through ephemeral directories, processes... in a word: containers. However, Bazel manages isolation itself, and has a rather long warmup. Therefore, it is recommended to use persistent workers. Each machine would only have one daemon, build requests are dequeued one by one, and because they all look similar, cache hits speed up builds. Machines would be added or removed depending on the load.
FTR, I don't have enough money to rent a cluster of instances for each repo I work on. Instead, I have an old computer in the broom cupboard, and it's the worker for multiple projects, this means there's a daemon for each project. I'm just running a few builds per day.
Of course, I want to keep Concourse, it already implements a lot of concepts. How can it deal with that one? I'm only thinking about a task that just connects to an external service that itself runs Bazel, and streams back outputs. External to the ephemeral container, so it's long-lived. But that's not ideal, a container would only be running only to stream logs from another process. They would act like a queue, where each item eats some resources.
Do you have any thought on that?
Beta Was this translation helpful? Give feedback.
All reactions