<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloud on Backend Engineering Strategy Tools</title><link>https://backend-engineering-strategy-tools.github.io/site/tags/cloud/</link><description>Recent content in Cloud on Backend Engineering Strategy Tools</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 14 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://backend-engineering-strategy-tools.github.io/site/tags/cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenStack</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/cloud-infrastructure/openstack/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/public-notes/cloud-infrastructure/openstack/</guid><description>&lt;p&gt;OpenStack is an open-source IaaS platform — it turns a pool of bare-metal servers into a self-service cloud: virtual machines, block storage, networking, and object storage, all driven by API.&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.openstack.org/" target="_blank" rel="noopener"
 &gt;https://www.openstack.org/&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="scale-and-fit"&gt;Scale and fit
&lt;/h2&gt;&lt;p&gt;There is a rough spectrum of virtualization tools, and picking the wrong tier is a common mistake:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proxmox / VMware / Hyper-V&lt;/strong&gt; — the right choice when you want to run virtual machines. SMB, homelab, or a small ops team managing infrastructure directly. Reasonable setup cost, manageable operational overhead, one or a few admins in control. Think of it as a VMware replacement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OpenStack&lt;/strong&gt; — the right choice when you are &lt;em&gt;building a cloud&lt;/em&gt;, not just running VMs. Multi-tenant infrastructure where teams self-service their own compute, networking, and storage via API. The operational complexity is real and significant; it pays off when the cloud-like abstraction is the actual product, or when the scale justifies the overhead.&lt;/p&gt;
&lt;p&gt;The rule of thumb: if the question is &amp;ldquo;how do I replace VMware?&amp;rdquo;, the answer is Proxmox. If the question is &amp;ldquo;how do I build a private cloud platform?&amp;rdquo;, the answer might be OpenStack.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="core-components"&gt;Core Components
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Service&lt;/th&gt;
 &lt;th&gt;Code Name&lt;/th&gt;
 &lt;th&gt;What it does&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Compute&lt;/td&gt;
 &lt;td&gt;Nova&lt;/td&gt;
 &lt;td&gt;Schedules and manages VM lifecycle&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Networking&lt;/td&gt;
 &lt;td&gt;Neutron&lt;/td&gt;
 &lt;td&gt;Virtual networks, routers, floating IPs, security groups&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Block Storage&lt;/td&gt;
 &lt;td&gt;Cinder&lt;/td&gt;
 &lt;td&gt;Persistent volumes attached to VMs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Image Service&lt;/td&gt;
 &lt;td&gt;Glance&lt;/td&gt;
 &lt;td&gt;Stores and serves OS images&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Identity&lt;/td&gt;
 &lt;td&gt;Keystone&lt;/td&gt;
 &lt;td&gt;Auth, service catalog, RBAC&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Dashboard&lt;/td&gt;
 &lt;td&gt;Horizon&lt;/td&gt;
 &lt;td&gt;Web UI (optional)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Object Storage&lt;/td&gt;
 &lt;td&gt;Swift&lt;/td&gt;
 &lt;td&gt;S3-like object storage (optional)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Bare Metal&lt;/td&gt;
 &lt;td&gt;Ironic&lt;/td&gt;
 &lt;td&gt;Provisions physical machines instead of VMs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You do not need all of them. A minimal useful deployment is Nova + Neutron + Cinder + Glance + Keystone.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="openstack-on-kubernetes"&gt;OpenStack on Kubernetes
&lt;/h2&gt;&lt;p&gt;OpenStack services are just applications — and they can run as Kubernetes workloads. Two projects make this practical:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="link" href="https://github.com/openstack/openstack-helm" target="_blank" rel="noopener"
 &gt;OpenStack-Helm&lt;/a&gt;&lt;/strong&gt; — official Helm charts for deploying OpenStack services on an existing Kubernetes cluster. Each service (Nova, Neutron, Cinder, etc.) becomes a Helm release. Upgrades follow standard rolling deployment patterns.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="link" href="https://github.com/vexxhost/atmosphere" target="_blank" rel="noopener"
 &gt;Atmosphere&lt;/a&gt;&lt;/strong&gt; (by VEXXHOST) — a higher-level operator built on top of OpenStack-Helm. Adds Ansible automation, health checks, and a more opinionated deployment model. Targets production use.&lt;/p&gt;
&lt;p&gt;The practical implication: you can run a Talos cluster and deploy OpenStack on top of it — OpenStack as a tenant of Kubernetes rather than a separate platform. This inverts the usual relationship (where Kubernetes runs on top of OpenStack) and is an interesting architectural option for homelab and small private cloud deployments.&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.fairbanks.nl/" target="_blank" rel="noopener"
 &gt;Fairbanks&lt;/a&gt; (Dutch hosting company specialising in sovereign private clouds) does exactly this in production. Their talk &lt;a class="link" href="https://www.youtube.com/watch?v=zU8mT2f2Hxc" target="_blank" rel="noopener"
 &gt;OpenStack on Talos Linux&lt;/a&gt; is the clearest real-world example of the pattern.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="deployment-options"&gt;Deployment Options
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Kolla-Ansible&lt;/strong&gt;&lt;br&gt;
&lt;a class="link" href="https://docs.openstack.org/kolla-ansible/latest/" target="_blank" rel="noopener"
 &gt;https://docs.openstack.org/kolla-ansible/latest/&lt;/a&gt;&lt;br&gt;
Containerised OpenStack deployed via Ansible. Production-grade, well-maintained. The practical choice for homelab and small-scale production deployments. Each service runs in its own container.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DevStack&lt;/strong&gt;&lt;br&gt;
&lt;a class="link" href="https://docs.openstack.org/devstack/latest/" target="_blank" rel="noopener"
 &gt;https://docs.openstack.org/devstack/latest/&lt;/a&gt;&lt;br&gt;
All-in-one development install. Not for production or anything you want to survive a reboot. Good for learning the API surface.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Canonical OpenStack (Juju / Sunbeam)&lt;/strong&gt;&lt;br&gt;
&lt;a class="link" href="https://ubuntu.com/openstack" target="_blank" rel="noopener"
 &gt;https://ubuntu.com/openstack&lt;/a&gt;&lt;br&gt;
Ubuntu-opinionated deployment. Sunbeam is a newer minimal footprint option. Good if you&amp;rsquo;re already in the Ubuntu/Juju ecosystem.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="concepts-worth-understanding"&gt;Concepts Worth Understanding
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Flavors&lt;/strong&gt; — VM sizing templates (vCPU, RAM, disk). You define these; instances pick from them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security Groups&lt;/strong&gt; — stateful firewall rules applied per-port. Default-deny inbound.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Floating IPs&lt;/strong&gt; — externally routable IPs that can be associated/disassociated from instances dynamically.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Availability Zones&lt;/strong&gt; — logical groupings of compute nodes. Useful for fault isolation even at small scale.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hypervisors&lt;/strong&gt; — Nova supports KVM (default), QEMU, VMware, and others. KVM on Linux is the standard.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="relevance-to-the-lab"&gt;Relevance to the Lab
&lt;/h2&gt;&lt;p&gt;The &lt;a class="link" href="https://backend-engineering-strategy-tools.github.io/site/homelab/llm-training/" &gt;LLM training experiment&lt;/a&gt; plans to use OpenStack as the IaaS layer over the &lt;a class="link" href="https://backend-engineering-strategy-tools.github.io/site/homelab/inventory/systems/" &gt;blade nodes&lt;/a&gt; in ASGARD — Nova for compute scheduling, Neutron for cluster networking, Cinder for shared model/dataset storage backed by Ceph.&lt;/p&gt;</description></item><item><title>Kubernetes Across the Stack</title><link>https://backend-engineering-strategy-tools.github.io/site/projects/kubernetes-stack/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/projects/kubernetes-stack/</guid><description>&lt;p&gt;A documented comparison of running Kubernetes across every major hosting model — cloud managed, self-managed on cloud, private cloud, and bare metal at home. The goal is a honest, practical reference for each environment: what it costs you in time and money, where the rough edges are, and how the networking story differs between them.&lt;/p&gt;
&lt;p&gt;The thread running through all of it is &lt;a class="link" href="https://www.talos.dev/" target="_blank" rel="noopener"
 &gt;Talos Linux&lt;/a&gt; — an immutable, API-driven OS built specifically for Kubernetes. No SSH, no shell, no config drift. The same OS everywhere means the operational model stays consistent regardless of what is running underneath.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Environment&lt;/th&gt;
 &lt;th&gt;Approach&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenStack — &lt;a class="link" href="https://cleura.com/" target="_blank" rel="noopener"
 &gt;Cleura&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Talos &amp;amp; Terraform&lt;/td&gt;
 &lt;td&gt;draft exists&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenStack — &lt;a class="link" href="https://cleura.com/" target="_blank" rel="noopener"
 &gt;Cleura&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Talos, with Omni&lt;/td&gt;
 &lt;td&gt;maybe ?&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenStack — &lt;a class="link" href="https://elastx.se/" target="_blank" rel="noopener"
 &gt;ElastX&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Talos &amp;amp; Terraform&lt;/td&gt;
 &lt;td&gt;draft exists&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenStack — &lt;a class="link" href="https://elastx.se/" target="_blank" rel="noopener"
 &gt;ElastX&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Talos, with Omni&lt;/td&gt;
 &lt;td&gt;maybe ?&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Homelab — bare metal&lt;/td&gt;
 &lt;td&gt;Talos + Pixieboot + Omni&lt;/td&gt;
 &lt;td&gt;draft exists&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Homelab — bare metal&lt;/td&gt;
 &lt;td&gt;Talos + Pixieboot without Omni&lt;/td&gt;
 &lt;td&gt;maybe ?&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Homelab — OpenStack&lt;/td&gt;
 &lt;td&gt;OpenStack on bare metal, Talos running on top&lt;/td&gt;
 &lt;td&gt;&lt;em&gt;(stretch)&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Homelab — OpenStack&lt;/td&gt;
 &lt;td&gt;Talos on bare metal, OpenStack inside cluster&lt;/td&gt;
 &lt;td&gt;&lt;em&gt;(stretch)&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;AWS&lt;/td&gt;
 &lt;td&gt;Talos on EC2&lt;/td&gt;
 &lt;td&gt;&lt;em&gt;(stretch)&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Azure&lt;/td&gt;
 &lt;td&gt;Talos on VMs&lt;/td&gt;
 &lt;td&gt;&lt;em&gt;(stretch)&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GCP&lt;/td&gt;
 &lt;td&gt;Talos on Compute Engine&lt;/td&gt;
 &lt;td&gt;&lt;em&gt;(stretch)&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Stretch goals&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AWS, Azure, GCP — same Talos approach, different underlying infrastructure. Interesting eventually, but not the priority.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Omni&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://omni.siderolabs.com/" target="_blank" rel="noopener"
 &gt;Omni&lt;/a&gt; is Sidero&amp;rsquo;s managed control plane for Talos clusters — worth documenting both with and without it. Without Omni gives you the full picture of what Talos management looks like manually; with Omni shows what the managed layer buys you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Homelab provisioning&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nodes provisioned via Pixieboot — no USB sticks, no manual installations. A node powers on, boots from the network, and registers. The goal is a fully reproducible cluster from scratch with minimal human steps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cluster provisioning and bootstrap for each environment&lt;/li&gt;
&lt;li&gt;Networking — CNI choices, ingress, cross-cluster connectivity&lt;/li&gt;
&lt;li&gt;Storage — what you get managed vs what you have to bring yourself&lt;/li&gt;
&lt;li&gt;Operational differences — upgrades, node management, observability&lt;/li&gt;
&lt;li&gt;Cost and trade-off summary across environments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Making it usable&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Getting a cluster running is the easy part. Making it usable is where environments diverge. Each environment needs an answer for ingress, DNS, and storage — and the answer varies significantly depending on what the underlying platform provides.&lt;/p&gt;
&lt;p&gt;On managed cloud you can lean on load balancers and block storage from the provider. On OpenStack you have those options if the provider exposes them. On bare metal at home you are on your own — MetalLB or similar for load balancer IPs, a local DNS solution, and either local storage or something like Rook/Ceph. Same Kubernetes, very different operational story underneath.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Notes exist in various states — pulling them together, testing, and documenting properly is the work.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>