Techninė informacija
Techninis stakas
Infrastruktūra
- GitHub: naudojamas kodo saugojimui, artefaktų valdymui, projektų valdymui (GitHub Projects) ir automatizacijų vykdymui (GitHub Actions);
- Docker ir Docker compose: naudojami konteinerių paleidimui ir valdymui virtualiose mašinose;
- Git-crypt ir GitHub Actions Secrets: jautrių duomenų (angl. secrets) valdymui;
- Postgres su Postgis: pagrindinė duomenų bazė, skirta saugoti geoerdvinius, skaitinius duomenis, kurie naudojami moduliuose;
- MariaDB: duomenų bazė, naudojama WordPress;
- Redis: spartinančioji atmintinė (angl. cache) ir eilių valdymas;
- S3: failų saugykla (naudojama VITC teikiama paslauga);
- Caddy: atvirkštinis tarpinis žiniatinklio serveris (angl. reverse proxy);
- Better Stack Uptime: prieinamumo stebėsena;
- Sentry: klaidų ir greitaveikos stebėsena;
- Grafana, Prometheus, Loki, AlertManager: stebėsena ir žurnalo įrašų kaupimas;
- Zabbix: virtualių mašinų stebėsena;
- PostMark: elektroninių laiškų siuntimas;
- Google Analytics: svetainių lankomumo stebėsena;
- QGIS: geoerdvinių duomenų apdorojimas, peržiūra ir analizė;
- Martin: geoerdvinių vektorinių duomenų generavimas;
API (angl. Application Programming Interface)
Node.js su Moleculer sistema.
Kliento dalis
- React: visoms kliento sąsajoms;
- Vue: žemėlapių naršyklės kliento sąsajos;
- WordPress: turinio valdymo sistema;
- Medžioklės žurnalas mobilioji programėlė naudoja React-Native ir Fastlane diegimų automatizacijoms;
Virtualios mašinos
Naudojamos VITC teikiamos ir valdomos virtualios mašinos.
- APP-BIIP: veikia bandomosios aplinkos (atitinkamai Development ir Staging), kurias sudaro tiek BĮIP moduliai, tiek tų aplinkų duomenų bazės;
- PROD-BIIP: šioje virtualioje mašinoje veikia gamybinė aplinka su visais BĮIP moduliais;
- BU-BIIP: šioje virtualioje mašinoje testuojamos ir saugomos BU-BIIP mašinos duomenų bazių (PostgresSQL ir MariaDB) atsarginės kopijos;
- INFRA-BIIP: veikia įvairūs BĮIP infrastruktūriniai įrankiai, tokie kaip Sentry, GitHub self-hosted agentas;
- BACKUP-BIIP: ši virtuali mašina naudojama atsarginėms kopijoms, pvz., duomenų bazių;
Diegimo procesas
BĮIP modulių diegimai yra automatizuoti naudojant GitHub actions.
Diegimo žingsniai
--- title: BĮIP diegimo procesas --- flowchart TD subgraph app1["BĮIP modulio dalis 1"] a1["Automatinis testavimas"] --> a2["Docker image paruošimas"] end subgraph app2["BĮIP modulio dalis 2"] b1["Automatinis testavimas"] --> b2["Docker image paruošimas"] end subgraph infra["Infrastruktūros repozitorija"] i1["Aplinkos diegimas"] end app1 --> infra app2 --> infra
- Automatinis testavimas:
- BĮIP projekto dalis automatiškai testuojama naudojant GitHub Actions (pvz., automatiniai testai, statinė kodo analizė su CodeQL, viešai žinomus pažeidžiamumų analizė);
- Docker image paruošimas:
- Naudojant : Reusable Workflows paruošiamas Docker image;
- Docker image patalpinamas ghcr.io registre.
- Aplinkos diegimas:
- Centrinėje BĮIP infrastruktūros konfigūracijos repozitorijoje, naudojant Docker Compose, paleidžiama atnaujinta BĮIP projekto dalis atitinkamoje virtualioje mašinoje;
- Centrinė BĮIP infrastruktūros konfigūracijos repozitorija remiasi GitOps praktikomis;