Alapszintű webalkalmazás

Azure App Service
Azure Key Vault
Azure Monitor
Azure SQL Database

Ez az architektúra egy alapszintű webalkalmazás alapvető összetevőit mutatja be. Az architektúra segítségével webalkalmazást hozhat létre, majd igényei szerint testre szabhatja az alkalmazást.

Felépítés

Diagram showing the reference architecture for a basic web application in Azure.

Töltse le az architektúra Visio-fájlját.

Összetevők

  • Az Azure App Service egy teljes körűen felügyelt platform felhőalapú alkalmazások létrehozásához és üzembe helyezéséhez. Lehetővé teszi a webalkalmazások futtatásához, üzembe helyezéséhez és üzembehelyezési pontok konfigurálásához szükséges számítási erőforrások készletét.
  • Az üzembehelyezési pontok lehetővé teszi az üzembe helyezést, majd felcserélheti azt az éles üzembe helyezéssel. Így elkerülhető a közvetlenül az éles környezetbe való üzembe helyezés. Konkrét javaslatokért tekintse meg az alábbi kiadástervezési és üzembe helyezési szakaszt.
  • IP-cím: Az App Service-alkalmazás nyilvános IP-címmel és tartománynévvel rendelkezik. A tartománynév az azurewebsites.net altartománya, például contoso.azurewebsites.net.
  • Az Azure DNS egy üzemeltetési szolgáltatás, amely a Microsoft Azure infrastruktúráját használja a DNS-tartományok névfeloldásához. Ha tartományait az Azure-ban üzemelteti, DNS-rekordjait a többi Azure-szolgáltatáshoz is használt hitelesítő adatokkal, API-kkal, eszközökkel és számlázási információkkal kezelheti. Egyéni tartománynév (például contoso.com) használatához hozzon létre olyan DNS-rekordokat, amelyek leképzik az egyéni tartománynevet az IP-címre. További információkat az egyéni tartománynevek az Azure App Service-ben való konfigurálásával kapcsolatos cikkben olvashat.
  • Az Azure SQL Database egy relációs adatbázis a felhőben. Az SQL Database kódbázisa közös a Microsoft SQL Server adatbázismotorjáéval. Az alkalmazáskövetelményektől függően használhatja az Azure Database for MySQL-t vagy az Azure Database for PostgreSQL-t is. Ezek az alternatív megoldások a nyílt forráskódú MySQL Server és Postgres adatbázismotorokon alapuló teljes körűen felügyelt adatbázis-szolgáltatások.
  • A Microsoft Entra ID egy felhőalapú identitás- és hozzáférés-kezelési szolgáltatás, amellyel az alkalmazottak hozzáférhetnek a szervezet számára kifejlesztett felhőalkalmazásokhoz.
  • Az Azure Monitor egy megoldás a naplók és metrikák gyűjtésére, elemzésére és a környezetekben való játszásra.
  • Az Azure Key Vault támogatja a titkos kódok kezelését, a kulcskezelést és a tanúsítványkezelést. Az alkalmazás titkos kulcsait, például az adatbázis-kapcsolati sztring tárolhatja.

Javaslatok

A követelmények eltérhetnek a kódban leírt és megadott architektúrától. A kód éles konfigurációkkal lesz üzembe helyezve. A javaslatok segítségével testre szabhatja az üzemelő példányt az igényeinek megfelelően.

App Service plan

Az App Service-csomag különböző tarifacsomagokkal rendelkezik. Az egyes tarifacsomagok több példányméretet támogatnak , amelyek a magok és a memória számától eltérnek. A tarifacsomagot az üzembe helyezés után a bal oldali navigációs sáv "Vertikális felskálázás (App Service-csomag)" elemével módosíthatja. Íme néhány App Service-javaslat:

  • Futtassa az éles számítási feladatot az Alapszintű, a Standard és a Prémium tarifacsomagon. Ebben a három szinten az alkalmazás dedikált virtuálisgép-példányokon fut, és olyan erőforrásokat foglalt le, amelyek felskálázhatók.
  • Ha automatikus skálázásra és TLS/SSL-ra van szüksége, használja a Standard és a Premier szinteket.
  • Hozzon létre egy másik App Service-csomagot teszteléshez és fejlesztéshez. Az ingyenes és a megosztott (előzetes verzió) szintekkel tesztelheti és fejlesztheti a költséghatékonyságot. Éles számítási feladatokhoz azonban ne használja az ingyenes és a megosztott szinteket. A megosztott erőforrások nem méretezhetők fel.
  • Mindenképpen törölje a nem használt csomagokat, például az üzembe helyezés tesztelését. Az App Service-csomagok számlázása másodpercenként történik. Az App Service-csomagban lévő példányokért akkor is díjat számítunk fel, ha az alkalmazás le van állítva. Az App Service-csomagokkal és a számlázással kapcsolatos további információkért lásd:

Az alábbi ARM-sablon a Standard tarifacsomagban lesz üzembe helyezve.

SQL Database

  • Az Azure SQL Database használatával csökkentheti a felügyeleti többletterhelést. Az Azure SQL Database létrehoz egy logikai szerkezetet, amely központi felügyeleti pontként szolgál az adatbázisok gyűjteményéhez. Ez a logikai szerkezet csökkenti a felügyeleti többletterhelést. A csoport minden adatbázisa egy adott szolgáltatási szinttel van üzembe helyezve. Az adatbázisok nem oszthatnak meg erőforrásokat az egyes csoportokon belül. A kiszolgálónak nincsenek számítási költségei, de meg kell adnia az egyes adatbázisok szintjét. Ezért a teljesítmény jobb lehet a dedikált erőforrások miatt, de a költségek magasabbak lehetnek.
  • Tervezze meg a kapacitást, és válasszon az igényeinek megfelelő szolgáltatásszintet és teljesítményszintet. Az SQL Database az alapszintű, a standard és a prémium szolgáltatási szintet támogatja. Mindegyik szinten több teljesítményszint érhető el, amelyek mérése adatbázis-tranzakciós egységben (DTU-ban) történik.

Region

  • Hozza létre az App Service-csomagot és az SQL Database-t ugyanabban a régióban a hálózati késés minimalizálása érdekében. Általában érdemes a felhasználókhoz legközelebbi régiót választani.
  • Az erőforráscsoportnak régiója is van. Meghatározza az üzembehelyezési metaadatok tárolásának helyét. Helyezze az erőforráscsoportot és erőforrásait ugyanabba a régióba a rendelkezésre állás javítása érdekében az üzembe helyezés során.
  • A költségek becsléséhez használja a díjkalkulátort .
  • További információért lásd a Microsoft Azure Well-Architected Framework költségekkel kapcsolatos részét.

Considerations

Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit. A pillérek olyan vezérelvek, amelyek javítják a számítási feladatok minőségét. További információ: Microsoft Azure Well-Architected Framework.

Teljesítmény hatékonysága

Az Azure App Service egyik fő előnye az alkalmazások skálázásának lehetősége a terhelés alapján. A következő szempontokat kell szem előtt tartani az alkalmazás skálázásának tervezésekor.

Az App Service-alkalmazás skálázása

Az App Service-alkalmazások skálázásának két módja van:

  • A vertikális felskálázás a példány méretének módosítását jelenti. A példány mérete határozza meg a memória mennyiségét, a magok számát és az egyes virtuálisgép-példányokon rendelkezésre álló tároló mennyiségét. Vertikálisan felskálázni manuálisan, a példányméret vagy a csomagszint módosításával lehet.
  • A vertikális felskálázás azt jelenti, hogy példányokat ad hozzá a megnövekedett terhelés kezeléséhez. Minden tarifacsomaghoz meg van adva a példányok maximális száma. A vertikális felskálázáshoz manuálisan módosíthatja a példányok számát, vagy az automatikus skálázás konfigurálásával beállíthatja, hogy az Azure automatikusan vegyen fel vagy távolítson el példányokat ütemezési és/vagy teljesítménymetrikák alapján. Minden méretezési művelet gyorsan, általában másodpercek alatt történik.

Az automatikus skálázás engedélyezéséhez hozzon létre egy automatikus skálázási profilt, amely meghatározza a példányok minimális és maximális számát. Ütemezésalapú profilokat állíthat be a skálázási események aktiválásához. Létrehozhat például külön profilokat hétköznapokra és hétvégékre. A profilok tartalmazhatnak szabályokat a példányok hozzáadásának vagy eltávolításának időpontjára vonatkozóan. Például két példány hozzáadása, ha a processzorhasználat 5 percen át meghaladja a 70%-ot.

Javaslatok webalkalmazások skálázásához:

  • A vertikális fel- és leskálázást a lehető legnagyobb mértékben korlátozza. Elindíthatja az alkalmazás újraindítását. Ehelyett vertikális felskálázást. Válasszon ki egy réteget és méretet, amely megfelel a teljesítménykövetelményeknek a tipikus terhelés alatt, majd skálázza fel a példányokat a forgalommennyiség változásainak kezeléséhez.
  • Engedélyezze az automatikus skálázást. Ha az alkalmazás kiszámítható és rendszeres számítási feladatokat lát el, profilok létrehozásával előre ütemezheti a példányok számát. Ha a számítási feladat nem kiszámítható, szabályalapú automatikus skálázással reagálhat a terhelés változásaira. A két módszer kombinálható.
  • Processzorhasználat használata automatikus skálázási szabályokhoz. A CPU-használat általában jól használható metrikaként az automatikus skálázási szabályokhoz. Azonban az alkalmazáson terhelésteszteket kell végezni, azonosítani kell a potenciális szűk keresztmetszeteket, és ezek alapján kell megadni az automatikus skálázási szabályokat.
  • Rövidebb lehűlési időszakot állíthat be a példányok hozzáadásához, és hosszabb lehűlési időszakot a példányok eltávolításához. Az automatikus skálázási szabályok közé tartozik egy lehűlési időszak. A lehűlési időszak az az időtartam, amely egy skálázási művelet befejezése után várakozik egy új skálázási művelet megkezdése előtt. A nyugalomba kerülési idő lehetővé teszi a rendszer stabilizálását az újabb skálázási műveletek előtt. Például állítson be 5 perc nyugalomba kerülési időt példányok hozzáadásához, példányok eltávolításához azonban 60 percet. Jobb, ha gyorsan, nagy terhelés alatt új példányokat ad hozzá a többletforgalom kezeléséhez, majd fokozatosan visszaskálázható.

SQL-adatbázisok skálázása

Az egyes adatbázisok vertikális felskálázása alkalmazás-állásidő nélkül, ha magasabb szolgáltatási szintre vagy teljesítményszintre van szüksége az SQL Database-hez.

For more information, see Scale single database resources in Azure SQL Database.

Megbízhatóság

Az írás időpontjában az App Service szolgáltatásiszint-szerződése (SLA) 99,95%. Az App Service SLA-ja önálló példányokra és több példányra is vonatkozik. Az SQL Database SLA-ja 99,99%-os alapszintű, standard és prémium szintű.

Biztonsági másolatok

Az SQL Database időponthoz kötött visszaállítást és georeduktúra-visszaállítást biztosít az adatvesztés visszaállításához. Ezek a funkciók minden szinten elérhetőek, és automatikusan engedélyezve vannak. A biztonsági mentéseket nem kell ütemezni vagy kezelni.

  • Időponthoz kötött visszaállítás használata. Az adatbázis egy korábbi időpontra való visszaadásával helyreállíthatja az emberi hibát .
  • Georeduktúra-visszaállítás használata. A szolgáltatáskimaradásból helyreállíthatja az adatbázis georedundáns biztonsági mentésből való visszaállítását.
  • Fontolja meg az App Service biztonsági mentésének és visszaállításának használatát. A biztonsági mentés és a visszaállítás az alkalmazásfájlok egyik funkciója. A biztonsági mentési fájlok azonban egyszerű szövegben tartalmazzák az alkalmazásbeállításokat, például kapcsolati sztring.
  • Ne használja az App Service biztonsági mentési funkcióját az SQL-adatbázisok biztonsági mentéséhez. Exportálja az adatbázist egy SQL BACPAC-fájlba, amely DTU-kat használ. Ehelyett használja az SQL Database fentebb leírt, időponthoz kötött visszaállítását. További információ: felhőbeli üzletmenet-folytonosság és adatbázis-vészhelyreállítás az SQL Database-lel.

Működés eredményessége

Külön erőforráscsoportokat hozhat létre éles, fejlesztési és tesztelési környezetekhez. A környezetek elkülönítése megkönnyíti az üzemelő példányok kezelését, a teszttelepítések törlését és a hozzáférési jogosultságok hozzárendelését.

Erőforrások erőforráscsoportokhoz való hozzárendelésekor vegye figyelembe a következő funkciókat:

  • Életciklus. Általában érdemes az azonos életciklusú erőforrásokat ugyanabba az erőforráscsoportba helyezni.
  • Hozzáférés. Az Azure szerepköralapú hozzáférés-vezérlésével (RBAC) hozzáférési szabályzatokat alkalmazhat a csoport erőforrásaira.
  • Számlázás. Megtekintheti az erőforráscsoport összegzett költségeit.

További információk: Azure Resource Manager overview (Az Azure Resource Manager áttekintése).

Alkalmazáskonfigurációk

  • Tárolja a konfigurációs beállításokat alkalmazásbeállításokként. Adja meg az alkalmazásbeállításokat a Resource Manager-sablonokban vagy a PowerShell használatával. Futtatáskor az alkalmazásbeállítások környezeti változókként elérhetők az alkalmazás számára.
  • Soha ne tároljon jelszavakat, hozzáférési kulcsokat és kapcsolati sztringekat a forrásvezérlőben. Ehelyett adja át a titkos kulcsokat paraméterekként egy üzembehelyezési szkriptnek, amely ezeket az értékeket alkalmazásbeállításokként tárolja.
  • Az üzembehelyezési pontok közötti váltáskor a rendszer alapértelmezés szerint vált az alkalmazásbeállítások között is. Ha különböző éles és előkészítési beállításokra van szüksége, létrehozhat olyan alkalmazásbeállításokat, amelyek ragaszkodnak egy ponthoz, és nem lesznek felcserélve.

Diagnosztika és figyelés

DevOps

  • Arm-sablonok használatával üzembe helyezheti az Azure-erőforrásokat és azok függőségeit. A mellékelt ARM-sablon egyetlen webalkalmazást helyez üzembe. Az összes erőforrás ugyanabban az alapszintű számítási feladatban van elkülönítve. Ez az elkülönítés megkönnyíti a számítási feladat adott erőforrásainak csapathoz való hozzárendelését. A csapat ezután önállóan kezelheti az erőforrások minden aspektusát. Ez az elkülönítés lehetővé teszi a DevOps-csapat számára a folyamatos integrációt és a folyamatos teljesítést (CI/CD).
  • Használjon különböző ARM-sablonokat, és integrálja őket az Azure DevOps-szolgáltatásokkal. Ez a beállítás lehetővé teszi, hogy percek alatt különböző környezeteket hozzon létre. Az éles környezetekhez hasonló forgatókönyveket vagy terheléstesztelési környezeteket például csak szükség esetén replikálhatja, és költségmegtakarítást érhet el.
  • A webalkalmazás több példányának kiépítése. Nem szeretné, hogy a webalkalmazás egyetlen példánytól függjön, és egy hibapontot hozzon létre. Több példány is javítja a rugalmasságot és a méretezhetőséget.

További információt az Azure Well-Architected Framework DevOps szakaszában talál.

Kiadási tervezés és üzembe helyezés

Az App Service-alkalmazásoknak mindig van egy üzembehelyezési pontjuk.production Az éles pont az élő termelési helyet jelöli. Javasoljuk, hogy a frissítések telepítéséhez hozzon létre egy előkészítési pontot. Az előkészítési pont használatának előnyei a következők:

  • Az üzembe helyezés sikerességét az éles környezetbe való felcserélés előtt ellenőrizheti.
  • Az előkészítési pontra való üzembe helyezéssel biztosítható, hogy minden példány üzemkészen kerüljön az éles környezetbe. Számos alkalmazásnak jelentős bemelegítési és hidegindítási ideje van.
  • Hozzon létre egy harmadik pontot az utolsó ismert üzembe helyezés tárolásához. Az előkészítési és az üzembehelyezési pontok közötti váltáskor a korábbi éles környezetet (amely most az előkészítési ponton található) helyezze át a legutóbbi megfelelően működő példányt tároló pontra. Így ha később probléma merül fel, gyorsan vissza lehet váltani a legutóbbi megfelelően működő verzióra.

Swapping slots for production and staging deployments

  • Korábbi verzióra való visszaváltáskor győződjön meg arról, hogy az adatbázisok sémamódosításai visszamenőlegesen kompatibilisek.
  • Ne használja az éles környezet pontjait tesztelésre, mivel az egy adott App Service-csomagban található alkalmazások ugyanazokat a virtuálisgép-példányokat használják. A terheléses tesztek például ronthatják az élő éles telephelyet. Ehelyett hozzon létre külön App Service-csomagot az éles és a tesztelési környezethez. Ha a teszttelepítéseket külön csomagba helyezi, elkülöníti őket az éles verziótól.

Biztonság

Ez a szakasz a cikkben leírt Azure-szolgáltatásokra vonatkozó biztonsági szempontokat ismerteti. Nem tartalmazza az összes ajánlott biztonsági eljárást. További biztonsági szempontokat az alkalmazás biztonságossá tételét Azure-alkalmazás Service-ben című témakörben talál.

Az SQL Database naplózási funkciója

A naplózás segíthet a jogszabályi megfelelőség fenntartásában és az olyan ellentmondások és rendellenességek feltárásában, amelyek üzleti veszélyekre vagy esetleges biztonsági problémákra utalhatnak. További információk: Ismerkedés az SQL-adatbázis naplózási szolgáltatásával.

Üzembehelyezési pontok

Minden üzembehelyezési pont nyilvános IP-címmel rendelkezik. A Microsoft Entra bejelentkezésével biztonságossá teheti a nem gyártási helyeket, hogy csak a fejlesztői és a DevOps-csapatok tagjai érjék el ezeket a végpontokat.

Logging

A naplókban soha nem szabad rögzíteni a felhasználók jelszavait és a személyazonossági csalások elkövetéséhez felhasználható egyéb adatait. Tárolás előtt az adatok közül el kell távolítani az ilyen részleteket.

SSL

Az App Service-alkalmazások egy SSL-végpontot tartalmaznak egy altartományon azurewebsites.net , külön költség nélkül. Az SSL-végpont tartalmaz egy helyettesítő tanúsítványt az *.azurewebsites.net tartományhoz. Ha egyéni tartománynevet használ, meg kell adnia egy, az egyéni tartománynak megfelelő tanúsítványt. A legegyszerűbb megoldás az, ha közvetlenül az Azure Portalon vásárol egy tanúsítványt. Más hitelesítésszolgáltatóktól származó tanúsítványokat is importálhat. További információ: SSL-tanúsítvány vásárlása és konfigurálása a Azure-alkalmazás szolgáltatáshoz.

A HTTPS alapértelmezés szerint nincs engedélyezve az ARM-sablon üzembe helyezésében. Biztonsági szempontból ajánlott, hogy az alkalmazás kikényszerítse a HTTPS használatát a HTTP-kérelmek átirányításával. Implementálhatja a HTTPS-t az alkalmazásban, vagy használhat url-átírási szabályt az Azure-alkalmazás Service-ben lévő alkalmazások HTTPS-engedélyezésében leírtak szerint.

Hitelesítés

Javasoljuk, hogy hitelesítsen egy identitásszolgáltatót (IDP), például a Microsoft Entra ID-t, a Facebookot, a Google-t vagy a Twittert. A hitelesítési folyamathoz használja az OAuth 2 vagy az OpenID Connect (OIDC) megoldást. A Microsoft Entra ID funkciókkal kezeli a felhasználókat és csoportokat, alkalmazásszerepköröket hoz létre, integrálja a helyszíni identitásokat, és háttérszolgáltatásokat használ, például a Microsoft 365-öt és a Skype Vállalati verzió.

Kerülje, hogy az alkalmazás közvetlenül kezelje a felhasználói bejelentkezéseket és hitelesítő adatokat. Potenciális támadási felületet hoz létre. Legalább e-mailes megerősítést, jelszó-helyreállítást és többtényezős hitelesítést, a jelszó erősségének ellenőrzését és a jelszókivonatok biztonságos tárolását kell elvégeznie. A nagy identitásszolgáltatók kezelik ezeket a dolgokat, és folyamatosan figyelik és fejlesztik biztonsági gyakorlataikat.

Fontolja meg az App Service-hitelesítés használatát az OAuth- vagy OIDC-hitelesítési folyamat implementálásához. Az App Service-hitelesítés előnyei a következők:

  • Könnyen konfigurálható.
  • Az egyszerű hitelesítési forgatókönyvekhez nem szükséges kód.
  • Támogatja a delegált hitelesítést: az OAuth hozzáférési tokenek lehetővé teszik az erőforrások használatát egy felhasználó nevében.
  • Rendelkezik beépített tokengyorsítótárral.

Az App Service-hitelesítés néhány korlátja:

  • Korlátozottak a testreszabási lehetőségek.
  • A delegált engedélyezés bejelentkezési munkamenetenként egy háttérerőforrásra korlátozódik.
  • Ha több IDP-t használ, nincs beépített mechanizmus az otthoni felderítéshez.
  • Több-bérlős forgatókönyvek esetén az alkalmazásnak kell implementálnia a tokenkiállító ellenőrzését végző logikát.

A forgatókönyv üzembe helyezése

Ez az architektúra egy Azure-alkalmazás szolgáltatáscsomagot és egy üres alkalmazást tartalmaz. Az Azure SQL Database-t, az Azure Key Vaultot használja az adatbázis kapcsolati sztring tárolására, valamint az Azure Monitort naplózáshoz, monitorozáshoz és riasztáshoz.

Az alábbi paranccsal hozzon létre egy erőforráscsoportot az üzembe helyezéshez. A Kipróbálás gombra kattintva beágyazott rendszerhéjat használhat.

az group create --name basic-web-app --location eastus

Futtassa a következő parancsot a webalkalmazás és a támogató infrastruktúra üzembe helyezéséhez. Amikor a rendszer kéri, adjon meg egy felhasználónevet és jelszót. Ezek az értékek az Azure SQL Database-példány eléréséhez használhatók.

az deployment group create --resource-group basic-web-app  \
    --template-uri https://raw.githubusercontent.com/mspnp/samples/master/solutions/basic-web-app/azuredeploy.json

Részletes információkért és további üzembehelyezési lehetőségekért tekintse meg a megoldás üzembe helyezéséhez használt ARM-sablonokat.

További lépések

Tippek az alkalmazás hibaelhárításához:

Termékdokumentáció:

Microsoft Learn-modulok: