Skip to main content
InMotion Cloud Logo
Back to glossary

OpenStack

OpenStack is an open-source cloud computing platform that manages compute, storage, and networking resources across a datacenter through a unified set of APIs.

6 min read

What is OpenStack?

OpenStack is an open-source cloud computing platform that manages compute, storage, and networking resources across a datacenter through a unified set of APIs. It is not a single program but a collection of interoperable services, each responsible for one part of cloud infrastructure, such as Nova (compute), Neutron (networking), and Cinder (block storage).

Organizations use OpenStack to build private and public clouds on their own hardware instead of relying entirely on a single proprietary vendor. The OpenInfra Foundation coordinates development, and hundreds of companies contribute code, which keeps the platform vendor-neutral and extensible.

Why OpenStack Exists

Before OpenStack, organizations that wanted cloud-style flexibility had two options: adopt a public cloud provider and accept its pricing and lock-in, or build custom virtualization tooling in-house. Neither option gave datacenter operators a standardized, open way to offer self-service compute, storage, and networking on their own infrastructure.

OpenStack solves this by providing a common, API-driven framework that any operator can deploy on commodity hardware. Instead of writing custom scripts to provision virtual machines (instances) or manage storage volumes, teams call standardized OpenStack APIs that behave consistently across deployments.

Because OpenStack is open-source, no single vendor controls its roadmap or pricing. This lets hosting providers and enterprises run cloud infrastructure that matches public cloud convenience without surrendering control over the underlying hardware.

What Does OpenStack Actually Do?

  • Provisions and manages virtual machines (instances) through the Nova compute service
  • Creates isolated virtual networks, subnets, routers, and security groups through Neutron
  • Allocates and attaches persistent block storage volumes through Cinder
  • Stores and distributes object storage data (files, backups, media) through Swift
  • Manages disk images used to boot instances through Glance
  • Authenticates users and enforces role-based access control through Keystone
  • Exposes every capability through REST APIs so tools like Terraform and Ansible can automate provisioning

When Would I Use OpenStack?

Use OpenStack when you need private cloud infrastructure that behaves like a public cloud but runs on hardware you control. This matters for organizations with data residency, compliance, or latency requirements that rule out a shared public cloud.

Use OpenStack when you need multi-tenant infrastructure. A hosting provider can give each customer an isolated project (a logical container for resources) with its own instances, networks, and storage quotas, all managed through the same underlying platform.

Use OpenStack when you want to avoid single-vendor lock-in. Because the APIs are open and implemented by many providers, workloads built against OpenStack are more portable between operators than workloads tied to a single proprietary cloud API.

Use OpenStack when you need to automate infrastructure at scale. Teams running infrastructure-as-code pipelines can call OpenStack APIs directly to provision dozens of instances and networks in a single automated run.

When Would I NOT Use OpenStack?

Avoid OpenStack for small, simple workloads. A single website or small application often runs more cheaply and with less operational overhead on a managed VPS or a public cloud instance than on a full OpenStack deployment.

Avoid running OpenStack yourself if your team lacks the operational expertise to maintain it. OpenStack has many interdependent services, and operating them reliably requires dedicated systems engineering effort, whether in-house or through a managed provider.

Do not choose OpenStack expecting it to be a drop-in replacement for every public cloud service. OpenStack covers compute, storage, networking, and identity well, but some public cloud managed services (such as fully managed databases or serverless functions) require separate tooling on top of OpenStack.

Avoid OpenStack when your workload needs a specific proprietary cloud feature that has no OpenStack equivalent. In that case, using the native public cloud service directly is simpler than building a workaround.

Real-World Example

Company A runs a SaaS platform and wants predictable costs and control over where customer data physically resides. It builds its infrastructure on OpenStack, deployed across its own datacenter hardware and managed by InMotion Cloud.

The engineering team creates a separate project (isolated resource container) for each customer tier, with Nova provisioning instances, Neutron isolating each customer's network traffic, and Cinder providing persistent volumes for databases. Keystone enforces role-based access so only authorized engineers can modify production networks.

When Company A needs to scale up during a product launch, its deployment pipeline calls the OpenStack APIs directly to provision additional instances and attach storage volumes automatically, without manual intervention from the operations team.

Frequently Asked Questions

Is OpenStack the same as a public cloud like AWS or Azure?

No. OpenStack is software you or a provider deploys on your own hardware, while AWS and Azure are managed public cloud services you rent. If you want AWS-style convenience without managing OpenStack yourself, use a provider that manages OpenStack for you.

Do I need to understand every OpenStack service to use it?

No. Most users interact with a handful of services, such as Nova for instances and Neutron for networking, through the Horizon Dashboard (web interface) or a CLI. Start with the services relevant to your workload and expand as needed.

Can OpenStack run on a small number of servers?

Yes, but it has a real hardware and operational floor. Small deployments still need dedicated controller and compute nodes. For a single application, a managed cloud instance is usually more cost-effective than standing up OpenStack.

What happens if an OpenStack service fails?

Impact depends on which service fails. If Nova fails, you cannot launch or modify instances, but running instances stay up. If Keystone fails, authentication for API calls stops working. Use a managed OpenStack provider with monitoring and redundancy to minimize this risk.

How is OpenStack different from Kubernetes?

OpenStack manages infrastructure-level resources such as virtual machines, networks, and storage volumes. Kubernetes manages containerized application workloads on top of that infrastructure. Many organizations run Kubernetes on top of OpenStack-provisioned instances.

Summary

  • OpenStack is an open-source cloud platform made up of interoperable services for compute, networking, storage, and identity
  • It lets organizations run private cloud infrastructure with public-cloud-style self-service and automation
  • Core services include Nova, Neutron, Cinder, Swift, Glance, and Keystone
  • It suits multi-tenant, compliance-sensitive, or automation-heavy workloads more than small single-application deployments
  • Running OpenStack well requires real operational expertise, whether in-house or through a managed provider

Related Terms

  • Nova: The OpenStack compute service, such as launching and managing virtual machine instances.
  • Neutron: The OpenStack networking service, such as creating isolated subnets and security groups for a project.
  • Cinder: The OpenStack block storage service, such as attaching a persistent volume to an instance for database storage.
  • Keystone: The OpenStack identity service, such as authenticating API requests and enforcing role-based access control.
  • Hypervisor: The software layer that creates and runs virtual machines, such as the underlying technology Nova uses to launch instances.