Gbif Spain Production environment - AtlasOfLivingAustralia/documentation GitHub Wiki
GBIF.ES Production infrastructure
This document tries to document the IT infrastructure of the Spanish Atlas accessible at datos.gbif.es.
Our main infrastructure is hosted in the CSIC-IFCA datacenter.
You can get some similar inventories from https://generator.l-a.site/5332d9ba-97d5-4940-b262-c29c1703968d (press Hamburger top menu > Make a copy > Edit the copy to your needs).
Components
| URL | Component |
|---|---|
| datos.gbif.es | main page |
| colecciones.gbif.es | collectory |
| registros.gbif.es | biocache-hub |
| registros-ws.gbif.es | biocache-service |
| biocaches-store-0.gbif.es | biocache-cli, cassandra, jenkins |
| biocaches-store-1.gbif.es | cassandra |
| index.gbif.es | solr |
| espacial.gbif.es | spatial, geoserver, layer-service |
| regiones.gbif.es | regions |
| listas.gbif.es | species lists |
| especies.gbif.es | species |
| especies-ws.gbif.es | species service |
| logger.gbif.es | logger |
| imagenes.gbif.es | images |
| auth.gbif.es | Auth CAS service |
| demo.gbif.es | demo site |
Instances and components diagram

Branding
Our custom branding is in this github repo.
Backup system
We do the backups using backuppc software. It's not secure to backup database directories where the databases are running. To avoid this, be use ninjabackup to backup our mysql and postgres databases periodically. Later backupppc backup the dumps stored by ninjabackup in /var/backups.

Some storage stats:

Monitoring
All our services are monitorized using icinga externally.

We also use mmonit internally to monitor that the basic services (ssh, apache2, tomcat, mysql, etc) are running correctly and restart then if not.
We use ELK (Elasticsearch, Logstash/Filebeat & Kibana) for logs agregation, indexing, and analytics. We don't store the logs for more than a week. This is very useful for us to do bugs and error hunting.

We also use netdata to analyze metrics of resources usage and other data (CPU, RAM, disks, network, monit status, etc). Useful for tunning resources, diagnostic, etc.

We collect js errors in browser clients using sentry. This can be useful also for collect java exceptions & errors but ALA software should be patched for that.

Our servers are updated automatically via the debian package unattended-upgrades.
All this software is managed via ansible using an internal ansible extras repo (TODO: make this repo more generic and share it with other portals).
Demo & test site
We also maintain a demo test site in https://demo.gbif.es.