Projekt

Obecné

Profil

Akce

Deployment

Pro deployment aplikace je využíváno Kubernetes. Byl pro nás vytvořen namespace cnat.
Adresa Kuberenes Dashboardu: https://dashboard.kube.zcu.cz/#/overview?namespace=cnat
Přístup nejspíš jenom pro uživatele správce deploymentu (anonymní já :D)

Prerekvizity

Konfigurační soubory pro deployment a service databáze, aplikace a frontendu jsou uloženy v repozitory

Frontend

V nginx configu pro frontend musí být vytvořeno přesměrování volání /api na backend server
Requesty na backend se posílají na base adresu /api - nastaveno ve složce frontend/src/ v souboru .env (pro deployment musí být nastaveno REACT_APP_DEV_ENV=false)
Dockerfile pro frontend

Backend

Před buildem docker image je potřeba spustit build aplikace přes maven příkazem mvn clean install
Dockerfile pro backend

Kroky pro deploy aplikace:

Build docker image

Nejdříve je potřeba sestavit docker image pro backend a frontend. Stačí spustit příkaz docker-compose up ve složce backend. Před buildem je ještě potřeba smazat lokální docker image nebo povýšit verzi v souboru backend/docker-compose.yml.
Následně image nahrát do docker hubu - příkaz docker push a název image, tj. schwobik/frontend-app:<verze> nebo schwobik/backend-app:<verze>. Verze musí odpovídat verzi uvedené v docker-compose.yaml ve složce backend.

Vytvoření konfiguračních souborů pro Kubernetes

Konfigurační soubory jsou uloženy v repozitáři. Pokud je potřeba nějaká změna, upravte patřičně soubor_backend/docker-compose.yml_ a pokračujte následujícím návodem, nebo soubory upravte ručně.

Soubory se vytvoří příkazem kompose convert , pokud je stažen kompose (https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/)
Soubor frontend-service.yaml je třeba ještě upravit, je třeba přidat řádku type: LoadBalancer do elementu specs, jinak by Service nebyla přístupná z venku.

Deployment

Dále stačí nahrát soubory do Kubernetes Clusteru.

Zálohování aplikace

Pro databázi je vytvořen v Kubernetes Physical Volume Claim (PVC) db-data, který zajišťuje uchování dat databáze i v případě ukončení či spadnutí Podu s databází.
Data z databáze jsou navíc periodicky zálohována na PVC db-data-backup na cestu /var/backups/ pomocí Cron Jobu, který je načasován na běh jednou týdně. K záloze je použit nástroj pg_dump.

Aktualizováno uživatelem Michal Schwob před více než 2 roky(ů) · 12 revizí