Operations 12 min read

Noah: A Test Environment Governance Platform for Efficient Development and Testing

Noah is a test environment governance platform that uses infrastructure‑as‑code principles, resource pooling, soft routing, and containerization to automate the creation, management, and teardown of complex testing environments, dramatically improving developer productivity and reducing operational costs.

Qunar Tech Salon
Qunar Tech Salon
Qunar Tech Salon
Noah: A Test Environment Governance Platform for Efficient Development and Testing

1. What is Noah

Noah is a test environment governance platform designed with infrastructure‑as‑code principles, allowing users to define environment templates and quickly build and deliver required test environments, thereby reducing the pain of manual DEV/QA environment setup.

2. Background

In 2014 Qunar faced rapid growth with over 5,000 daily deployments; building and maintaining test environments was costly and slowed product iteration. Key pain points were complex system dependencies, lengthy approval processes, and high maintenance costs.

3. How Noah solves environment challenges

Noah defines an environment as a collection of proxy, application, middleware, cache, and database. It offers one‑click creation, immediate teardown, rapid delivery via templated configurations, resource pooling, parallel construction, and environment self‑governance (auto‑cleanup, VM drift handling, fault isolation).

4. Environment build workflow

Noah abstracts the build process as a workflow with four phases—resource lock, delivery, network initialization, and validation—implemented as a DAG.

5. System architecture

The core orchestration engine, inspired by Kubernetes CRDs, treats each environment as a task and drives component delivery via a state machine.

6. Core feature – Soft Routing

Soft routing reuses application services across environments by adding an environment‑id to requests, enabling service‑level virtualization and reducing resource consumption. The routing flow involves recording the ID on the host, reporting by services, binding by clients, propagation via Qtrace, and routing decisions based on the ID.

7. Core feature – Baseline Library

A baseline MySQL library automatically creates test databases, syncs schema changes, and can execute custom SQL scripts, with backups stored on low‑cost MFS storage.

8. Database containerization

Containerizing MySQL saves ~80 % of machine resources, reduces provisioning time from minutes to seconds, and eases bandwidth pressure. Scheduling uses Consul agents to report host load and selects the highest‑scoring host for container launch.

9. KVM resource pooling

KVM pools pre‑create VMs to trade space for time, with a two‑level scheduling: OpenStack selects hosts based on tags and weight, then Noah distributes environment VMs across hosts using a round‑robin‑like algorithm to improve fault tolerance.

10. Middleware management

Noah provides fast, flexible installation of Tomcat, Elasticsearch, MQ, JDK, etc., via Salt for configuration management.

11. Future directions

Automated analysis and self‑healing of common build issues.

Support for more test scenarios such as unit, API, and performance testing.

Improved observability to narrow down and locate environment problems.

automationDevOpsContainerizationTest EnvironmentKVMInfrastructure as Coderesource pooling
Qunar Tech Salon
Written by

Qunar Tech Salon

Qunar Tech Salon is a learning and exchange platform for Qunar engineers and industry peers. We share cutting-edge technology trends and topics, providing a free platform for mid-to-senior technical professionals to exchange and learn.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.