The closing episode weaves all the material into a single case study: designing an enterprise private cloud architecture from the Kolla-Ansible deployment engine, the Nova compute layer with Ceph, Neutron networking with VLAN, VXLAN, DVR, and Octavia, Ceph unified storage with Barbican, to observability and security, ending with a production readiness checklist.

This is the peak of the Learn OpenStack journey. Over 20 episodes, you learned every component separately — now it's time to weave everything into a single complete architecture. Episode 20 is the case study: designing a production-grade enterprise private cloud that combines all the decisions from episodes 0 to 19 into one coherent design.
We'll design an architecture for a real scenario: a company building a private cloud for hundreds of VMs across various teams. This design isn't an empty template — every layer uses the technology you've learned, with defensible reasoning. At the end, there's a production readiness checklist you can use as a guide for a real deployment.
Before choosing technologies, set the principles that steer every decision:
[Deployment Engine] Kolla-Ansible, 3 Controllers HA
[Compute Layer] Nova KVM + Glance on Ceph RBD + Cloud-Init
[Networking Layer] Neutron ML2/OVS + VLAN + VXLAN + DVR + Octavia
[Storage Layer] Ceph (RBD, RGW, CephFS) + Barbican
[Observability] Prometheus + Grafana + ELK + AlertmanagerThe five layers above are the framework of our architecture. Each layer will be filled with the specific decisions below.
The architecture starts at the deployment foundation. Three controller nodes are arranged in an HA cluster — Keystone, Glance API, Nova API, Neutron Server, RabbitMQ, MariaDB/Galera, and Horizon run as containers on all three, behind HAProxy with a virtual IP.
kolla-ansible -i multinode bootstrap-servers
kolla-ansible -i multinode prechecks
kolla-ansible -i multinode deploy
kolla-ansible -i multinode post-deploykolla-ansible -i multinode deploy is the gateway to the whole cluster. N compute nodes are added to the [compute] group in the inventory; storage nodes go into the [storage] group. All services and configuration are documented in globals.yml and version-controlled.
Compute nodes run nova-compute with the KVM/QEMU hypervisor. Glance images are stored on Ceph RBD so cloning into an instance disk is instant. Every instance is born with cloud-init: keypair from keystone, automation user data, and a floating IP from the external pool.
openstack server create --image ubuntu-noble --flavor m2.medium \
--network net-aplikasi --key-name prod-key --user-data bootstrap.sh \
app-web-01The openstack server create command you first wrote in episode 4 now runs on the full architecture: the scheduler picks a compute node with enough resources, Ceph provides the disk, and cloud-init prepares the hostname and configuration — all without manual intervention.
Networking uses ML2 with Open vSwitch. The complete combination:
openstack network list -f value -c name -c "provider:network_type"
openstack loadbalancer list -c name -c provisioning_statusThe output of openstack network list shows the vlan type for external and vxlan for tenant networks — the combination chosen in episode 15. Floating IPs are attached to the Octavia VIP, and security groups guard every instance's door.
One Ceph cluster serves every need: RBD for Cinder, Glance, and Nova disks, RGW for S3-API object storage, and CephFS for Manila shares. Barbican manages the volume encryption keys, so data at rest is safe even from physical access.
ceph -s
openstack volume service list
openstack secret listThe output of ceph -s must be HEALTH_OK, openstack volume service list shows the backends up, and openstack secret list shows the stored encryption keys — three signals that the storage layer is healthy.
The final layer keeps everything healthy and secure:
policy.yaml tightened per service.Deploy (Kolla-Ansible) → Monitor (Prometheus/Grafana)
→ Alert (Alertmanager) → Diagnose (ELK logs) → Maintain (upgrade)Use this list to assess readiness before the first instance is served:
HEALTH_OK with replication and pool backup configured.After go-live, these operational routines should run on a schedule:
ceph -s, service status, and incoming alerts.kolla-ansible -i multinode reconfigure and upgrade are the two commands that accompany this whole cycle — from configuration adjustments to version migration.
Episode 20 closes the series by weaving all the material into one production-grade architecture case study: the Kolla-Ansible deployment engine with HA controllers, the Nova KVM compute layer with Glance on Ceph RBD and cloud-init, the Neutron ML2/OVS networking layer with VLAN, VXLAN, DVR, and Octavia, the Ceph unified storage layer with Barbican, and comprehensive observability and security — completed with a production readiness checklist.
Key takeaways:
Congratulations, you've completed Learn OpenStack! From episode 0 preparing the DevStack lab to a complete enterprise architecture, you now have a full roadmap for building and operating a private cloud with OpenStack. The next step is practice: build your lab, repeat every command, then move on to a real Kolla-Ansible deployment. Don't stop here — the production-grade world awaits you!