Living Document Notice
Published 2026-09-27. The evolving architecture, revisions, and connected notes for this dispatch live in the Stax Digital Garden.
Fleet Operations on Modest Hardware
Summary
Deploying multi-tenant web publication architectures typically involves complex container orchestration systems that require significant RAM and compute resources. For a small engineering studio, running Kubernetes control planes or heavyweight server clusters incurs unnecessary infrastructure expense and maintenance overhead.
Bosun runs publishing fleets on single-core, 1 GB RAM virtual private servers. Combining static Quartz builds with lightweight reverse proxies and Crow’s Nest telemetry enables low-resource nodes to serve millions of requests monthly while maintaining an idle memory baseline below 40 megabytes.
Low-Footprint Node Topology
Complex microservice topologies introduce CPU and memory overhead that overwhelms low-cost cloud instances. Running multiple container runtimes, service meshes, and dynamic language interpreters quickly leads to out-of-memory kernel kills.
Bosun adopts a minimalist runtime footprint on Alpine Linux. The entire multi-tenant publishing fleet runs as static files served through a single optimized reverse proxy, monitored by an embedded metrics agent.
+-------------------------------------------------------------+
| Public Edge Traffic |
| (HTTPS / Port 443) |
+-------------------------------------------------------------+
|
v
+-------------------------------------------------------------+
| Caddy Reverse Proxy |
| (TLS Termination & HTTP/3) |
| Memory RSS: 14.2 MB |
+-------------------------------------------------------------+
|
+--------------+--------------+
| |
v v
+-----------------------------+ +-----------------------------+
| Static Quartz Site 1 | | Static Quartz Site 2 |
| (Direct Filesystem Read) | | (Direct Filesystem Read) |
+-----------------------------+ +-----------------------------+
|
v
+-------------------------------------------------------------+
| Crow's Nest Telemetry Daemon |
| (/proc Scanner & Prometheus Metrics Endpoint) |
| Memory RSS: 4.8 MB |
+-------------------------------------------------------------+
Static generation eliminates runtime database query execution on incoming HTTP traffic. The kernel serves cached file pages directly from memory via the sendfile system call, keeping CPU utilization near zero during sustained read spikes.
Infrastructure Runtime Footprint Comparison
Evaluating host runtimes demonstrates the resource efficiency of native bare-metal processes over containerized orchestration platforms.
| Infrastructure Pattern | Base Idle Memory | Kernel Thread Count | Disk Image Size | Cold Restart Time |
|---|---|---|---|---|
| Bare-Metal Alpine + Caddy | 38.4 MB | 12 | 140 MB | 0.4 seconds |
| Docker Compose on Debian | 215.0 MB | 48 | 1.8 GB | 4.8 seconds |
| Nomad Single-Node Client | 340.0 MB | 76 | 2.4 GB | 8.2 seconds |
| K3s Minimal Kubernetes | 680.0 MB | 142 | 4.2 GB | 24.5 seconds |
On a 1 GB virtual machine, Kubernetes leaves less than 300 MB for actual application workloads, while the bare-metal static configuration preserves over 900 MB for page cache and background build tasks.
Crow’s Nest Telemetry Scraper
Crow’s Nest gathers operating system metrics by parsing /proc/stat and /proc/meminfo directly, avoiding heavy third-party monitoring agents.
package main
import (
"bufio"
"fmt"
"net/http"
"os"
"strings"
)
func metricsHandler(w http.ResponseWriter, r *http.Request) {
file, err := os.Open("/proc/meminfo")
if err != nil {
http.Error(w, "Failed to read meminfo", http.StatusInternalServerError)
return
}
defer file.Close()
var memAvailable, memTotal uint64
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
if strings.HasPrefix(line, "MemTotal:") {
fmt.Sscanf(line, "MemTotal: %d kB", &memTotal)
} else if strings.HasPrefix(line, "MemAvailable:") {
fmt.Sscanf(line, "MemAvailable: %d kB", &memAvailable)
}
}
fmt.Fprintf(w, "# HELP node_memory_total_bytes Total physical memory.\n")
fmt.Fprintf(w, "node_memory_total_bytes %d\n", memTotal*1024)
fmt.Fprintf(w, "# HELP node_memory_available_bytes Memory available for allocation.\n")
fmt.Fprintf(w, "node_memory_available_bytes %d\n", memAvailable*1024)
}
func main() {
http.HandleFunc("/metrics", metricsHandler)
http.ListenAndServe(":9100", nil)
}The Go daemon compiles into a single 3 MB static binary that consumes less than 5 MB of RAM while exposing Prometheus-compatible metrics over HTTP.
Memory Baseline Invariant
The fleet architecture establishes a strict operational invariant: total resident memory across all background daemons on an edge publishing node must never exceed 64 megabytes under idle conditions.
Inspect active memory allocation across all publishing fleet processes:
ps -eo pid,comm,rss --sort -rss | grep -E "(caddy|crows-nest|quartz)"- Directus Target: bosunpkm-blog
- Garden Source Reference: MOC - Bosun PKM Engine, MOC - Bosun PKM Tools, MOC - Harbor Ecosystem, MOC - Fleet Operations