Early integration testing with environs framework
Shareable scripting cross-product scenarios
Andrii Nikitin is a member of SUSE BuildOBS Team since early 2019. He is working on improving OBS infrastructure. He has production experience with C++, Go, MariaDB, MySQL, various scripting languages, helper tools, setting up test frameworks and CI integration, cross-product integration.
No video of the event yet, sorry!
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.