Azure App Service Plan – A kiszolgáló nélküliség alapja
- Erőforrás típus: PaaS
- Felhő szolgáltató: Microsoft Azure
- Angol név: App Service Plan
- Magyar név: App Service-csomag
- Rövidített név (ha van ilyen): –
A kiszolgáló nélküli (serverless) megoldások hatalmas teret nyertek az elmúlt évtizedben, köszönhetően a felhőszolgáltatóknak is. Emellett a felgyorsult világ, az automatizáció nyújtotta hatékonyság és kényelem is megalapozta ezen technológiai megközelítés sikerét.
Szeretném veletek megismertetni a technológia egyik alappillérét az App Service Plan-t, illetve azt, hogyan is gondolkozott a Microsoft a saját „serverless” világát illetően.
Az Azure App Service Plan a Microsoft Azure egyik kulcsfontosságú eleme, amely lehetővé teszi webalkalmazások, API-k, logikai alkalmazások, function app-ok és háttérfolyamatok futtatását az Azure-ban.
Mi az Azure App Service Plan?
Az Azure App Service Plan az erőforrások csoportosításának és kezelésének a módja az ebben futó alkalmazások számára. Lényegében meghatározza az alkalmazásod alatti infrastruktúra kapacitását és teljesítményét. Hasonlóan egy virtuális géphez, itt is különböző teljesítményre van szükségünk az alkalmazásain megfelelő és stabil működéséhez.
A lényeges különbség – leegyszerűsítve annyi – , hogy ez esetben nincs egy virtuális gépünk amelynél gondoskodnunk kell az operációs rendszer beállításairól, biztonsági frissítéseiről vagy hibakezeléséről. Itt csupán használatba kell vennünk, azaz futtatnunk kell rajta a programkódunkat.
Ahogy említettem, ez is hasonló tulajdonságokkal bír mint egy virtuális gép, csupán virtuális gép nélkül. Tehát az alábbi tulajdonságai vannak egy App Service Plan-nak.:
- A vCPU és a memória méret, amit az alkalmazás használhat.
- A rendelkezésre álló sávszélességet.
- Az alkalmazások párhuzamos futtatásának képességét.
- Tárhely mérete, amelyen a programunk forráskódját tárolhatjuk.
- És még több kényelmi és/vagy biztonsági beállítás, ami az alkalmazásaink használhatóságát növelik.
Főbb tulajdonságok
- Skálázhatóság: Az App Service Plan lehetővé teszi az alkalmazások automatikus vagy manuális skálázását. Skálázhatsz felfelé (nagyobb erőforrások felé – scale up/scale down) vagy kifelé (több példány elindításával – scale out/scale in).
- Rugalmasság: Több alkalmazás is futhat ugyanazon a Service Plan-en, így optimalizálhatod a költségeidet.
- Különböző árszintek: A plan különböző árszinteket kínál (Free, Shared, Basic, Standard, Premium, és Isolated), amelyek eltérő funkciókat és teljesítményt nyújtanak.
- Környezetek támogatása: Támogatja a Windows és Linux környezeteket, valamint a konténeralapú megoldásokat.
Hogyan válaszd ki a megfelelő csomagot?
A megfelelő App Service Plan kiválasztása kritikus az alkalmazásod teljesítménye és költségei szempontjából. Íme néhány szempont:
- Forgalmi igények: Ha nagy forgalmat vársz, válassz egy magasabb szintű plan-t.
- Funkciók szükségessége: Nézd meg, hogy szükséged van-e például automatikus skálázásra vagy dedikált környezetekre.
- Költségkeret: Az alacsonyabb szintek olcsóbbak, de kevesebb funkcióval és erőforrással járnak.
Tippek a hatékony használathoz
- Optimalizálás több alkalmazáshoz: Futtass több alkalmazást egy plan-en, ha azok erőforrásigénye hasonló.
- Monitorozás: Az Azure Monitor-ral kövesd az alkalmazások teljesítményét és az erőforrás-felhasználást.
- Skálázási szabályok beállítása: Használj automatikus skálázási szabályokat a költséghatékonyság érdekében.
Hogyan számlázódik a scale out (kifelé történő skálázás)?
App Service Plan estén lehetőségünk van egy csomagon belül, több ugyanolyan paraméterű példány (instance) futtatni és ezeken futtatni az alkalmazásainkat. Ezek számlázási módja azonban nem mindig egyértelmű, ezért ehhez szeretnék egy kis támpontot adni:
- Példányok száma: A díjakat a párhuzamos példányok száma alapján számítja ki a Microsoft. Például, ha egy Standard szintű App Service Plan-t használsz, és 3 példányt futtatsz, akkor az adott szint havi díját háromszorosan kell kifizetned.
- Automatikus skálázás: Az Azure skálázási szabályok alapján dinamikusan növeli vagy csökkenti a példányok számát, így a költségeid rugalmasan változhatnak a terhelés függvényében.
Hogyan számlázódik általában az App Service Plan?
Az App Service Plan költségei az alábbi tényezőktől függenek:
- Árszint: Az App Service Plan szintje (Free, Shared, Basic, Standard, Premium, Isolated) meghatározza az alapdíjat.
- Példányok száma: Több példány futtatása (scale out) növeli a költségeket.
- Futási idő: Az Azure óradíjat számít, amely a hónap végén kerül összevonásra. Például, ha egy Standard S1 példány óránként 0,1 USD, akkor 24 órára 2,4 USD, egy hónapra pedig körülbelül 72 USD.
Fontos: Az App Service Plan díját a teljes erőforráscsoport (például CPU, memória) használat alapján számlázzák, nem pedig az egyes alkalmazások után.
Az ingyenes csomag részletei (Free Tier)
Az F1 csomag ideális választás azok számára, aki tesztelési vagy tanulási célú projekteket futtatnak. Jellemzői:
- CPU és memória: Limitált CPU és memória, alapvetően tesztelési célokra.
- Egyidejű alkalmazások: Egyetlen App Service Plan-en belül több alkalmazás futtatható, de az erőforrások megosztásra kerülnek.
- Egyéni domain hiánya: Csak az Azure által biztosított alapértelmezett domain használható
- Korlátozott teljesítmény: Alkalmas egyszerű alkalmazásokhoz, mint például statikus weboldalak vagy API prototípusok. Napi 60 perc használatot tesz lehetővé. (ezt nem egyben kell érteni, hanem a használat alapján)
- Költség: Teljesen díjmentes, így ideális fejlesztőknek és tanulóknak a kísérletezéshez.
Az App Service Plan funkciói
Egy ilyen csomagnak rengeteg hasznos funkciója van, ezekről készítettem egy rövid listát, csupán az áttekintés végett:
1. Alapvető funkciók
- Virtuális erőforrások: CPU, memória és tárolókapacitás biztosítása az alkalmazások számára.
- Több alkalmazás támogatása: Több alkalmazás futhat ugyanazon a plan-en, így költséghatékonyabb.
- OS támogatás: Windows és Linux alapú környezetek futtatása.
- Konténer támogatás: Docker konténerek futtatása.
2. Skálázás és teljesítmény
- Manuális skálázás: Több példány hozzáadása kézzel.
- Automatikus skálázás: Dinamikus skálázás az alkalmazás terhelése alapján.
- Skálázási szabályok: Egyedi szabályok beállítása CPU, memóriahasználat vagy egyéb teljesítménymutatók alapján.
- Scale up/out lehetőség: Függőleges (nagyobb erőforrások) és vízszintes (több példány) skálázás támogatása.
3. Fejlesztési és tesztelési funkciók
- Deployment Slot-ok: Átmeneti környezetek használata a zökkenőmentes frissítések érdekében.
- Blue-Green Deployment támogatás: Különböző verziók tesztelése és gyors váltás az élő környezettel.
- Git-integráció: Közvetlenül összekapcsolható GitHub, Azure Repos vagy más verziókezelő rendszerekkel.
- CI/CD folyamatok támogatása: Automatizált telepítési folyamatok az Azure DevOps vagy más CI/CD rendszerek használatával.
4. Biztonsági funkciók
- SSL/TLS támogatás: Egyéni domain-ekhez is biztosított.
- Kötelező HTTPS: Az alkalmazások kényszeríthetik a HTTPS protokoll használatát.
- Managed Identity: Alkalmazások biztonságos Azure-erőforrásokhoz való hozzáférése jelszó nélkül.
- IP-restrikciók: Az alkalmazások elérésének korlátozása IP-cím alapján.
5. Integrációk és további szolgáltatások
- Azure Functions integráció: Kisebb kódok futtatása eseményvezérelt környezetben.
- Application Insights: Teljesítményfigyelés és hibakeresés az Azure Monitor segítségével.
- Könnyű adatbázis-integráció: Az Azure SQL, Cosmos DB, vagy más adatbázis-szolgáltatások gyors csatlakoztatása.
- API Management integráció: API-k könnyű publikálása és kezelése.
6. Adatvédelem és mentések
- Automatikus biztonsági mentések: Az alkalmazások rendszeres mentése (elérhető a Standard szinttől).
- Geo-disztribúció: Alkalmazások elérhetősége több régióban is biztosított.
7. Egyéb funkciók
- Ingyenes csomag (Free Tier): Alapvető tesztelési és fejlesztési környezet.
- Támogatás egyéni domain-ekhez: Egyedi domain nevek hozzárendelése az alkalmazásokhoz (Standard szinttől).
- High Availability (HA): Alkalmazások magas rendelkezésre állásának támogatása.
- Traffic Manager integráció: Forgalomirányítás globális alkalmazások számára.
- Egyedi skálázási beállítások: Dedikált erőforrások elérhetősége a Premium és Isolated szinteken.
Funkciók csomagok szerint
Funkció | Free | Shared | Basic | Standard | Premium | Isolated |
---|---|---|---|---|---|---|
Több alkalmazás támogatása | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Deployment Slot-ok | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
SSL/TLS támogatás | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
Automatikus biztonsági mentés | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
Geo-disztribúció | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
Dedikált erőforrások | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
Az Azure App Service Plan használata során fontos figyelembe venni az erőforrás-igényeket, az alkalmazás skálázási igényeit és a költségvetési korlátokat. Az ingyenes csomag nagyszerű kezdőknek, míg a Deployment Slots és a skálázási lehetőségek nagyobb projekteknél nyújtanak hatalmas előnyt. A megfelelő konfigurációval optimalizálhatod az alkalmazásaid teljesítményét és költséghatékonyságát.
Neked már van olyan webalkalmazásod, amely Azure-ban fut?