06
Ugorjunk a 3. Modulra: PaaS Webes futtatás – Azure App Service
Elmélet: Míg az előbb egy apró kódrészletet (függvényt) futtattunk, mi van akkor, ha egy komplett webalkalmazásod van (pl. egy Node.js backend, egy React frontend, vagy egy Spring Boot app)? Itt jön képbe az Azure App Service.
Ez a Microsoft legnépszerűbb PaaS (Platform as a Service) szolgáltatása. Kapsz egy környezetet, ahová csak feltöltöd a kódodat (vagy a Docker image-edet), és az Azure megoldja a terheléselosztást, az operációs rendszer frissítését, az SSL tanúsítványokat és a skálázódást. Nem kell szervert üzemeltetned, sem K8s YAML fájlokat írnod.
3. Modul / 1. lépés: A Web App létrehozása
Készítünk egy webes futtatókörnyezetet. Itt a legfontosabb feladatunk, hogy biztosan az ingyenes (Free F1) csomagot válasszuk, mert a portál előszeretettel ajánlja fel a fizetős (Premium) verziókat alapértelmezetten!
- Az Azure Portal felső keresősávjába írd be: App Services, és kattints a megjelenő ikonra (vagy írhatod azt is, hogy Web App).
- Kattints a + Create gombra, és válaszd a + Web App opciót.
- A Basics (Alapok) fülön töltsük ki a következőket:
- Subscription: A te előfizetésed.
- Resource Group: Válaszd a jól megszokott
rg-azure-trainingmappánkat. - Name: Ez lesz az oldalad URL-je, tehát globálisan egyedinek kell lennie. Legyen pl.
webapp-training-[neved]-[szam](pl.webapp-training-tamas-456). - Publish: Válaszd a Code opciót. (Tudna Docker konténert is fogadni, de most az egyszerűség kedvéért maradunk a kódnál).
- Runtime stack: Válaszd a Node.js 20 LTS-t (vagy bármit, amit kedvelsz, pl. .NET 8). Most csak a gyári kezdőoldalt akarjuk látni, így igazából mindegy.
- Operating System: Válaszd a Linux-ot!
- Region: Válaszd azt a régiót, ahol az előbb a Function App is sikeresen létrejött (pl. North Europe).
- VIGYÁZAT, itt a pénztárca védelme! - Pricing Plan rész:
- Alapértelmezetten valószínűleg egy Premium V3 vagy Basic csomagot látsz itt.
- Kattints a Explore pricing plans (vagy Change size) linkre/gombra.
- A felugró ablakban keresd meg a Free (Ingyenes) fület, vagy görgess addig, amíg meg nem találod a Free (F1) csomagot. Válaszd ki, majd kattints a Select gombra az alján! (Ha kiírja, hogy az F1 már ki van választva, akkor nyert ügyünk van).
- A többi fület (Database, Deployment, Networking stb.) hagyhatjuk. Kattints a kék Review + create gombra.
- Várd meg a validációt (ellenőrizd még egyszer, hogy az Estimated price sorban "Free" vagy valami nagyon minimális összeg szerepel-e), majd nyomj a Create gombra.
Miután a deployment befejeződik (kb. 1-2 perc), kattints a Go to resource gombra.
A webes alkalmazásod áttekintő (Overview) oldalán, jobb felül (vagy középtájt) látni fogsz egy Default domain mezőt egy linkkel (pl. [https://webapp-training-....azurewebsites.net](https://webapp-training-....azurewebsites.net)).
Ha rákattintasz erre a linkre, behozza a böngésző a Microsoft gyári, kék színű üdvözlő weboldalát: "Your web app is running and waiting for your content" vagy hasonló felirattal
Tökéletes! Létrehoztad az első felhős webalkalmazásodat. Fejlesztőként a mindennapokban ide kötnél be egy GitHub vagy Azure DevOps pipeline-t (a bal oldali Deployment Center menüpontban), ami minden git push után automatikusan frissítené a kódot ezen a szerveren.
Ezzel kipipáltuk a "kód" futtatását mind szerver nélküli (Functions), mind PaaS (App Service) környezetben.
Azure Function vs Azure App Service (Web App)?
Képzeld el úgy, mint egy hagyományos webszervert (pl. egy Apache, Nginx, vagy egy Node.js/Express szerver), amit a Microsoft üzemeltet helyetted. Míg a Function App egy-egy apró feladatra (függvényre) fókuszál, ami csak akkor "ébred fel", ha valami esemény történik, az App Service egy folyamatosan futó (always-on) környezet. Ide egy komplett webes keretrendszert (Spring Boot, ASP.NET Core, Next.js, Django) vagy egy teljes alkalmazást is feltölthetsz.
A Docker kérdés: Web App for Containers
Teljesen jól láttad, hogy az App Service-be feltölthettünk volna egy Docker image-et is. Ez egy zseniális funkció (Web App for Containers néven fut).
Ha van egy bedockerizált alkalmazásod, de nem akarsz egy egész Kubernetes clustert (AKS) felhúzni és karbantartani csak azért, hogy ez az egyetlen konténer fusson, akkor az App Service a tökéletes választás. Csak megadod neki az image nevét, és ő futtatja neked HTTP/HTTPS végponttal, load balancerrel és SSL tanúsítvánnyal együtt.
Mikor melyiket használd fejlesztőként? (Összehasonlítás)
| Jellemző | Azure Functions (Serverless) | Azure App Service (PaaS) |
|---|---|---|
| Koncepció | Kiszolgálónélküli, eseményvezérelt. | Menedzselt, folyamatosan futó webszerver. |
| Kód felépítése | Kis, izolált kódrészletek, amik triggerekre reagálnak. | Komplett webes keretrendszerek (MVC, SPA backendek, REST API-k). |
| Skálázódás | Automatikus, akár másodpercek alatt 0-ról 10 000-re. | Szabályok alapján, virtuális gépek (példányok) hozzáadásával történik. |
| Árazás | Csak a tényleges lefutás milliszekundumaiért fizetsz (Pay-per-execution). | A lefoglalt számítási kapacitásért fizetsz havidíjat, akkor is, ha nincs forgalom. |
Összegzésképp: * Használj App Service-t, ha egy hagyományos, monolitikus webalkalmazásod, egy komplett API backended, vagy egy folyamatosan futó Docker konténered van. * Használj Function App-ot, ha aszinkron feladatokat (kép átméretezése feltöltéskor, napi adatbázis-takarítás, webhookok fogadása) akarsz nagyon olcsón és elszigetelten futtatni.
Ha a létrehozásnál a Publish (Közzététel) szekcióban a Container opciót választod a Code helyett, akkor az Azure teljesen máshogy készíti elő a környezetet.
Ebben az esetben a varázslóban a további füleken (általában a Container fülön) meg kell adnod, hogy honnan töltse le az Azure a kész, lefordított image-et. Itt beállíthatod, hogy: * Egy publikus Docker Hub repoból szedje le. * Vagy egy saját, privát Azure Container Registry (ACR)-ből.