aboutsummaryrefslogtreecommitdiffstats
path: root/ops/provisioning.md
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2020-03-05 17:06:47 -0500
committerDrew DeVault <sir@cmpwn.com>2020-03-05 17:06:47 -0500
commit747994f68fa7eb21a68e2aa7e04085369b9c92ab (patch)
treeef93615cd60cd126714c150833b0fafbac933af7 /ops/provisioning.md
parent8a8161fd6aec91dae49b57bb3337c0f5dafb1590 (diff)
downloadsr.ht-docs-747994f68fa7eb21a68e2aa7e04085369b9c92ab.tar.gz
Add operational documentation
Diffstat (limited to 'ops/provisioning.md')
-rw-r--r--ops/provisioning.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/ops/provisioning.md b/ops/provisioning.md
new file mode 100644
index 0000000..0bbfba0
--- /dev/null
+++ b/ops/provisioning.md
@@ -0,0 +1,48 @@
+---
+title: "Server provisioning & allocation"
+---
+
+Standards for provisioning of VMs and physical hosts.
+
+# Alpine Linux
+
+Our standard loadout uses Alpine Linux for all hosts and guests.
+
+- **TODO**: ns1 and ns2 are on Debian, they need to be reprovisioned (add an ns3
+ while we're at it?)
+
+# Physical hosts
+
+## VM hosts
+
+Our current VM hosts won't scale much further. We need to figure out a better
+hardware loadout for these going forward.
+
+## High performance VM hosts
+
+For performance critical services (presently only git.sr.ht demands this), we do
+have a standard loadout:
+
+- AMD EPYC 7402 (24 cores, 48 threads)
+- Micron 36ASF2G72PZ-2G6F1 RAM (4x, 64G total)
+- 1x NVMe for host system, ext4; WD Black 1T
+- 4x SSD on SATA, direct passthrough to guest
+
+This is spec'ed to CPU and I/O intensive workloads.
+
+## Build hosts
+
+builds.sr.ht uses dedicated build runners. Our current standard is:
+
+- AS-1013S-MTR SuperMicro barebones
+- AMD EPYC 7281 (16 cores, 32 threads)
+- M393A4K40CB2-CTD RAM (4x, 128G total)
+- 1x NVMe for root, ext4; WD Black 1T
+- 3x HDD on SATA for /var, ZFS; 1T each, various vendors/models
+
+This configuration supports up to 16 parallel build slots.
+
+# Virtual machines
+
+There is no standard loadout - tune the specifications for the task at hand.
+Generally limit 1 VM == 1 service, and tune accordingly.