Ideas for a Lisp DCOS
Uninspired by the current technologies for managing systems (e.g. systemd and Salt), it would be interesting to build a Lisp system for doing this. It may eventually be a way to hook into the the hypervisor idea. The project is named SYSGOV, for system governor.
Currently, there are two components envisioned:
- SYSPLAN: a system planner, taking the role of ensuring a machine's configuration and status is where it should be.
- SYSMON: a service manager and job scheduler, taking the role of ensuring a set of services are running on a machine and that scheduled tasks run.
The goal for now is to target Linux systems, as that is what the majority of server systems are running.
There is some source code available.
Some of the questions the initial research aims to answer:
- What does a system specification look like?
- How does an overseer or supervisory node communicate changes to its charges?
- How is this done securely?
One idea for this is to integrate some AI planning research into the system to allow it to intelligently plan for resource usage.
This leads to the service discovery problem: if services are run dynamically, how are they found? How are changes to the service state (e.g. what if the service is moved) handled?
Starting to dig into SYSPLAN led to SYSMON. It's intended as a replacement for certain parts of systemd and the docker management systems.
This needs a lot of digging into some deep Unix systems programming.
- What is the correct action when a service exits?
- How should logging, status, and job results be collected and published?
- Using Nebula/Irmin as a file store.
- How to securely share secrets?
- Service discovery?
Last updated on 2015-08-01.