„EDU::GAMF::Felhőalapú-szolgáltatások” változatai közötti eltérés
Nincs szerkesztési összefoglaló Címke: Kézi visszaállítás |
|||
| (54 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
| 27. sor: | 27. sor: | ||
== A tantárgy követelményei - '''nem hivatalos''' == | == 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 | A kiselőadásra járó pont: '''30p''', | ||
A | 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 ZH-ból 50-50% el kell érni a félév sikeres teljesítéséhez.''' | |||
== A tárgy teljesítéséhez szükséges idő == | |||
Az állami elvárás szerint minden kredit megszerzése egy átlagos hallgató számára 30 óra ráfordítást vesz igénybe - beleértve a tanórákat, ZH és vizsgaalkalmakat, valamint az otthoni önálló tanulást is. Ez a tárgy 5 kreditet ér, tehát a félév során összesen 150 órát kell a hallgatóknak ezzel foglalkozniuk, ami sokszor a pótZH-ban (és manapság a pót-pót ZH-ban) csapódik le. | |||
Mivel a félév során 13 hét áll rendelkezésünkre és mind az előadás, mind a gyakorlat 1,5 óra időtartamú, így összesen 39 órát ölel fel a tanórai képzés (ZH-val együtt). Rossz hír, hogy ez esetben egy gyakorlati jegyes tárgyról van szó, így a maradék időt legkésőbb a 13. hét végéig kell eltölteni otthoni tanulással, nem lehet a vizsgaidőszakra csúsztatni azt. Ez alapján heti 8.5, azaz valamivel több, mint napi 1,5 órát (heti 5 nappal számolva) a tárggyal kapcsolatos ismeretanyagok gyűjtésével és megértésével kellene a hallgatónak foglalkoznia. Mivel ezen számítás alapján a hallgatóknak napi 13,5 órát kellene 30 kredit felvétele esetén tanulással tölteni, így természetesen ez egy irreális elvárásnak bizonyul. Azonban kreditarányosan számolva, ezen tárgy esetében '''heti 2 óra''' ráfordítással éri el a hallgató a napi 8 órás munkaidőt (tanórák közötti szüneteket pihenőidőként kezelve) 30 kredit esetén, ami a normális szint. Ez tehát '''elvárhatónak és számon kérhetőnek bizonyul''' nappali tagozaton annak érdekében, hogy a hallgatók a lehető legnagyobb felkészültségben üljenek az órákon. | |||
== 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 | ||
| 46. sor: | 64. sor: | ||
| networks.sql || MySQL import || - | | networks.sql || MySQL import || - | ||
|- | |- | ||
| [[Fájl: | | [[Fájl:Zhminta.pdf|Minta feladatsor]] || - || - || - | ||
|- | |- | ||
| [[Fájl:Gamf-aws-docker-buil.zip|Docker fájlok]] || - || - || - | | [[Fájl:Gamf-aws-docker-buil.zip|Docker fájlok]] || - || - || - | ||
| 54. sor: | 72. sor: | ||
== Ajánlott irodalom lista == | == Ajánlott irodalom lista == | ||
* Tanenbaum - Operációs rendszerek | * Tanenbaum - Operációs rendszerek | ||
* Tanenbaum Számítógépes hálózatok | * Tanenbaum - Számítógépes hálózatok | ||
* Emett Dulaney - Linux All in One | * Emett Dulaney - Linux All in One | ||
* Kónya László | * Kónya László - Számítógépes hálózatok | ||
* Petrényi József | * Petrényi József | ||
** TCP/IP 1 óra alatt | ** TCP/IP 1 óra alatt | ||
| 66. sor: | 84. sor: | ||
* Richard Blum - PHP, MySQL & Javascript 7 könyv az 1-ben | * Richard Blum - PHP, MySQL & Javascript 7 könyv az 1-ben | ||
* Bódy Bence - Az SQL példákon keresztül (<small>MSSQL</small>) | * 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 == | ||
| 75. sor: | 94. sor: | ||
* Ubuntu Tutorial: [https://ubuntu.com/tutorials ubuntu.com/tutorials] | * Ubuntu Tutorial: [https://ubuntu.com/tutorials ubuntu.com/tutorials] | ||
== A | == Az előadás menete == | ||
# összetett: | |||
#* Regisztráció AWS felületen | |||
#* követelmények ismertetése | |||
#* bérelt szervertől (VPS) a felhő megoldásokig | |||
# Felhő ökoszisztéma | |||
# 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] | # Regisztráció az AWS rendszerében [https://portal.aws.amazon.com/billing/signup#/start/email] | ||
# EC2 létrehozása, szolgáltatások áttekintése, Linux alapismeretek ismétlése | # EC2 létrehozása, szolgáltatások áttekintése, Linux alapismeretek ismétlése | ||
| 87. sor: | 124. sor: | ||
# Teljes alkalmazás élesztése Docker Compose segítségével | # Teljes alkalmazás élesztése Docker Compose segítségével | ||
# Készülés ZH-ra, kérdések megbeszélése | # Készülés ZH-ra, kérdések megbeszélése | ||
# | # '''Projekt bemutató''' | ||
# | |||
== 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 mamximum 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"); | |||
} | |||
?> | |||
</syntaxhighlight> | |||
== Jegyzetek == | == Jegyzetek == | ||
* [[GAMF :: Felhőalapú-szolgáltatások :: AWS|AWS]] | * [[GAMF::Felhőalapú-szolgáltatások::Előadás|Előadás]] | ||
* [[GAMF :: Felhőalapú-szolgáltatások :: Docker|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::Rövidítések|Rövidítések]] | |||
A lap jelenlegi, 2025. szeptember 15., 09:15-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 ZH-ból 50-50% el kell érni a félév sikeres teljesítéséhez.
A tárgy teljesítéséhez szükséges idő
Az állami elvárás szerint minden kredit megszerzése egy átlagos hallgató számára 30 óra ráfordítást vesz igénybe - beleértve a tanórákat, ZH és vizsgaalkalmakat, valamint az otthoni önálló tanulást is. Ez a tárgy 5 kreditet ér, tehát a félév során összesen 150 órát kell a hallgatóknak ezzel foglalkozniuk, ami sokszor a pótZH-ban (és manapság a pót-pót ZH-ban) csapódik le. Mivel a félév során 13 hét áll rendelkezésünkre és mind az előadás, mind a gyakorlat 1,5 óra időtartamú, így összesen 39 órát ölel fel a tanórai képzés (ZH-val együtt). Rossz hír, hogy ez esetben egy gyakorlati jegyes tárgyról van szó, így a maradék időt legkésőbb a 13. hét végéig kell eltölteni otthoni tanulással, nem lehet a vizsgaidőszakra csúsztatni azt. Ez alapján heti 8.5, azaz valamivel több, mint napi 1,5 órát (heti 5 nappal számolva) a tárggyal kapcsolatos ismeretanyagok gyűjtésével és megértésével kellene a hallgatónak foglalkoznia. Mivel ezen számítás alapján a hallgatóknak napi 13,5 órát kellene 30 kredit felvétele esetén tanulással tölteni, így természetesen ez egy irreális elvárásnak bizonyul. Azonban kreditarányosan számolva, ezen tárgy esetében heti 2 óra ráfordítással éri el a hallgató a napi 8 órás munkaidőt (tanórák közötti szüneteket pihenőidőként kezelve) 30 kredit esetén, ami a normális szint. Ez tehát elvárhatónak és számon kérhetőnek bizonyul nappali tagozaton annak érdekében, hogy a hallgatók a lehető legnagyobb felkészültségben üljenek az órákon.
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
- PHP dokumentáció: php.net
- MySQL dokumentáció: dev.mysql.com
- Python dokumentáció: python.org
- AWS dokumentáció: docs.aws.amazon.com
- Ubuntu Segédlet: help.ubuntu.com
- Ubuntu Tutorial: ubuntu.com/tutorials
Az előadás menete
- összetett:
- Regisztráció AWS felületen
- követelmények ismertetése
- bérelt szervertől (VPS) a felhő megoldásokig
- Felhő ökoszisztéma
- 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 [1]
- 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, alkalmazások létrehozása, indítása
- 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
- Projekt bemutató
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
<?php
if (version_compare(phpversion(), '5.6.40', '>')) {
printf("Az általad használt PHP verzió túl magas! Használj mamximum 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
- Előadás
- Gyakorlat
- Rövidítések