I had a debate with my team about how can I be sure the strategy I want to use
to optimize my cluster with Watcher works well. Also, how a developer can 
guarantee its 
strategy works well?

After a lot of discussions, we found a consensus:

- For the unit tests, a developer should be able to demonstrate that its 
strategy algorithm is correct,
  by mocking all data required by this algorithm (Cluster data model, metrics, 
scoring data, ...). A good 
  test coverage is required to be confident about a given strategy. If you 
implement a deterministic algorithm,
  unit tests should be able to thoroughly check the algorithm outputs.

- For the integration tests (Tempest), a developer/tester should be able to 
check that the strategy has been
correctly implemented, according to the plugin implementation documentation 
available within the Watcher
developer guide[0]. One should at least implement a Tempest scenario test that 
creates a executes a new audit
with this strategy (and related goal). Note that with tempest gate job, there 
is not a single measurement being
collected, so one should take into account such a case.

Finally, we added a new section in the Watcher documentation to promote each 
strategy. This piece of documentation
is very important, hence strategy developers should make sure they describe 
both how the strategy works and
the goal it achieves. A complete documentation, with references, will make end 
users more confident about
using it.

Feel free to comment my post :)

[0]: http://docs.openstack.org/developer/watcher/


BR,
David

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to