How to Create Dev and QA Environments in the Cloud
If your team is testing changes directly on production servers, you are one bad deploy away from real users experiencing a broken application. Separate dev and QA environments are not a luxury for large enterprises. They are a baseline practice for any team that ships software with confidence.
This guide explains what dev and QA environments are, why they matter, and the three most practical ways to create them on InMotion Cloud.
Why Separate Environments Matter
Production is where real users live. Any bug that reaches production is a bug your customers experience. Data corruption, broken checkout flows, failed API integrations — problems like these cost more to fix after the fact than they do to catch during testing.
Dev and QA environments give your team a safe place to break things. Developers build and experiment in a dev environment that mirrors production but carries no user risk. QA teams validate releases in a staging environment that replicates the production configuration as closely as possible. Only code that passes QA gets promoted to production.
The result is a shorter feedback loop, fewer emergency rollbacks, and a team that ships with confidence instead of anxiety.
Method 1: Snapshots
Snapshots are the fastest way to clone a production-like environment. With InMotion Cloud, you can capture the full state of a running instance (virtual machine) in minutes and launch it as a new server with a different name and IP address.
This approach requires no scripting and no DevOps expertise. You point, click, and have a working copy of your environment. It is ideal for small teams who need a QA environment quickly, or for developers who want a personal sandbox that mirrors staging without the overhead of automation.
The trade-off is manual effort at scale. Each time your production configuration changes, you need to retake the snapshot to keep the environment current. For teams with a handful of servers and infrequent infrastructure changes, this overhead is entirely manageable.
See our step-by-step guide to creating QA environments using OpenStack snapshots.
Method 2: Terraform
Terraform is an infrastructure-as-code (IaC) tool that lets you define your entire environment in configuration files. Instead of clicking through a dashboard, you write a .tf file that describes your servers, networks, storage volumes, and firewall rules. Running terraform apply provisions the exact environment those files describe.
The key advantage is repeatability. A Terraform configuration checked into version control is a single source of truth for your infrastructure. Any team member can spin up an identical dev or QA environment with one command. When you update the configuration to reflect a production change, every downstream environment can be recreated to match.
InMotion Cloud supports Terraform via the OpenStack provider, which means the same IaC workflows used on larger public clouds apply here. Teams already using Terraform elsewhere can adopt InMotion Cloud environments into their existing automation without rebuilding from scratch.
Method 3: Containers and Kubernetes
Containers package your application code along with its dependencies into a portable, lightweight unit. Kubernetes orchestrates those containers across a cluster, handling scheduling, scaling, and networking automatically. Together, they form the foundation of modern CI/CD pipelines.
Container-based environments are defined entirely in code. A Dockerfile describes your application runtime. A Kubernetes manifest defines how that application runs at scale. Spinning up a new dev or QA environment is a matter of deploying those manifests to a dedicated namespace, which takes seconds rather than minutes.
This approach is best suited for teams running micro-services architectures or organizations with multiple developers who each need isolated environments simultaneously. InMotion Cloud's Kubernetes support means your containerized workloads can run on infrastructure you control, without the vendor lock-in and pricing unpredictability of hyperscaler managed Kubernetes services.
Which Approach Is Right for You?
The right method depends on your team size, technical maturity, and how frequently your infrastructure changes.
- Snapshots: Best for small teams and quick clones. Low setup complexity. Requires manual updates when your configuration changes.
- Terraform: Best for teams scaling beyond two or three servers. Medium complexity. Highly repeatable across environments.
- Containers / Kubernetes: Best for micro-services architectures and CI/CD pipelines. Higher upfront complexity. Very high repeatability at scale.
If you are just getting started, snapshots give you an isolated QA environment today with minimal effort. You can always migrate to Terraform or containers later as your team and infrastructure grow.
If you already manage infrastructure as code, Terraform on InMotion Cloud is the natural fit. Your environments will be consistent, auditable, and easy to recreate on demand.
If you run micro-services or have a dedicated DevOps team, Kubernetes gives you the most powerful and scalable foundation for dev and QA workflows.
Get Started with Snapshots
InMotion Cloud supports all three approaches through its OpenStack-based infrastructure. You are not locked into a single method, and you can adopt more advanced approaches incrementally as your team's needs grow.
The fastest path to your first QA environment is a snapshot. See our step-by-step guide to creating QA environments using OpenStack snapshots and have a working clone running in minutes.
