zkt26/sk1
2026-05-13 21:49:47 +02:00
..
.github/workflows main commit 2026-05-13 21:49:47 +02:00
summarizer main commit 2026-05-13 21:49:47 +02:00
terraform main commit 2026-05-13 21:49:47 +02:00
web main commit 2026-05-13 21:49:47 +02:00
.gitignore main commit 2026-05-13 21:49:47 +02:00
prepare-app.sh main commit 2026-05-13 21:49:47 +02:00
README.md main commit 2026-05-13 21:49:47 +02:00
remove-app.sh main commit 2026-05-13 21:49:47 +02:00

Read-it-later AI Summarizer

1. Opis aplikácie

Read-it-later je moderná mikroslužbová webová aplikácia, ktorá slúži ako inteligentný archív článkov. Používateľ vloží URL adresu dlhého článku, aplikácia ho automaticky stiahne a pomocou modelu umelej inteligencie (AI) vygeneruje jeho stručné zhrnutie. Výsledok si používateľ môže neskôr kedykoľvek prečítať v responzívnom webovom rozhraní.

2. Architektúra a využité Cloud technológie

Aplikácia je nasadená v prostredí verejného cloudu AWS (Amazon Web Services) a využíva plne automatizovaný prístup Infrastructure as Code (IaC) cez Terraform.

  • Virtual Private Cloud (VPC): Izolovaná sieť s nakonfigurovanými podsúbormi a bezpečnostnými skupinami pre riadenie sieťovej prevádzky.
  • EC2 (Elastic Compute Cloud) & Docker: Dva dedikované virtuálne servery bežiace na OS Amazon Linux 2023. Jeden zabezpečuje web (Nginx a FastAPI) a druhý slúži pre výpočetne náročnejší AI model. Samotné nasadenie beží vo vnútri Docker kontajnerov orchestráciou cez Docker Compose.
  • Amazon RDS pre PostgreSQL: Plne spravovaná relačná databáza, do ktorej sa ukladajú používateľské záznamy, originálne texty a AI zhrnutia. Trvalé zväzky (Persistent Storage - EBS a RDS Storage) sú šifrované a zabezpečujú trvalé uchovanie dát aj po reštarte služieb.
  • AWS Route 53: Služba DNS, ktorá automaticky spravuje doménové záznamy a prekladá doménu na verejnú IP adresu (Elastic IP) hlavného servera.
  • SSL a HTTPS: Smerovanie z verejného internetu je zabezpečené certifikátmi od Let's Encrypt, pričom Nginx slúži ako reverzný proxy server (jonasal/nginx-certbot).

3. Analýza nákladov (1 rok)

Odhadovaný prevádzkový profil: 1000 používateľov za deň a maximálna veľkosť databázy 50 GB. Keďže prevádzkujeme model umelej inteligencie, je vyžadovaný aspoň jeden výkonnejší stroj (t3.medium). Kalkulácia nezahŕňa doménový poplatok u registrátora tretej strany.

Služba AWS Typ / Špecifikácia Fakturačný interval Cena za mesiac Cena za 1 rok
EC2 (Web Server) t3.micro (2 vCPU, 1 GiB RAM) + 30GB EBS gp3 Hodinový ~ $7.60 ~ $91.20
EC2 (AI Server) t3.medium (2 vCPU, 4 GiB RAM) + 30GB EBS gp3 Hodinový ~ $30.40 ~ $364.80
Amazon RDS db.t4g.micro (PostgreSQL) Hodinový ~ $11.90 ~ $142.80
RDS Storage 50 GB gp2 zväzok pre databázu Mesačný GB ~ $5.75 ~ $69.00
Route 53 1 Hosted Zone + DNS dopyty Mesačný ~ $0.50 ~ $6.00
Sieť (Data Transfer) Odhadovaný odchádzajúci prenos dát Za GB ~ $2.00 ~ $24.00
Spolu (Odhad) ~ $58.15 ~ $697.80

4. Opis odovzdaných súborov

  • prepare-app.sh: Skript pre plne automatické vytvorenie klaudového prostredia.
  • remove-app.sh: Skript pre deštrukciu všetkých cloudových služieb.
  • terraform/: Priečinok obsahujúci kompletnú deklaratívnu definíciu AWS infraštruktúry (IaC). Obsahuje .tf súbory pre siete, servery, databázu a bezpečnosť.
  • web/: Zdrojové kódy webovej časti (HTML/CSS), backendu (FastAPI v Pythone), konfiguračný súbor pre Nginx a Docker prostredie.
  • summarizer/: Kód PyTorch AI mikroslužby vrátane Dockerfile a requirements.txt pre stiahnutie modelu BART.
  • .github/workflows/: Skripty pre automatické CI/CD (kontinuálna integrácia a doručovanie), ktoré aplikáciu zostavia a nasadia po každej zmene v zdrojovom kóde.

5. Konfigurácia (Terraform & CI/CD)

Infraštruktúra je definovaná formou kódu cez Terraform. Terraform konfigurácia (ec2.tf, vpc.tf, rds.tf) automaticky prepojuje sieťové rozhrania, nastavuje pravidlá Firewallu (Security Groups) a vytvorí kľúče pre SSH prístup. Softvérové nasadenie zabezpečujú bez-agentové GitHub Actions. Aplikácie sa po commite zabalia do Docker imidžov, uložia sa do GitHub Container Registry (GHCR) a následne sa prostredníctvom SSH tunelu automaticky stiahnu a spustia cez docker-compose na cieľových virtuálnych strojoch v AWS.

6. Návod na použitie

  1. Otvorte ľubovoľný webový prehliadač a prejdite na adresu URL poskytnutú po inštalácii (napríklad https://devopspavel.me).
  2. Do vstupného poľa vložte odkaz na dlhý internetový článok, ktorý si prajete zosumarizovať.
  3. Kliknite na tlačidlo Save.
  4. Systém odošle požiadavku do umelej inteligencie a o niekoľko sekúnd zobrazí originálny link spoločne so skráteným AI textom.

7. Záloha dát (Backup)

Záloha používateľských dát je spravovaná automaticky priamo na úrovni Amazon RDS (Automated Backups). Databáza má predvolene nastavené 7-dňové retenčné obdobie, počas ktorého AWS vykonáva denné kópie (snapshots). V prípade potreby manuálnej zálohy (Full Backup) do súboru je nutné:

  1. Pripojiť sa cez SSH na Web Server inštanciu (t3.micro), ktorá má prístup do privátnej siete RDS.
  2. Vykonať príkaz: pg_dump -h <adresa_rds> -U appuser -d aisummarizer -F c -f zaloha.dump.

8. Záznamy o prístupoch z internetu

Logy o pripojeniach používateľov je možné sledovať priamo z Nginx kontajnera. Pre zobrazenie najnovších prístupov z internetu:

  1. Pripojte sa na Web Server prostredníctvom priloženého SSH kľúča.
  2. Pre zobrazenie "live" prístupov spustite: sudo docker logs -f nginx Tieto logy zaznamenávajú zdrojovú IP adresu, prehliadač a typ dopytu (GET/POST).

9. Podmienky spustenia skriptov

Pre úspešné spustenie skriptov prepare-app.sh a remove-app.sh je nutné:

  1. Mať v operačnom systéme nainštalovaný nástroj Terraform (verzia >= 1.0).
  2. Mať nainštalovaný balík AWS CLI.
  3. Mať v systéme nakonfigurované platné prístupové kľúče AWS_ACCESS_KEY_ID a AWS_SECRET_ACCESS_KEY do prostredia AWS.
  4. Používať Unix/Linux/macOS terminál pre bezproblémové spustenie .sh súborov.

10. Zoznam externých zdrojov a využitie Generatívnej AI

Pri návrhu architektúry, vývoji aplikácie a tvorbe infraštruktúry bol využitý generatívny model umelej inteligencie Antigravity (Google DeepMind). Model bol použitý ako inteligentný agent (Pair-programming) predovšetkým na:

  • Tvorbu a optimalizáciu Python skriptov (FastAPI backend a PyTorch AI Summarizer).
  • Pripravenie deklaratívnych .tf konfigurácií a GitHub Actions Pipelines.
  • Štruktúrovanie a formátovanie tejto dokumentácie v slovenskom jazyku.

Aplikácia interne využíva Open-Source zmenšený model facebook/bart-large-cnn zverejnený na platforme HuggingFace pre úlohy sumarizácie textu.