„EDU::GAMF::Felhőalapú-szolgáltatások” változatai közötti eltérés
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 == | ||
* PHP dokumentáció: [https://php.net php.net] | |||
* | * MySQL dokumentáció: [https://dev.mysql.com dev.mysql.com] | ||
* | * Python dokumentáció: [https://python.org python.org] | ||
* | * AWS dokumentáció: [https://docs.aws.amazon.com 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"); | |||
} | |||
?> | |||
</syntaxhighlight> | |||
== | == Jegyzetek == | ||
* | * [[GAMF::Felhőalapú-szolgáltatások::Előadás|Előadás]] | ||
* Docker [[GAMF :: Felhőalapú-szolgáltatások :: | * 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
- 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: (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
- Felhő ökoszisztéma (Fájl:Felhoalapu-szolgaltatasok-2-ora-diak.pdf)
- 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] é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
<?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
- Előadás
- Gyakorlat
- Rövidítések