conference logo

Playlist "openSUSE Conference 2021"

Early integration testing with environs framework

Andrii Nikitin

Do you know difference between starting mariadb vs postgres server as a regular user? Or apache vs nginx? Or maybe want to know specifics of working example of starting rsync server?

There is no difference and no specifics - just use generated start / status / stop scripts. And there is more: (spawn as many services as needed(\*), configure ssl for cluster, build services from source, ...) - without affecting your system(*).

environs framework suggests a universal approach for managing various services by generating bash wrappers, with following benefits:

- object oriented approach - it hides internal specifics of service handling and allows an easy way to review and tweak them;
- brief scripts for complex scenarios in complex topologies, without privileged access to the system;
- easy to compare behavior of verious topologies;
- demonstrate "how-to" behavior, share reproducible cross-product scripted scenarios in bug reports or TDD / BDD;
- no OS flavor limit - run everywhere where shell is(*);
- no extra dependencies - run in cloud, container, VM, CI or local machine.

The main goal behind environs framework it to cover early integration testing and provide a way to script and share cross-product behavioral scenarios without root access to the system. So far the framework includes scripting possibility for postgresql, apache, nginx, rsync , mariadb(*), openQA, MirrorBrain, MirrorCache, zypper.

Do you know difference between starting mariadb vs postgres server as a regular user? Or apache vs nginx? Or maybe want to know specifics of working example of starting rsync server?

There is no difference and no specifics - just use generated start / status / stop scripts. And there is more: (spawn as many services as needed(\*), configure ssl for cluster, build services from source, ...) - without affecting your system(*).

environs framework suggests a universal approach for managing various services by generating bash wrappers, with following benefits:

- object oriented approach - it hides internal specifics of service handling and allows an easy way to review and tweak them;
- brief scripts for complex scenarios in complex topologies, without privileged access to the system;
- easy to compare behavior of verious topologies;
- demonstrate "how-to" behavior, share reproducible cross-product scripted scenarios in bug reports or TDD / BDD;
- no OS flavor limit - run everywhere where shell is(*);
- no extra dependencies - run in cloud, container, VM, CI or local machine.

The main goal behind environs framework it to cover early integration testing and provide a way to script and share cross-product behavioral scenarios without root access to the system. So far the framework includes scripting possibility for postgresql, apache, nginx, rsync , mariadb(*), openQA, MirrorBrain, MirrorCache, zypper.