-
Notifications
You must be signed in to change notification settings - Fork 3
Aquarium: Internal Processes
Sergei Parshev edited this page Jun 11, 2023
·
3 revisions
The Aquarium cluster have a hidden gem - it's the internal processes which are executed on the background and hidden from eyes.
Let's check how Jenkins server requesting the Resource from cluster to execute workload on it and destroy afterwards:
- xcode12.2 - is the created label that uses macos1015-xcode122-ci image from Aquarium Bait packer specification packer/macos1015/xcode122/ci.yml.
- Application - request to the cluster to allocate a resource with specifications stored in required label. It also contains additional metadata that can be used by the Resource.
- Driver - specified in Label and could implement any way to get the required Resource - for example can be a VM, Docker container, Cloud VM or even the hardware machine itself (to run the UI tests for example).
The election process is a part of the distributed Aquarium Fish system, which provides resilient method to choose the workload executor:
Overall the cluster was designed to be as simple as possible - and thanks to database architecture it's way simpler then the analogues. The main complexity is hidden in p2p mechanisms, but overall it could be understood from one read.