The following sections list the location configuration options to be used when testing Clocker releases. All of these must be combined, to give 2 x 6 x 3 or 36 separate configurations. The default setup is a remote Ubuntu server running Brooklyn, with Clocker deployed to Ubuntu 14.04 VMs in Softlayer London. Results are to be recorded in a spreadsheet and successful completion of all configurations is required for a release GO or NO-GO decision, with performance to be included as a success criterion one a baseline has been established.
Sign-off on a release must be by both Clocker Architect and Lead Engineer @grkvlt and Cloudsoft VP Engineering @aledsage.
- Local OSX 10.10 Laptop
- Remote Ubuntu 14.04 VM
Minimum specifications for the Brooklyn server.
- Java 1.7.0 JVM
- 8 GiB RAM
- 4 core 2 GHz CPU
Other Brooklyn server configurations may be tested if time and resources are available
- Softlayer London and San Jose
- Amazon EC2 Dublin and California
- Google Compute Engine
- HP Helion
- CloudStack
- Pre-provisioned Linux servers
- Ubuntu 12.04
- Ubuntu 14.04
- CentOS 6.5
The VM or servers used must have the following minimum specification; available on EC2 as a c3.xlarge instance type.
- 8 GiB RAM
- 4 core 2.0 GHz CPU
All automated unit tests must pass, giving a green build on the Travis CI build server. An integration test suite should be configured and executed for all tagged release branches, as a condition for creating the release page on GitHub.
NOTE The current test coverage is extremely low, and must be greatly increased for this to be of value.
For each of the test configurations, the following blueprints (the YAML files will be made available seperately) should be deployed and validated, and the list of features should also be exercised. To check the featuire list, a Riak cluster should be used on its own without a web application.
- Tomcat Webapp
- Riak Cluster with JBoss and Nginx
- Couchbase Cluster with Pillowfight and Scaling
- Node.JS and Redis TODO app
- Cassandra Cluster
- Push Diffusion and DNS server
- MySQL from Dockerfile
- Headroom scaling
- Placement strategies
- Console
- Application shutdown
- Rebind and persistence
Measure CPU and RAM usage per container entity for a simple Java application entity with JMX sensors. Use profiling tools and time application startup and scaling operations. Full performance testing should also include a determination of a Brooklyn baseline standard, with which comparisions can be made.