|
5 | 5 | [](https://grpc.io) |
6 | 6 | [](https://docker.com) |
7 | 7 |
|
8 | | -**A lightweight, community-driven distributed compute control plane for orchestrating Docker containers, Docker Compose applications, and virtual machines across heterogeneous infrastructure.** |
| 8 | +**An explainable, scheduler-driven distributed compute control plane that orchestrates containers, Docker Compose applications, and virtual machines across heterogeneous infrastructure.** |
9 | 9 |
|
10 | | -Persys Compute brings hyperscaler-inspired orchestration to private, hybrid, and edge environments with minimal overhead and maximum reliability. |
| 10 | +Inspired by hyperscaler architectures, Persys provides a single programmable system to manage compute from a bare-metal server to multi-node clusters — unifying fragmented infrastructure under one control plane with explainable decisions. |
11 | 11 |
|
12 | | -## ✨ Features |
| 12 | +## The Problem |
13 | 13 |
|
14 | | -- **Multi-workload support**: Docker containers, full Docker Compose stacks, and KVM-based VMs |
15 | | -- **Resource-aware scheduling**: CPU, memory, disk, and label-based placement |
16 | | -- **Strong security**: mTLS everywhere, Vault integration for certs and secrets |
17 | | -- **etcd-backed state**: Persistent, highly available cluster state |
18 | | -- **Explicit reconciliation**: Automatic drift detection and correction |
19 | | -- **Observability-first**: Prometheus metrics, structured logs, health endpoints |
20 | | -- **Lightweight agents**: Simple, reliable node agents with local execution |
21 | | -- **CLI & API**: `persysctl` for easy management |
22 | | -- **Federation ready**: Multi-cluster and cloud offloading support |
| 14 | +Modern infrastructure is fragmented: containers, Docker Compose apps, VMs, physical servers, and cloud instances are managed with separate tools. This increases operational complexity across deployment, debugging, scaling, resource management, and failure recovery. |
23 | 15 |
|
24 | | -## 🚀 Quick Start |
| 16 | +Persys unifies these under **one programmable API and explainable scheduler**, reducing toolchain entropy. |
25 | 17 |
|
26 | | -### Using Docker Compose (Recommended for dev) |
| 18 | +## What Kind of Cloud? |
27 | 19 |
|
28 | | -```bash |
29 | | -# Clone the repo |
30 | | -git clone https://github.com/persys-dev/persys-cloud.git |
31 | | -cd persys-cloud |
| 20 | +Persys is an **IaaS foundation** with layered ambitions: |
| 21 | + |
| 22 | +- **IaaS**: Compute primitives and VM lifecycle. |
| 23 | +- **CaaS**: Container orchestration + Docker Compose. |
| 24 | +- **Roadmap → PaaS**: Managed features like GKE/EKS. |
| 25 | +- **Roadmap → DBaaS**: Automated database deployments. |
| 26 | + |
| 27 | +**Vision**: A programmable compute platform exposing compute, platform, and data services through one explainable control plane. |
32 | 28 |
|
33 | | -# Start the full stack |
34 | | -cd infra/docker |
35 | | -docker compose up -d --build |
| 29 | +## ✨ Core Features |
36 | 30 |
|
37 | | -# Build and use CLI |
38 | | -cd ../../persysctl |
39 | | -go build -o ./bin/persysctl . |
| 31 | +- **Multi-workload**: Docker containers, full Compose stacks (Git/inline), KVM VMs. |
| 32 | +- **Resource-aware scheduling**: CPU/memory/disk/labels/capabilities. |
| 33 | +- **Explainable decisions**: Persys Intelligence layer with Semi-RAG reasoning. |
| 34 | +- **Strong security**: mTLS, Vault for identity/secrets. |
| 35 | +- **State management**: etcd (persistent) + Redis (operational). |
| 36 | +- **Self-healing**: Leases, heartbeats, reconciliation, auto-reschedule. |
| 37 | +- **Storage**: Ceph-backed VM disks with replication. |
| 38 | +- **Automation**: persys-automation for scaling/remediation based on intelligence. |
| 39 | +- **Observability**: Prometheus, structured logs, health endpoints. |
| 40 | +- **CLI**: `persysctl` for management. |
40 | 41 |
|
41 | | -# Check cluster status |
| 42 | +## 🚀 Quick Start |
| 43 | + |
| 44 | +```bash |
| 45 | +git clone https://github.com/persys-dev/persys-cloud.git && cd persys-cloud |
| 46 | +cd infra/docker && docker compose up -d --build |
| 47 | +cd ../../persysctl && go build -o bin/persysctl . |
42 | 48 | ./bin/persysctl --transport http cluster list |
43 | 49 | ``` |
44 | 50 |
|
45 | | -See [Local Development](#local-development) for more details. |
46 | | - |
47 | 51 | ## Architecture |
48 | 52 |
|
49 | | -Persys Compute follows a strict **control-plane / data-plane** separation: |
| 53 | +**Centralized control-plane model**: |
50 | 54 |
|
51 | | -- **Scheduler**: Authoritative brain for placement and reconciliation |
52 | | -- **Gateway**: REST API entrypoint with auth |
53 | | -- **Agents**: Dumb executors on nodes |
54 | | -- **etcd**: Cluster state store |
55 | | -- **Vault**: Identity and secret management |
| 55 | +1. **persysctl** → **API Gateway** (REST, auth, routing, CoreDNS). |
| 56 | +2. **Scheduler** (persys-scheduler): Authoritative placement, reconciliation, state. |
| 57 | +3. **Agents** (compute-agent): Lightweight executors (no scheduling). |
56 | 58 |
|
57 | | -For full details, see [docs/architecture](docs/architecture). |
| 59 | +**Cluster**: Logical pool of nodes with telemetry; scheduler treats uniformly. |
58 | 60 |
|
59 | | -## Supported Workloads |
| 61 | +See `docs/architecture/` for diagrams. |
60 | 62 |
|
61 | | -### Containers |
62 | | -Simple image-based workloads with resource limits, volumes, ports, etc. |
| 63 | +## Scheduling |
63 | 64 |
|
64 | | -### Docker Compose |
65 | | -Git-backed or inline YAML deployments with env/secrets injection. |
| 65 | +Telemetry-driven evaluation (utilization, labels, topology) → select optimal node → deploy + reconcile. |
66 | 66 |
|
67 | | -### Virtual Machines |
68 | | -Full VM provisioning with cloud-init, storage pools, and network config. |
| 67 | +Example: "Run PostgreSQL" → ranks nodes by resources → assigns + reports. |
69 | 68 |
|
70 | | -## Local Development |
| 69 | +## Cluster State |
71 | 70 |
|
72 | | -### Prerequisites |
73 | | -- Go 1.22+ |
74 | | -- Docker & Docker Compose |
75 | | -- etcd, Vault (provided via compose) |
| 71 | +- **etcd**: Persistent memory (`/nodes/`, `/workloads/`, `/assignments/`, desired state). |
| 72 | +- **Redis**: High-churn (events, retries, failures). |
76 | 73 |
|
77 | | -### Building Components |
| 74 | +Enables crash recovery and efficient operations. |
78 | 75 |
|
79 | | -```bash |
80 | | -# Scheduler |
81 | | -cd persys-scheduler && make build |
| 76 | +## Reliability & Self-Healing |
82 | 77 |
|
83 | | -# Agent |
84 | | -cd ../compute-agent && make build |
| 78 | +- Heartbeats (~30s) + lease-based liveness. |
| 79 | +- Transient partition tolerance. |
| 80 | +- Automatic reschedule on node loss. |
| 81 | +- Idempotent ops + explicit failures. |
85 | 82 |
|
86 | | -# Gateway |
87 | | -cd ../persys-gateway && make build |
88 | | -``` |
| 83 | +**VM Resilience**: Ceph 3x replication decouples storage from compute. |
| 84 | + |
| 85 | +## Persys Intelligence & Automation |
| 86 | + |
| 87 | +- **Intelligence**: Explainable reasoning over snapshots (state/metrics/events) → recommendations, explanations, forecasts (Semi-RAG, no direct mutation). |
| 88 | +- **Automation**: Acts on recommendations for autoscaling, rebalancing, remediation. |
| 89 | + |
| 90 | +**Layered Brains**: |
| 91 | +1. Execution (Compute). |
| 92 | +2. Reasoning (Intelligence). |
| 93 | +3. Automation. |
| 94 | + |
| 95 | +## Local Development |
89 | 96 |
|
90 | | -See individual component READMEs and root `Makefile` for more. |
| 97 | +Prerequisites: Go 1.22+, Docker. |
91 | 98 |
|
92 | | -## Contributing |
| 99 | +Build: Use per-component Makefiles or root `Makefile`. |
93 | 100 |
|
94 | | -We welcome contributions! Please see contributing guidelines in subdirectories and open issues/PRs. |
| 101 | +Full stack via `infra/docker`. |
95 | 102 |
|
96 | | -## Roadmap |
| 103 | +## Contributing & Roadmap |
97 | 104 |
|
98 | | -- Full storage pool management |
99 | | -- Advanced retry and backoff engine |
100 | | -- Multi-cluster federation |
101 | | -- Enhanced VM networking and introspection |
102 | | -- Secrets management integration |
103 | | -- Stream-based control channels |
| 105 | +See subdir guidelines. Priorities: storage pools, federation, secrets, advanced intelligence. |
104 | 106 |
|
105 | 107 | ## License |
106 | 108 |
|
107 | | -MIT License - see [LICENSE](LICENSE) file. |
| 109 | +MIT. |
108 | 110 |
|
109 | 111 | ## Links |
110 | 112 |
|
111 | | -- [compute-agent](compute-agent) - Node runtime agent |
112 | | -- [persys-scheduler](persys-scheduler) - Core scheduler |
113 | | -- [persys-gateway](persys-gateway) - API gateway |
114 | | -- [persysctl](persysctl) - Command line interface |
| 113 | +- [compute-agent](compute-agent/), [persys-scheduler](persys-scheduler/), [persys-gateway](persys-gateway/), [persys-intelligence](persys-intelligence/), [persys-automation](persys-automation/) |
115 | 114 |
|
116 | 115 | --- |
117 | 116 |
|
118 | | -*Engineered for production-grade private and hybrid compute with simplicity and rigor.* |
| 117 | +*Engineered for production-grade, explainable private/hybrid compute.* |
0 commit comments