42 lines
3.0 KiB
Markdown
42 lines
3.0 KiB
Markdown
# Základy klaudových technológií - Skúška #
|
|
|
|
# Ondrej Ladomirják #
|
|
|
|
|
|
## Funkcionalita aplikácie ##
|
|
Táto aplikácia sa skladá z dvoch kontajnerov **mongodb a mongo-express** a slúži na správu NoSQL databázy **MongoDB**. Keďže práca s databázou cez príkazový riadok nie je veľmi "user-friendly", tak súčasťou je taktiež webové rozhranie pre správu databázy **Mongo-Express**, v ktorom možno vytvárať nové databázy, kolekcie, a pridávať do novovytvorených kolekcií potrebné záznamy.
|
|
|
|
|
|
## Opis použitého klaudu a služieb klaudu ##
|
|
- Na zverejnenie aplikácie bol použitý verejný klaud **Azure**, ktorý ponúka rôzne služby ako napríklad spravovanie, vývoj či hosting webových aplikácií online. Pre študentov ponúka "vstupný bonus" v podobe 100-eurového kreditu, čím ponúka možnosť využívať služby istý čas zdarma.
|
|
- Využitá bola služba **AKS (Azure Kubernetes Service)**, pomocou ktorej bol zverejnený kubernetes kluster.
|
|
|
|
## Opis odovzdaných súborov ##
|
|
* `.yaml` - Súbory vo formáte YAML slúžiace pre vytvorenie všetkých potrebných Kubernetes objektov.
|
|
* `.sh` - Shall script súbory, ktoré slúžia na prípravu (spustenie) a vymazanie aplikácie.
|
|
|
|
## Opis kubernetes objektov ##
|
|
- **Deployment**: použitý pre vytvorenie mongo-express PODu. Staraju sa o beh aplikácií. `mongo-express-deployment.yaml`
|
|
- **Service**: použitý pre vytvorenie spojenia medzi PODmi. `mongo-service.yaml` `mongo-express-service.yaml`
|
|
- **Secret**: udržiava citlivé informácie. V našom prípade meno a heslo. `mongo-secret.yaml`
|
|
- **Namespace**: slúži pre lepšie usporiadanie aplikácii, s ktorými pracujeme. Bez využitia menných priestorov by sa všetky aplikácie a objekty nachádzali v defaultnom mennom priestore. V jednom mennom priestore by sa mali nachádzať aplikácie, ktoré spolu komunikujú. `namespace.yaml`
|
|
- **Statefulset**: služi na manažovanie aplikácií, ktoré si potrebujú udržať svoj stav (stateful applications). `mongo-stateful-set.yaml`
|
|
- **PersistentVolume**: typ objektu, ktorý určuje miesto kde je možné uložiť dáta. `pv.yaml`
|
|
|
|
## Návod ako si pozrieť aplikáciu na webovom prehliadači ##
|
|
- Všetko potrebné na prípravu a spustenie aplikácie je možné vykonať príkazom `prepare-app.sh`, ktorým nasadíme aplikáciu na verejný klaud **Azure**.
|
|
- Po nasedení aplikácie je potrebné zadať príkaz `kubectl get service -n z2 mongo-express-service` kde stĺpec **EXTERNAL-IP** zobrazuje IP adresu, na ktorej aktuálne beží aplikácia. Taktiež je možné nájsť túto IP adresu na portáli Azure.
|
|
- **EXTERNAL-IP** je potrebné vložiť do vyhľadávania prehliadača spolu s portom **8081** v tvare -> `EXTERNAL-IP:8081`.
|
|
|
|
|
|
## Použité systémy, ktoré vyžadujú skripty prepare-app.sh a remove-app.sh ##
|
|
- Docker v20.10.14
|
|
- Kubernetes v1.22.5
|
|
- azure-cli v2.36.0
|
|
- kubectl v1.20.0
|
|
|
|
## Príprava aplikácie ##
|
|
sh prepare-app.sh
|
|
|
|
## Zrušenie aplikácie ##
|
|
sh remove-app.sh |