One might regard SBDI to consist primarily of 3 tiers:
- Computation Platform (hardware)
- Deployment Platform (KVM:s and Ansbile scripts)
- Applications (Use of 'Docker Swarm Services')
The Computation Platform consists of; hardware, networking, processors, operating system, hypervisor etc.
This current repository contains mainly the second tier of SBDI 2.0 deployment.
- This second tier is in essence a set of KVM:s
- and a set of Ansible scripts that together provide the following services:
- An automated setup of the deployment platform (by the Ansible scripts). this approach makes it possible to set up identical deployments environments; production, staging and test.
- Resource configuration. All resources allocated to the deployment platform, like type of machine, disk sizes etc is configured in one file.
- Automatic deployment of the third tier of Docker Swarm Services (by Ansible scripts).
- Running a set of Docker Swarm Services.
- A framework for configuring, naming and grouping the SBDI Docker Swarm Services into convenient packages (referred to as “docker apps”).
- Tools for maintenance and supervision of the docker Swarm Services (i.e. starting, stopping, overviewing, monitoring health and resources used etc).
- Backup and restore of the entire deployment of Docker Swarm Services (data and configuration).
- Off site backup safekeeping.
- The possibility to take the backup of one deployment, i.e. Docker Swarm Services including data and configuration, and restoring it on another. This is typically useful when loading a staging environment with production data or moving the SBDI to another location altogether.
- Security and isolation, i.e. ensuring that the any external party may not intrude or access any data and services in an undesired way.
- Redundancy that will ensure that if a virtual machine crashes ore a data volume is corrupted the system will run on with zero downtime. In case the computation platform consists of physical servers any one of those servers should be allowed to fail or be shut down without downtime.
- Automated software upgrade of the Deployment platform without downtime.
- Centralized logging for analysis of errors and intrusions.
- Automated supervision of the platform and the Docker Swarm Services. The supervision system will issue alarms when problems or errors are detected.
SBDI Deployment Platform automated maintenance and setup
In the ansible subdirectory all configuration and scripts for seting up an SBDI 2.0 deployemnt are found. Currently documention is ongoing.
In the microstack directory we find a set of scripts for setting up a development Computaion Platform in microstack.
Note: This git repo contains other SBDI git repos as submodules
To clone; git clone --recurse-submodules git@github.com:biodiversitydata-se/automation.git