Skip to content

About

A software deployment manager for computer farms and distributed environments, enabling centralized control over application distribution, installation, configuration, and updates across large sets of machines. It ensures consistency, scalability, and reliability while reducing manual effort and operational overhead.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

deploy-manager

deploy-manager is a deployment system for computer farms and distributed environments: a control plane plus on-host agents for centralized control over distribution, installation, configuration, and updates across many machines—with explicit versioning, auditability, and safe staged rollouts on stateful hosts.

Licensed under the MIT License. Repository: github.com/yukels/deploy-manager.


Why this exists

On a fleet of high-performance servers, two questions must stay obvious: what version is running? and who changed what? Task runners and SSH-heavy workflows can run steps, but they rarely become the source of truth for intended vs. actual versions, per-host status, and rollout policy.

Here, version deployment is a first-class domain: immutable artifacts, a manager for intent and history, a broker for delivery, and agents that pull packages and report health, version probes, and step-level audit.


Architecture

Control plane (orchestration, persistence, UI) is separated from the farm (per-host execution).

  • CI builds versioned artifacts into an artifact repository (e.g. Artifactory), often with dev / staging / production repos; versions promote between stages by policy.
  • Deployment Manager — REST API (+ UI in a full stack); stores rollouts, hosts, platforms, and status in a SQL database.
  • RabbitMQ — commands and state between manager and agents.
  • Deploy Agent (each host) — subscribes, downloads artifacts, installs .deb packages, runs post-install health / version checks, emits audit for each step.

Architecture: control plane and farm


Deployment model

  • Rollout — intent: scope, pins, who/when/status.
  • Platform — per-host architecture/configuration; per-component env drives install-time config (e.g. .deb post-install). Same component version, different effective config when hosts differ.
  • Host groups — hosts may sit in many groups; rollouts target all, canary, or a platform / group slice.
  • RolloutStatus — headline outcome per host × component.
  • Audit — granular steps (e.g. download → install → validate): time, duration, parameters, errors.

Deployment model


Lifecycle

  1. Baseline the machine (OS, network, storage).
  2. Install Deploy Agent.
  3. Register with Platform (required) and groups—not hostname-only.
  4. Rollout: manager resolves versions against the correct Artifactory stage; agent installs and validates; on failure, rollback to last known-good pins where supported.
  5. Inspect status + audit for operations and incidents.

Ongoing host APIs typically include register, detach/attach, move between pools/fleets, and update platform when reality changes. The agent is versioned like any other component.

Lifecycle


Packaging

Ship self-contained .deb artifacts (Go, C++, Python, …). The agent stays agnostic of language; e.g. Conda setup lives in the Python package. Services: REST health / version; utilities: CLI switches. Checks run after install and on a schedule; drift is reported when pins and probes disagree.


Stack (this repo)

Implementation is primarily Go (e.g. Gin HTTP, MySQL, RabbitMQ, JWT, JFrog client, AWS SDK for audit/publish paths—see go.mod).


Contributing

PRs welcome; keep changes aligned with the manager / agent / artifacts / broker split.

About

A software deployment manager for computer farms and distributed environments, enabling centralized control over application distribution, installation, configuration, and updates across large sets of machines. It ensures consistency, scalability, and reliability while reducing manual effort and operational overhead.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages