Skip to content

Instantly share code, notes, and snippets.

@MangaD
Created November 21, 2025 18:42
Show Gist options
  • Select an option

  • Save MangaD/31ed2da0354cc870b2940cd2f0f4f5a6 to your computer and use it in GitHub Desktop.

Select an option

Save MangaD/31ed2da0354cc870b2940cd2f0f4f5a6 to your computer and use it in GitHub Desktop.
OpenStack

OpenStack

CC0

Disclaimer: Grok generated document.

What is OpenStack?

OpenStack is an open-source cloud computing platform — often described as a "cloud operating system" — that lets you build and manage your own Infrastructure-as-a-Service (IaaS) clouds, similar to how AWS or Azure work under the hood, but completely vendor-neutral and free. It controls large pools of compute, storage, and networking resources across a data center (or multiple data centers), managed via APIs, a web dashboard (Horizon), or CLI tools.

It started in 2010 as a joint project between Rackspace and NASA, and is now governed by the OpenInfra Foundation. As of November 2025, the latest release is 2025.2 "Flamingo" (released October 2025), following the six-month release cycle. The previous one was 2025.1 "Epoxy".

In 2025 it's still very much alive and growing: powering >45 million production compute cores worldwide, with the services market estimated at ~$30 billion and growing 25-32% CAGR through 2030. It's especially strong in telecom (NFV/5G), research/HPC, finance, government, and large enterprises that want to avoid vendor lock-in.

Why Should a Software Engineer Care?

  • If you're building cloud-native apps: Many companies run private/hybrid clouds on OpenStack. Understanding it helps you debug why your VMs/containers behave differently than on AWS/GCP.
  • DevOps/SRE roles: Deploying, operating, or extending OpenStack clouds is a high-value skill (especially with the VMware-to-OpenStack migrations happening in 2025 due to Broadcom pricing changes).
  • Contributing to open source: OpenStack is pure Python (mostly), huge codebase, real-world distributed systems problems. Great for résumé-building.
  • Kubernetes integration: Modern OpenStack deployments often run Kubernetes clusters on top (via Magnum or Cluster API providers), so the two worlds overlap a lot.

OpenStack vs. Kubernetes (the eternal question)

Aspect OpenStack Kubernetes
Primary focus Full IaaS cloud: VMs, bare metal, storage, networking Container orchestration & application lifecycle
Workload type VMs (primary), containers, bare metal Containers/pods only
Scope Builds the cloud itself Runs on top of a cloud (or bare metal)
Maturity for VMs Excellent (Nova hypervisors: KVM, VMware, Hyper-V, etc.) Limited (requires KubeVirt or similar)
Maturity for containers Good (via Magnum, Qinling, Zun) Best-in-class
Typical user Telcos, enterprises needing private clouds, HPC Almost everyone for microservices
In 2025 Strong growth in hybrid/edge, VMware migrations Dominant for apps, but often runs on OpenStack

They're complementary, not competitors. The common pattern: OpenStack provides the underlying infrastructure (Neutron networking, Cinder storage), Kubernetes runs the workloads.

Core Services (as of 2025.2 Flamingo)

OpenStack is extremely modular — there are >50 official projects, but these are the essentials most deployments use:

Service Code Name What it does Key for engineers
Identity Keystone Authentication, authorization, service catalog (RBAC, OAuth, LDAP integration) You’ll hit this first with tokens
Compute Nova VM lifecycle: scheduling, creation, resize, live-migration (supports KVM, Hyper-V, VMware, etc.) The "EC2-like" part
Networking Neutron SDN: virtual networks, routers, load balancers, FWaaS, VPNaaS (plugins: ML2, Open vSwitch, OVN, SDN controllers) Complex but powerful
Block Storage Cinder Persistent block storage for VMs (like EBS; backends: Ceph, LVM, NFS, NetApp, etc.) Volume attach/detach
Object Storage Swift Highly available S3-compatible object store (petabyte-scale) Great for backups, static assets
Image Service Glance VM image registry (upload, snapshot, format conversion) QCOW2, RAW, ISO, etc.
Dashboard Horizon Web UI (nice for demos, but most ops use CLI/API) Django-based, customizable
Orchestration Heat AWS CloudFormation-compatible templates (declarative infrastructure) Infrastructure-as-Code
Telemetry Ceilometer / Aodh / Gnocchi Metrics, alarms, billing data Monitoring integration

Other important ones:

  • Magnum: Provisions Kubernetes/ Docker Swarm/ Mesos clusters on OpenStack
  • Ironic: Bare-metal provisioning
  • Barbican: Secrets/key management
  • Designate: DNS-as-a-Service

Architecture Overview

Users → Horizon (web) / OpenStack CLI / REST APIs
        ↓ (all requests authenticated by Keystone)
        → Nova (compute) + Neutron (network) + Cinder/Glance/Swift (storage)
        ↓
Hypervisors (KVM/QEMU most common) + Ceph/LVM for storage + OVN/Open vSwitch for networking

Everything communicates over a message queue (RabbitMQ or Kafka) and uses a database (MySQL/PostgreSQL/MariaDB).

How to Get Started as a Developer/Engineer

  1. Try it locally
    DevStack (quick & dirty all-in-one): git clone https://opendev.org/openstack/devstack && ./stack.sh
    Or MicroStack / OpenStack-Ansible for something closer to production.

  2. Deploy a real cluster

    • Packaged distributions:
      • Ubuntu + OpenStack Charm (Juju) – easiest for beginners
      • Red Hat OpenStack Platform (enterprise support)
      • Canonical Charmed OpenStack
      • OpenStack-Helm (runs on Kubernetes)
    • Tools like Kolla-Ansible, OpenStack-Ansible, or TripleO for production-grade.
  3. Code & Contribute

    • 100% Python (with some Go/Rust creeping in).
    • Use Gerrit for reviews: https://review.opendev.org
    • Good first bugs: search "low-hanging-fruit" on Launchpad.
    • Join the weekly IRC meetings or the OpenInfra Slack/Discord.
  4. Learning Resources

    • Official docs: https://docs.openstack.org (start with the Install Guide or Architecture Guide)
    • Superuser blog, OpenInfra YouTube channel
    • Books: "OpenStack Operations Guide", "Learning OpenStack" (a bit dated but concepts hold)
    • Certifications: Certified OpenStack Administrator (COA) is very practical.

Pros / Cons in 2025 (from a software engineer's perspective)

Pros

  • No vendor lock-in, massive community, runs anywhere
  • Extremely customizable (you can plug in any storage/network backend)
  • Excellent for large-scale VM workloads, edge, telco NFV
  • Growing again thanks to VMware exodus and hybrid-cloud needs

Cons

  • Steep learning curve — "configuration explosion" in Neutron especially
  • Deployments used to be fragile; modern tools (charms, helm, Airship) have improved this a lot
  • Not as "sexy" as Kubernetes for pure app devs (but that's changing with K8s integration)
  • Upgrades can be painful (though SLURP releases help)

Bottom Line

If you're a software engineer working in infrastructure, DevOps, or cloud platforms, knowing OpenStack is still a solid, high-paying skill in 2025 — especially with the current wave of enterprises moving off VMware. It's not going away; it's evolving into the de-facto open alternative for private/hybrid IaaS, and it plays nicely with the Kubernetes world you probably already know.

Start with DevStack or a small Charmed OpenStack cluster this weekend — you'll spin up your own private cloud in under an hour and instantly understand why people both love and complain about it! 🚀

@MangaD
Copy link
Author

MangaD commented Nov 21, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment