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

Reply via email to