Continuous Integration, Delivery, and Regression
Here at Ampere we fully believe in full automation and continuous best practices for all of our development activities. To meet our goals of a fully automated software environment we built a system called CIDR: Continuous Integration, Delivery, and Regression.
CIDR is a framework composed of industry-best tools sitting on top of a robust database and analysis layer. This is all built using Python, Django, Postgres, serverless cloud environments, and more. We use CIDR to ensure that all of our systems and software meet the rigorous quality needs of the modern data centre.
Our CIDR data analysis tools are purpose-built to handle both functional and performance tests, giving us a complete picture of how our software performs on real hardware.
The generalized workflow of a CIDR run can be summarized in these stages:
- Reserve a system from our pool of bare-metal hardware to ensure no overlapping reservations
- (if applicable) Flash a specific version of firmware onto the system
- (if applicable) Verify UEFI/BIOS settings to ensure consistent run parameters
- Install a fresh operating system using applicable automated install methods
- Install CIDR-CLI and all dependencies via the internal PyPi repository
- Run applicable test set composed of both performance and functional tests
- Upload results to our data processor for cataloguing and storage
- Analyze system hardware and software, collecting more than 15,000 data points about the system under test
- Upload system configuration details to our core database
- Release the system back into the pool of available systems
- Analyze results and send notifications if any anomalies appear
- Leverage the core dataset in applications like this solutions portal, reports, or a number of other scenarios
Results and data that you see in the CI/CD section of this portal are all collected using CIDR infrastructure with Ampere bare-metal at its core.