Igniters, Let me present a framework, we developed, that allows automating Apache Ignite testing on a real cluster. The framework was initially presented at Ignite Summit.
In brief, The framework allows automating operations with any applications on a real cluster using ssh in a form of a python test. Features: - Ignite nodes can be started/stopped on a Docker or a real cluster with any custom configuration - Any AI version is supported (released or compiled from sources) - Ignite forks are also supported «out of the box» - Any other application execution is also possible, eg. we implemented starters for Spark and Zookeeper - Cluster can be managed using the control.sh, we made this a part of the test API - Custom Java applications can be executed remotely with/without a built-in Ignite node or a Thin client - Any ssh command can be executed remotely, and the result will be available locally (at the python test) - Network can be broken by iptables change to check communication issues - Tests can be executed in parallel when cluster size bigger than tests requirements As a result, seems, we may automate any testing scenario we can even imagine. Framework based on Ducktape [1] library from Kafka team, that's why we called it Ducktests. The Ducktests were developed during work on IEP-56 [2] and already were used during the work on IEP-45 [3]. IEP-45 measurement results examples [4.1] [4.2] were demonstrated at the HighLoad conference last month. Code available at PR-9117 [5] and ready to be reviewed/merged. Feel free to ask questions or make proposals. [1] https://ducktape-docs.readthedocs.io/en/latest/index.html [2] https://cwiki.apache.org/confluence/display/IGNITE/IEP-56%3A+Distributed+environment+tests [3] https://cwiki.apache.org/confluence/display/IGNITE/IEP-45%3A+Crash+Recovery+Speed-Up [4.1] https://youtu.be/UZsvCNjbkww?t=1065 (in Russian) [4.2] https://youtu.be/UZsvCNjbkww?t=1609 (in Russian) [5] https://github.com/apache/ignite/pull/9117