Szerkesztés

Share via


Magento e-kereskedelmi platform az Azure Kubernetes Service-ben

Microsoft Entra ID
Azure Container Registry
Azure Database for MySQL
Azure Files
Azure Kubernetes Service (AKS)
Azure Monitor

Ez a cikk a Magento nyílt forráskódú verziójáról szól, amely egy PHP-ben írt e-kereskedelmi platform. Ez a cikk nem az Adobe Commerce szolgáltatásról szól. Ez a példaforgatókönyv az Azure Kubernetes Service-ben (AKS) üzembe helyezett Magento-t mutatja be, és ismerteti a Magento Azure-ban való üzemeltetésének gyakori ajánlott eljárásait.

Architektúra

Ábra az Azure Kubernetes Service-ben üzembe helyezett Magento-ról más Azure-összetevőkkel.

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

Munkafolyamat

  • Az Azure Kubernetes Service (AKS) különböző podokban helyezi üzembe a Varnish, a Magento, a Redis és az Elasticsearch Kubernetes-fürtöt.
  • Az AKS létrehoz egy virtuális hálózatot az ügynökcsomópontok üzembe helyezéséhez. Hozza létre előre a virtuális hálózatot az alhálózat konfigurációjának, a privát kapcsolatnak és a kimenő forgalom korlátozásának beállításához.
  • A lakk a HTTP-kiszolgálók elé telepít, hogy teljes oldalas gyorsítótárként működjön.
  • Az Azure Database for MySQL tranzakciós adatokat, például megrendeléseket és katalógusokat tárol. A 8.0-s verzió használata ajánlott.
  • Az Azure Files Premium, az Azure NetApp Files vagy az azzal egyenértékű , hálózathoz csatlakoztatott tárolórendszer (NAS) médiafájlokat, például termékképeket tárol. A Magento-nak olyan Kubernetes-kompatibilis fájlrendszerre van szüksége, amely képes köteteket csatlakoztatni ReadWriteMany módban, például Azure Files Premium vagy Azure NetApp Files módban. Az Azure Kubernetes Service (AKS) alkalmazásainak tárolási lehetőségei. Javasoljuk, hogy másodpercenként tesztelje a bemeneti/kimeneti műveleteket (IOPS), és válassza ki az Önnek megfelelő beállításokat.
  • A tartalomkézbesítési hálózat (CDN) olyan statikus tartalmakat szolgál ki, mint a CSS, a JavaScript és a képek. A tartalom CDN-en keresztüli kiszolgálása minimálisra csökkenti a felhasználók és az adatközpont közötti hálózati késést. A CDN a statikus tartalom gyorsítótárazásával és kiszolgálásával jelentős terhelést távolíthat el a NAS-ból.
  • A Redis tárolja a munkamenet-adatokat. A Redis tárolókon való üzemeltetése teljesítménybeli okokból ajánlott.
  • Az AKS Microsoft Entra-azonosítójú identitással hoz létre és kezel más Azure-erőforrásokat, például azure-terheléselosztókat, felhasználói hitelesítést, szerepköralapú hozzáférés-vezérlést és felügyelt identitást.
  • Az Azure Container Registry tárolja az AKS-fürtben üzembe helyezett privát Docker-rendszerképeket . Más tárolóregisztrációs adatbázisokat is használhat, például a Docker Hubot. Az alapértelmezett Magento-telepítés titkos kódokat ír a képre.
  • Az Azure Monitor metrikákat és naplókat gyűjt és tárol, beleértve az Azure szolgáltatásplatform metrikáit és az alkalmazás telemetriáját. Az Azure Monitor integrálható az AKS-sel a vezérlők, csomópontok és tárolómetrikák, valamint a tároló- és főcsomópontnaplók gyűjtéséhez.

Összetevők

Forgatókönyv részletei

A Magento-ról további információt a helyszíni telepítés áttekintésében talál.

Lehetséges használati esetek

Ez a megoldás a kiskereskedelmi iparág számára van optimalizálva.

Megfontolások

Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit, amely a számítási feladatok minőségének javítására használható vezérelvek halmaza. További információ: Microsoft Azure Well-Architected Framework.

Biztonság

Az alábbi biztonsági szempontokat érdemes figyelembe venni ehhez a forgatókönyvhöz:

Szerepköralapú hozzáférés-vezérlés (RBAC)

A Kubernetes és az Azure egyaránt rendelkezik szerepköralapú hozzáférés-vezérlési (RBAC) mechanizmusokkal.

  • Az Azure RBAC szabályozza az Azure-erőforrásokhoz való hozzáférést, beleértve az erőforrások létrehozásának lehetőségét is. Az Azure RBAC engedélyeket rendelhet a felhasználókhoz, csoportokhoz vagy szolgáltatásnevekhez, amelyek az alkalmazások által használt biztonsági identitások.

  • A Kubernetes RBAC szabályozza a Kubernetes API engedélyeit. A podok létrehozása és a podok listázása például olyan műveletek, amelyeket a Kubernetes RBAC engedélyezhet a felhasználóknak.

Az AKS integrálja az Azure és a Kubernetes RBAC mechanizmusait. Ha AKS-engedélyeket szeretne hozzárendelni a felhasználókhoz, hozzon létre szerepköröket és szerepkör-kötéseket:

  • A szerepkör olyan engedélyek készlete, amelyek egy névtéren belül érvényesek. Az engedélyek olyan igékként vannak definiálva, mint például a lekérés, frissítés, létrehozás vagy törlés az erőforrásokon, például podokon vagy üzemelő példányokon.

  • A szerepkörkötés felhasználókat vagy csoportokat rendel a szerepkörökhöz.

  • A ClusterRole objektum egy olyan szerepkört határoz meg, amely a teljes AKS-fürtre vonatkozik az összes névtérben. Ha felhasználókat vagy csoportokat szeretne hozzárendelni egy ClusterRole-hoz, hozzon létre egy ClusterRoleBindinget.

  • Másik lehetőségként használhatja az Azure RBAC-t a Kubernetes-engedélyezéshez, amely egységes felügyeletet és hozzáférés-vezérlést tesz lehetővé az Azure-erőforrások, az AKS és a Kubernetes-erőforrások között.

Az AKS-fürt létrehozásakor konfigurálhatja úgy, hogy a Microsoft Entra ID-t használja a felhasználói hitelesítéshez.

Méretezhetőség

A skálázhatóságot többféleképpen optimalizálhatja ehhez a forgatókönyvhöz:

Média- és statikus fájlok

  • Az Azure Files, az Azure NetApp Files vagy egy másik, hálózathoz csatlakoztatott tárolórendszer (NAS) megfelelő kiépítése. A Magento több ezer médiafájlt, például termékképet tárolhat. Ügyeljen arra, hogy a NAS-termékeket másodpercenként elegendő bemeneti/kimeneti művelettel (IOPS) építse ki a kereslet kezeléséhez.

  • Csökkentse a statikus tartalom( például HTML, CSS és JavaScript) méretét. A minification csökkentheti a sávszélesség költségeit, és rugalmasabb felhasználói élményt nyújt.

Adatbázis-kapcsolat

  • Kapcsolja be az állandó kapcsolatot a MySQL-adatbázissal, így a Magento ahelyett, hogy minden kéréshez újat hoz létre, használja újra a meglévő kapcsolatot. Az állandó kapcsolat bekapcsolásához adja hozzá a következő sort a db Magento env.php fájl szakaszához:

    'persistent' => '1'

  • Ha a MySQL túl sok processzort használ fel, csökkentse a kihasználtságot azáltal, hogy kikapcsolja a termékszámot a Magento-konfiguráció rétegzett navigációjából:

    magento config:set -vvv catalog/layered_navigation/display_product_count 0

Gyorsítótárazás

  • Az OPcache konfigurálása PHP-kód gyorsítótárazásához és optimalizálásához.

    Győződjön meg arról, hogy a következő irányelvek vannak beállítva és nem vannak megadva a php.ini:

    opcache.enable=1

    opcache.save_comments=1

    opcache.validate_timestamps=0

  • A Varnish-gyorsítótár terheléselosztásához futtasson több példányt a podokon, hogy skálázható legyen.

Naplózás

Korlátozza a hozzáférés naplózását, hogy elkerülje a teljesítményproblémákat, és megakadályozza a bizalmas adatok, például az ügyfél IP-címeinek felfedését.

  • A következő Lakk paranccsal hibaszintre korlátozhatja a naplózást:

    varnishd -s malloc,1G -a :80 -f /etc/varnish/magento.vcl && varnishlog -q "RespStatus >= 400 or BerespStatus >= 400"

  • Ha Apache webkiszolgálót használ a bejövő forgalomhoz, az Apache-naplózás hibaszintre való korlátozásához adja hozzá a következő sort a Magento-bejegyzéshez VirtualHost az Apache-kiszolgáló konfigurációjában:

    CustomLog /dev/null common

  • Kapcsolja ki a PHP-FPM hozzáférési naplóit úgy, hogy megjegyzést fűz a beállításhoz az access.log összes PHP-FPM-konfigurációban.

Elérhetőség

Fontolja meg az alábbi módszereket a rendelkezésre állás optimalizálásához ehhez a forgatókönyvhöz:

Állapotminták

A Kubernetes kétféle állapotadat-mintavételt határoz meg:

  • A készültségi mintavétel jelzi a Kubernetesnek, hogy a pod készen áll-e a kérések elfogadására.
  • Az élőség-mintavétel jelzi a Kubernetesnek, hogy el kell-e távolítani egy podot, és új példányt kell-e elindítani.

Testre szabhatja a Kubernetes állapotmintáit, és ezek használatával megállapíthatja, hogy egy pod állapota megfelelő-e.

Rendelkezésre állási zónák

A rendelkezésre állási zónák az Azure-régiók egyedi fizikai helyei, amelyek segítenek megvédeni az alkalmazásokat és az adatokat az adatközpontok hibáitól. Minden zóna egy vagy több adatközpontból áll. A zónákban lévő alkalmazások akkor is elérhetők maradhatnak, ha egyetlen adatközpontban fizikai hiba történik.

Az AKS-fürtök több rendelkezésre állási zónában is üzembe helyezhetők, így magasabb rendelkezésre állási szintet biztosítanak, és védelmet nyújtanak a hardverhibák és a tervezett karbantartási események ellen. A fürtcsomópont-készletek több zónára való definiálása lehetővé teszi, hogy a csomópontok akkor is működjenek, ha egyetlen zóna leáll. Az AKS rendelkezésre állási zónákban való üzembe helyezéséről további információt a rendelkezésre állási zónákat használó AKS-fürt létrehozása című témakörben talál.

Erőforrás-korlátozások

  • Az erőforrás-versengés befolyásolhatja a szolgáltatás rendelkezésre állását. Definiáljon tárolóerőforrás-korlátozásokat, hogy egyetlen tároló se terhelhesse túl a fürt memóriáját és CPU-erőforrásait. Az AKS-diagnosztikával azonosíthatja a fürtben előforduló problémákat.

  • Az erőforráskorlát használatával korlátozhatja a tárolók számára engedélyezett összes erőforrást, így egy adott tároló nem tud éhen hagyni másokat.

DevOps

Az alábbi üzemeltetési szempontokat érdemes figyelembe venni ehhez a forgatókönyvhöz:

  • Ebben a forgatókönyvben a MySQL nem tesz közzé nyilvános végpontot. Ha a buildkiszolgáló a konfigurációs beállításokat a háttérbeli MySQL-adatbázisban tárolja, mindenképpen telepítse a kiszolgálót ugyanabba a virtuális hálózati alhálózatba, amelyhez a MySQL szolgáltatásvégponton keresztül csatlakozik.

  • Az Azure Container Registry vagy más tárolóregisztrációs adatbázis, például a Docker Hub használatával tárolja a fürtben üzembe helyezett privát Docker-lemezképeket. Az AKS a Microsoft Entra-identitásával hitelesítheti az Azure Container Registryt.

Figyelés

Az Azure Monitor kulcsfontosságú metrikákat biztosít az összes Azure-szolgáltatáshoz, beleértve az AKS-ből származó tárolómetrikákat is. Hozzon létre egy irányítópultot, amely az összes metrikát egy helyen jeleníti meg.

Képernyőkép az Azure Monitor monitorozási irányítópultjáról.

Az Azure Monitor tárolókhoz való használata mellett mostantól a Prometheus felügyelt szolgáltatásával is gyűjthet és elemezhet metrikákat nagy méretekben egy Prometheus-kompatibilis monitorozási megoldáson keresztül.

Az Azure Managed Grafana (vagy ön által felügyelt Grafana) használatával Prometheus-metrikákat is megjeleníthet. Az Azure Managed Grafana használata esetén az Azure Monitor-munkaterület és az Azure Managed Grafana munkaterület összekapcsolásával a Grafana egy Grafana-irányítópulton használhatja az Azure Monitor-munkaterület adatait. Ezután több előre összeállított, Prometheus-metrikákat használó irányítópulthoz is hozzáférhet, és egyéni irányítópultokat is létrehozhat.

Képernyőkép egy Grafana-irányítópultról.

Teljesítménytesztelés

A Magento Performance Toolkit használata teljesítményteszteléshez. Az eszközkészlet Apache JMeter használatával szimulálja az ügyfelek viselkedését, például a bejelentkezést, a termékek böngészését és a kijelentkezést.

Érdemes megfontolnia az Azure Load Testing használatát is, amely egy teljes körűen felügyelt terheléstesztelési szolgáltatás, amely lehetővé teszi a nagy léptékű terhelést. Az Azure Load Testing segítségével url-cím használatával gyorsan létrehozhat terheléstesztet a webalkalmazáshoz. A speciálisabb terheléstesztelési forgatókönyvek esetében egy meglévő JMeter-tesztszkript újbóli használatával is létrehozhat terheléstesztet.

Költségoptimalizálás

A költségoptimalizálás a szükségtelen kiadások csökkentésének és a működési hatékonyság javításának módjairól szól. További információ: A költségoptimalizálási pillér áttekintése.

  • Kapacitástervezés a teljesítménytesztelés alapján.

  • Az Azure díjkalkulátorával megbecsülheti költségeit.

  • A Költségoptimalizálás alapelvei a Microsoft Azure Well-Architected Frameworkben című témakörben további költségelemzési szempontokat talál.

Következő lépések