„EDU::GAMF::Felhőalapú-szolgáltatások” változatai közötti eltérés

Innen: Farkas Attila Wiki
Ugrás a navigációhoz Ugrás a kereséshez
Nincs szerkesztési összefoglaló
(A 2. órai diasor belinkelve a felsorolás 2. pontjához)
 
(92 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva)
2. sor: 2. sor:
[[category:GAMF tantárgyak|Tantárgyak]]
[[category:GAMF tantárgyak|Tantárgyak]]
== A tantárgy leírása - '''nem hivatalos''' ==
== A tantárgy leírása - '''nem hivatalos''' ==
A tantárgy során alkalmazások felhőben történő üzemeltetéséről tanulhatnak a hallgatók.
A tantárgy során alkalmazások felhőben történő üzemeltetéséről tanulhatnak a hallgatók. A piacon elérhető összes szolgáltatót nincs lehetőségünk tanulmányozni, de az Amazon Web Services (AWS) világában mélyebben elmerülünk és egy alkalmazást telepítünk bele.
A tárgy során a hallgatónak el kell sajátítania azt a készséget, hogy egy jól dokumentált alkalmazást (a csomag szükségletek közel teljes egészében meg vannak adva a fejlesztők által) elhelyezzenek amazonos környezetben, ismernie kell az elérhető eszközöket és a biztonsági funkciókat.
 
A félév második felében a Docker kapja a főszerepet, mivel manapság a legtöbb alkalmazás ebben készül. Ennek oka, hogy a fejlesztői környezet és a végleges környezet egyezősége garantálható. A hallgatók a tárgy teljesítése után képesek lesznek egy jól dokumentált alkalmazás telepítésére Docker környezetben, ami magában foglalja a képfájlok létrehozását és a futási környezetének kialakítását is.
 
== A tantárgy előfeltételei - '''nem hivatalos''' ==
A tantárgy épít a következő tantárgyakon tanultakra:
* '''Hálózati alapismeretek'''
** IP címek típusai (publikus, privát)
** Alhálózatok kialakítása
** Kis mértékben packet flow ismeretek
* '''Operációs rendszerek'''
** Linux CLI ismeretek
** BASH parancsok
** ''man'' készségszintű használata
** Konfigurációs állományok szerkesztésére alkalmas eszközök ismerete (vi, nano, mcedit stb.)
** LOG fájlok olvasása, tartalmuk szűrése
* '''Webes alkalmazásfejlesztés'''
** Webes applikációk forráskódjának értelmezése
** Infrastruktúra függő értékek felismerése és aktualizálása
* '''Haladó programozás'''
** python szintaktika
** Forráskód értelmezése
 
== A tantárgy követelményei - '''nem hivatalos''' ==
Az Előadás második felében a hallgatók előadják korábban elkészített munkájukat egy a felhővel kapcsolatban saját maguk által kiválasztott témában. A kiselőadás nem lehet csupán bemutató jellegű, technikai információkat is tartalmaznia kell.
A kiselőadásra járó pont: '''30p''',
 
A gyakorlati részhez kapcsolódóan a hallgatók csoportos munkában készítenek el egy projektfeladatot, amelyben a következő pontok közül legalább 5-nek teljesülnie kell:
* legyen benne ASG és LB
* Legyen benne tárolás S3-ra
* Legyen legalább 2 EC2 szolgáltatás (pl. api, ui)
* Használjon RDS-t
* Használjon VPC
* Docker környezetben fusson az alkalmazás (akár az AWS ECS-ben is)
* Serverless megoldás
* Valamilyen orchestrator használata (kubernetes, swarm stb., akár beépített verziót is)
 
A projektfeladat végrehajtása során a generatív mesterséges intelligencia használata '''engedélyezett''' és '''javasolt'''.
 
A projektfeladatra járó pont: '''70p'''
 
'''A kiselőadásból és a projektfeladatból 50-50% el kell érni a félév sikeres teljesítéséhez.'''


== A tárgy során használt dokumentumok ==
== A tárgy során használt dokumentumok ==
{| class="wikitable"
{| class="wikitable" style="margin:0px auto"
|-
|-
! Elérési útvonal || Fájlnév !! cél alkalmazás || Cél fájlnév
! Elérési útvonal || Fájlnév !! cél alkalmazás || Cél fájlnév
|-
|-
| rowspan=4 | [[file:weboldal.zip]]
| rowspan=4 | [[file:weboldal.zip|weboldal.zip]]
| ui.php || Felhasználói felület (UI) || index.php
| ui.php || Felhasználói felület (UI) || index.php
|-
|-
17. sor: 59. sor:
|-
|-
| networks.sql || MySQL import || -
| networks.sql || MySQL import || -
|-
| [[Fájl:Zhminta.pdf|Minta feladatsor]] || - || - || -
|-
| [[Fájl:Gamf-aws-docker-buil.zip|Docker fájlok]] || - || - || -
|-
|}
|}


== Ajánlott irodalom lista ==
== Ajánlott irodalom lista ==
* Tanenbaum - Operációs rendszerek
* Tanenbaum - Számítógépes hálózatok
* Emett Dulaney - Linux All in One
* Kónya László - Számítógépes hálózatok
* Petrényi József
** TCP/IP 1 óra alatt
** TCP/IP alapok I. kötet
** TCP/IP alapok II. kötet
* Dr. Guta Gábor - Szoftverfejlesztés okosan Pythonnal
* Brad Dayley - Python zsebkönyv
* Kozmayer Viktor - PHP és MySQL az alapoktól
* Richard Blum - PHP, MySQL & Javascript 7 könyv az 1-ben
* Bódy Bence - Az SQL példákon keresztül (<small>MSSQL</small>)
* Dan C. Marinescu - Cloud Computing (Theory and Practice)


== Ajánlott online források, hivatkozások ==
== Ajánlott online források, hivatkozások ==
<small>A vastagon szedettek a ZH alatt is használhatók</small>
* PHP dokumentáció: [https://php.net php.net]
* '''PHP dokumentáció''': [https://php.net]
* MySQL dokumentáció: [https://dev.mysql.com dev.mysql.com]
* '''MySQL dokumentáció''': [https://dev.mysql.com|dev.mysql.com]
* Python dokumentáció: [https://python.org python.org]
* '''Python dokumentáció''': [https://python.org]
* AWS dokumentáció: [https://docs.aws.amazon.com docs.aws.amazon.com]
* '''AWS dokumentáció''': [https://docs.aws.amazon.com]
* Ubuntu Segédlet: [https://help.ubuntu.com help.ubuntu.com]
* Ubuntu Segédlet: [https://help.ubuntu.com]
* Ubuntu Tutorial: [https://ubuntu.com/tutorials ubuntu.com/tutorials]
* Ubuntu Tutorial: [https://ubuntu.com/tutorials]
 
== Az előadás menete ==
# összetett: ([[Fájl:Felhoalapu-szolgaltatasok-1-ora-diak.pdf|diasor]])
#* Regisztráció AWS felületen
#* követelmények ismertetése
#* bérelt szervertől (VPS) a felhő megoldásokig
# Felhő ökoszisztéma ([[Fájl:Felhoalapu-szolgaltatasok-2-ora-diak.pdf|diasor]])
# Adatközpontok belső hálózata
# Erőforrás virtualizálás
# Adattárolás a felhőben
# Felhőbiztonság
# Docker
# Kiselőadások
# Kiselőadások
# Kiselőadások
# Kiselőadások
 
Az előadás menete a ''Dan C. Marinescu - Cloud Computing (Theory and Practice)'' című könyv alapján került kidolgozásra, mely a könyvtárban megtekinthető / kölcsönözhető. Az általunk érintett témakörök nagyjából 150 oldalnyi terjedelemben jelennek meg a könyvben. Az oldalszámok az előadásjegyzetek oldalon találhatók.
 
== A gyakorlat menete ==
# Regisztráció az AWS rendszerében [https://portal.aws.amazon.com/billing/signup#/start/email] és alap szolgáltatások átbeszélése
# EC2 telepítés, nginx + apache2 bevezetés, alap parancsok ismétlése (ls, nano, mcedit stb.)
# Alkalmazás telepítése előre elkészített script segítségével + AMI, ASG, LB
# RDS telepítés és alkalmazás integráció ellenőrzése
# Docker alapok
# Docker compose alapok
# Alkalmazás indítása Docker környezetben
# IaC eszközök áttekintése
# IaC eszközök áttekintése
# MessageQueue eszközök használata
# Projekt bemutató (6db)
# Projekt bemutató (6db)
# Projekt bemutató (6db)
 
== Docker beadandó leírása ==
A feladat célja, hogy a hallgatók találkozzanak azokkal a pozitívumokkal, amelyeket a Docker környezet nyújt számunkra. Ezt olyan két - igen egyszerű - alkalmazáson keresztül szeretném szemléltetni, amelyek nem azonos PHP verzióval működnek, de azokat egy szerveren szeretnénk telepíteni.
 
Bár a PHP nyelv a nagy hangok szerint kihaló félben van, a régi alkalmazások üzemeltetése ma is elvárható feladat, ráadásul a hangokkal ellentétben ma is készülnek új alkalmazások a környezetben.
 
'''Figyelem!!''' A példában egy egyszerű kód szerepel, de a feladat hétköznapi problémát dolgoz fel!
 
'''Feladatpontok docker nélküli megoldáshoz'''
# Apache2 / Nginx kiszolgáló telepítése
# Különböző PHP verziók integrálása a kiszolgálóba
# Kód telepítése a kiszolgálónak megfelelő helyre
# Mindkét alkalmazásnak „OK” üzenetet kell mutatnia
 
'''Feladatpontok dockerrel történő megoldáshoz'''
# Apache2 / Nginx kiszolgáló telepítése
# Különböző PHP verziójú Docker image keresése / telepítése
# Kód injektálása a megfelelő könyvtárba a konténeren belül
# Reverse Proxy konfigurálása kiszolgálón
# Mindkét alkalmazásnak „OK” üzenetet kel mutatnia
 
A forráskódban egyszerűen elérhető, hogy mindkét kód „OK” üzenetet mutasson, de annak módosításával történő megoldás azonos a bonyoultabb (több 1000, akár több 10.000-1.000.000) soros kódok migrálásával az új PHP verziónak megfelelően, így amikor ezt a lépést választjuk, akkor gondoljuk át, hogy ez mennyire lehet egyszerű feladat!
 
=== Forrás ===
'''PHP5'''
<syntaxhighlight lang='php'>
<?php
if (version_compare(phpversion(), '5.6.40', '>')) {
  printf("Az általad használt PHP verzió túl magas! Használj maximum 5-ös verziót!");
} else {
  printf("OK");
}
?>
</syntaxhighlight>
 
'''PHP7'''
<syntaxhighlight lang='php'>
<?php
if (version_compare(phpversion(), '7.0.0', '<')) {
  printf("Az általad használt PHP verzió túl alacsony! Használj minimum 7-es verziót!");
} else {
  printf("OK");
}
?>


== A tantárgy menete ==
</syntaxhighlight>
# Regisztráció az AWS rendszerében [https://console.aws.amazon.com]
# EC2 létrehozása, szolgáltatások áttekintése, Linux alapismeretek ismétlése
# EC2 létrehozása, alkalmazások telepítése és konfigurálása, apache2 kiszolgáló, PHP környezet
# UI felület élesztése: AMI létrehozás, Auto Scaling Group, Load Balancer
# Teljes alkalmazás élesztése: MySQL adatbázis (RDS), Python környezet telepítés
# Teljes alkalmazás élesztése: VPC-be szervezés, eszközök kommunikációjának szabályozása
# Docker telepítés, első konténerek elindítása, Dockerfile felépítése, docker.io regisztráció, image feltöltés
# Dockerfile felépítése folytatás
# Docker Compose felépítés, networking, debuggolás
# Teljes alkalmazás élesztése Docker Compose segítségével
# Készülés ZH-ra, kérdések megbeszélése
# ZH


== Hivatkozások ==
== Jegyzetek ==
* AWS [[GAMF :: Felhőalapú-szolgáltatások :: AWS]]
* [[GAMF::Felhőalapú-szolgáltatások::Előadás|Előadás]]
* Docker [[GAMF :: Felhőalapú-szolgáltatások :: Docker]]
* Gyakorlat
** [[EDU::GAMF::Felhőalapú-szolgáltatások::AWS|AWS]]
** [[EDU::GAMF::Felhőalapú-szolgáltatások::Docker|Docker]]
** [[EDU::GAMF::Felhőalapú-szolgáltatások::IaC|IaC]]
* [[EDU::GAMF::Felhőalapú-szolgáltatások::Rövidítések|Rövidítések]]

A lap jelenlegi, 2026. szeptember 20., 11:35-kori változata

A tantárgy leírása - nem hivatalos

A tantárgy során alkalmazások felhőben történő üzemeltetéséről tanulhatnak a hallgatók. A piacon elérhető összes szolgáltatót nincs lehetőségünk tanulmányozni, de az Amazon Web Services (AWS) világában mélyebben elmerülünk és egy alkalmazást telepítünk bele. A tárgy során a hallgatónak el kell sajátítania azt a készséget, hogy egy jól dokumentált alkalmazást (a csomag szükségletek közel teljes egészében meg vannak adva a fejlesztők által) elhelyezzenek amazonos környezetben, ismernie kell az elérhető eszközöket és a biztonsági funkciókat.

A félév második felében a Docker kapja a főszerepet, mivel manapság a legtöbb alkalmazás ebben készül. Ennek oka, hogy a fejlesztői környezet és a végleges környezet egyezősége garantálható. A hallgatók a tárgy teljesítése után képesek lesznek egy jól dokumentált alkalmazás telepítésére Docker környezetben, ami magában foglalja a képfájlok létrehozását és a futási környezetének kialakítását is.

A tantárgy előfeltételei - nem hivatalos

A tantárgy épít a következő tantárgyakon tanultakra:

  • Hálózati alapismeretek
    • IP címek típusai (publikus, privát)
    • Alhálózatok kialakítása
    • Kis mértékben packet flow ismeretek
  • Operációs rendszerek
    • Linux CLI ismeretek
    • BASH parancsok
    • man készségszintű használata
    • Konfigurációs állományok szerkesztésére alkalmas eszközök ismerete (vi, nano, mcedit stb.)
    • LOG fájlok olvasása, tartalmuk szűrése
  • Webes alkalmazásfejlesztés
    • Webes applikációk forráskódjának értelmezése
    • Infrastruktúra függő értékek felismerése és aktualizálása
  • Haladó programozás
    • python szintaktika
    • Forráskód értelmezése

A tantárgy követelményei - nem hivatalos

Az Előadás második felében a hallgatók előadják korábban elkészített munkájukat egy a felhővel kapcsolatban saját maguk által kiválasztott témában. A kiselőadás nem lehet csupán bemutató jellegű, technikai információkat is tartalmaznia kell.

A kiselőadásra járó pont: 30p,

A gyakorlati részhez kapcsolódóan a hallgatók csoportos munkában készítenek el egy projektfeladatot, amelyben a következő pontok közül legalább 5-nek teljesülnie kell:

  • legyen benne ASG és LB
  • Legyen benne tárolás S3-ra
  • Legyen legalább 2 EC2 szolgáltatás (pl. api, ui)
  • Használjon RDS-t
  • Használjon VPC
  • Docker környezetben fusson az alkalmazás (akár az AWS ECS-ben is)
  • Serverless megoldás
  • Valamilyen orchestrator használata (kubernetes, swarm stb., akár beépített verziót is)

A projektfeladat végrehajtása során a generatív mesterséges intelligencia használata engedélyezett és javasolt.

A projektfeladatra járó pont: 70p

A kiselőadásból és a projektfeladatból 50-50% el kell érni a félév sikeres teljesítéséhez.

A tárgy során használt dokumentumok

Elérési útvonal Fájlnév cél alkalmazás Cél fájlnév
Fájl:Weboldal.zip ui.php Felhasználói felület (UI) index.php
ui_newproduct.php Felhasználói felület (UI) newproduct.php
api.py API api.py
networks.sql MySQL import -
Fájl:Zhminta.pdf - - -
Fájl:Gamf-aws-docker-buil.zip - - -

Ajánlott irodalom lista

  • Tanenbaum - Operációs rendszerek
  • Tanenbaum - Számítógépes hálózatok
  • Emett Dulaney - Linux All in One
  • Kónya László - Számítógépes hálózatok
  • Petrényi József
    • TCP/IP 1 óra alatt
    • TCP/IP alapok I. kötet
    • TCP/IP alapok II. kötet
  • Dr. Guta Gábor - Szoftverfejlesztés okosan Pythonnal
  • Brad Dayley - Python zsebkönyv
  • Kozmayer Viktor - PHP és MySQL az alapoktól
  • Richard Blum - PHP, MySQL & Javascript 7 könyv az 1-ben
  • Bódy Bence - Az SQL példákon keresztül (MSSQL)
  • Dan C. Marinescu - Cloud Computing (Theory and Practice)

Ajánlott online források, hivatkozások

Az előadás menete

  1. összetett: (Fájl:Felhoalapu-szolgaltatasok-1-ora-diak.pdf)
    • Regisztráció AWS felületen
    • követelmények ismertetése
    • bérelt szervertől (VPS) a felhő megoldásokig
  2. Felhő ökoszisztéma (Fájl:Felhoalapu-szolgaltatasok-2-ora-diak.pdf)
  3. Adatközpontok belső hálózata
  4. Erőforrás virtualizálás
  5. Adattárolás a felhőben
  6. Felhőbiztonság
  7. Docker
  8. Kiselőadások
  9. Kiselőadások
  10. Kiselőadások
  11. Kiselőadások

Az előadás menete a Dan C. Marinescu - Cloud Computing (Theory and Practice) című könyv alapján került kidolgozásra, mely a könyvtárban megtekinthető / kölcsönözhető. Az általunk érintett témakörök nagyjából 150 oldalnyi terjedelemben jelennek meg a könyvben. Az oldalszámok az előadásjegyzetek oldalon találhatók.

A gyakorlat menete

  1. Regisztráció az AWS rendszerében [1] és alap szolgáltatások átbeszélése
  2. EC2 telepítés, nginx + apache2 bevezetés, alap parancsok ismétlése (ls, nano, mcedit stb.)
  3. Alkalmazás telepítése előre elkészített script segítségével + AMI, ASG, LB
  4. RDS telepítés és alkalmazás integráció ellenőrzése
  5. Docker alapok
  6. Docker compose alapok
  7. Alkalmazás indítása Docker környezetben
  8. IaC eszközök áttekintése
  9. IaC eszközök áttekintése
  10. MessageQueue eszközök használata
  11. Projekt bemutató (6db)
  12. Projekt bemutató (6db)
  13. Projekt bemutató (6db)

Docker beadandó leírása

A feladat célja, hogy a hallgatók találkozzanak azokkal a pozitívumokkal, amelyeket a Docker környezet nyújt számunkra. Ezt olyan két - igen egyszerű - alkalmazáson keresztül szeretném szemléltetni, amelyek nem azonos PHP verzióval működnek, de azokat egy szerveren szeretnénk telepíteni.

Bár a PHP nyelv a nagy hangok szerint kihaló félben van, a régi alkalmazások üzemeltetése ma is elvárható feladat, ráadásul a hangokkal ellentétben ma is készülnek új alkalmazások a környezetben.
Figyelem!! A példában egy egyszerű kód szerepel, de a feladat hétköznapi problémát dolgoz fel!

Feladatpontok docker nélküli megoldáshoz

  1. Apache2 / Nginx kiszolgáló telepítése
  2. Különböző PHP verziók integrálása a kiszolgálóba
  3. Kód telepítése a kiszolgálónak megfelelő helyre
  4. Mindkét alkalmazásnak „OK” üzenetet kell mutatnia

Feladatpontok dockerrel történő megoldáshoz

  1. Apache2 / Nginx kiszolgáló telepítése
  2. Különböző PHP verziójú Docker image keresése / telepítése
  3. Kód injektálása a megfelelő könyvtárba a konténeren belül
  4. Reverse Proxy konfigurálása kiszolgálón
  5. Mindkét alkalmazásnak „OK” üzenetet kel mutatnia
A forráskódban egyszerűen elérhető, hogy mindkét kód „OK” üzenetet mutasson, de annak módosításával történő megoldás azonos a bonyoultabb (több 1000, akár több 10.000-1.000.000) soros kódok migrálásával az új PHP verziónak megfelelően, így amikor ezt a lépést választjuk, akkor gondoljuk át, hogy ez mennyire lehet egyszerű feladat!

Forrás

PHP5

<?php
if (version_compare(phpversion(), '5.6.40', '>')) {
   printf("Az általad használt PHP verzió túl magas! Használj maximum 5-ös verziót!");
} else {
   printf("OK");
}
?>

PHP7

<?php
if (version_compare(phpversion(), '7.0.0', '<')) {
   printf("Az általad használt PHP verzió túl alacsony! Használj minimum 7-es verziót!");
} else {
   printf("OK");
}
?>

Jegyzetek