by Barry Jaspan
Continuous Integration (CI) is powerful approach for improving software development and release engineering. Acquia Cloud provides a turn-key CI environment for our customers web applications. One important component of the CI process is automated tested, and Acquia Cloud makes it easy for our customers to run automated tests on their sites.
Acquia Cloud is itself a software product, and we follow a CI process for developing it as well---including having extensive automated tests. However, instead of being a normal application, Acquia Cloud is the infrastructure running thousands of other people's applications. Our releases involve reconfiguring daemons and servers, possibly restarting them. Updates must be carefully choreographed to maintain high availability. Upgrading 3000+ servers "at once" is impossible, so running multiple versions simultaneously is required. Rolling back is difficult, so reliable releases are critical.
My session at PuppetConf 2012, "Continuous Integration when Infrastructure is the Product: What does 'testing infrastructure' mean?", describes how we test Acquia Cloud.