W tym artykule opisano rozwiązanie kontenera do hostowania dużej, intensywnie korzystającej z magazynu instalacji platformy WordPress na platformie Azure. Rozwiązanie maksymalizuje skalowalność i bezpieczeństwo. Kluczowe składniki obejmują usługę Azure Front Door, usługę Azure Kubernetes Service (AKS) i usługę Azure NetApp Files.
Architektura
Pobierz plik programu Visio z tą architekturą.
Uwaga
To rozwiązanie można rozszerzyć, implementując porady i zalecenia, które nie są specyficzne dla żadnej konkretnej metody hostingu WordPress. Aby uzyskać ogólne porady dotyczące wdrażania instalacji platformy WordPress, zobacz WordPress na platformie Azure.
Przepływ danych
- Użytkownicy uzyskują dostęp do witryny internetowej frontonu za pośrednictwem usługi Azure Front Door z włączoną zaporą aplikacji internetowej platformy Azure.
- Usługa Azure Front Door używa wewnętrznego wystąpienia usługi Azure Load Balancer jako źródła. Wewnętrzny moduł równoważenia obciążenia jest ukrytym składnikiem usługi AKS. Usługa Azure Front Door pobiera wszystkie dane, które nie są buforowane.
- Wewnętrzny moduł równoważenia obciążenia dystrybuuje ruch przychodzący do zasobników w usłudze AKS.
- Usługa Azure Key Vault przechowuje wpisy tajne, takie jak klucz prywatny, który jest certyfikatem X.509.
- Aplikacja WordPress używa prywatnego punktu końcowego do uzyskiwania dostępu do wystąpienia serwera elastycznego usługi Azure Database for MySQL. Aplikacja WordPress pobiera informacje dynamiczne z tej zarządzanej usługi bazy danych.
- Cała zawartość statyczna jest hostowana w usłudze Azure NetApp Files. Rozwiązanie używa sterownika Astra Trident Container Storage Interface (CSI) z protokołem NFS.
Składniki
- Usługa Azure Front Door to nowoczesna sieć dostarczania zawartości w chmurze. Jako rozproszona sieć serwerów usługa Azure Front Door wydajnie dostarcza zawartość internetową użytkownikom. Sieci dostarczania zawartości minimalizują opóźnienie, przechowując buforowane zawartość na serwerach brzegowych w lokalizacjach punktów obecności w pobliżu użytkowników końcowych.
- Usługa Azure Virtual Network umożliwia wdrażanie zasobów w celu komunikowania się ze sobą, Internetu i sieci lokalnych. Sieci wirtualne zapewniają izolację i segmentację. Umożliwiają one również filtrowanie i kierowanie ruchu oraz nawiązywanie połączeń między różnymi lokalizacjami. W tym rozwiązaniu dwie sieci są połączone za pośrednictwem komunikacji równorzędnej sieci wirtualnych.
- Usługa Azure DDoS Protection oferuje ulepszone funkcje ograniczania ryzyka ataków DDoS. Po połączeniu tych funkcji z najlepszymi rozwiązaniami dotyczącymi projektowania aplikacji pomagają one bronić przed atakami DDoS. Należy włączyć ochronę przed atakami DDoS w sieciach wirtualnych obwodowych.
- Sieciowe grupy zabezpieczeń używają listy reguł zabezpieczeń, aby zezwalać na ruch sieciowy przychodzący lub wychodzący lub wychodzący na podstawie źródłowego lub docelowego adresu IP, portu i protokołu. W tym scenariuszu podsieci reguły sieciowej grupy zabezpieczeń ograniczają przepływ ruchu między składnikami aplikacji.
- Usługa Load Balancer dystrybuuje ruch przychodzący na podstawie reguł i wyników sondy kondycji. Moduł równoważenia obciążenia zapewnia małe opóźnienia i wysoką przepływność. Dzięki rozłożeniu ruchu między wieloma serwerami moduł równoważenia obciążenia zwiększa skalowalność do aplikacji Transmission Control Protocol (TCP) i User Datagram Protocol (UDP). W tym scenariuszu moduł równoważenia obciążenia dystrybuuje ruch z sieci dostarczania zawartości do serwerów internetowych frontonu.
- Usługa AKS to w pełni zarządzana usługa Kubernetes, której można użyć do wdrażania i skalowania aplikacji konteneryzowanych oraz zarządzania nimi.
- Usługa Azure NetApp Files zapewnia w pełni zarządzane rozwiązanie magazynu wymagające dużej wydajności i opóźnienia. W tym rozwiązaniu usługa Azure NetApp Files hostuje całą zawartość platformy WordPress, aby wszystkie zasobniki miały dostęp do danych.
- Usługa Azure Cache for Redis to magazyn danych w pamięci. Możesz użyć usługi Azure Cache for Redis do hostowania pamięci podręcznej klucz-wartość w tym rozwiązaniu. Ta pamięć podręczna jest współdzielona między wszystkimi zasobnikami i jest używana do wtyczek optymalizacji wydajności WordPress.
- Usługa Key Vault przechowuje i kontroluje dostęp do haseł, certyfikatów i kluczy.
- Azure Database for MySQL — serwer elastyczny to usługa relacyjnej bazy danych oparta na aucie bazy danych MySQL typu open source. Opcja wdrażania serwera elastycznego to w pełni zarządzana usługa, która zapewnia szczegółową kontrolę i elastyczność zarządzania bazami danych oraz ustawienia konfiguracji. W tym scenariuszu usługa Azure Database for MySQL przechowuje dane WordPress.
Alternatywy
- Zamiast korzystać z usługi zarządzanej Azure Cache for Redis, możesz użyć zasobnika hostowanego samodzielnie w klastrze usługi AKS jako pamięci podręcznej.
- Zamiast korzystać z rozwiązania magazynu zarządzanego, takiego jak Azure NetApp Files, możesz użyć własnego rozwiązania, takiego jak magazyn Rook-Ceph. Aby uzyskać więcej informacji, zobacz how to Use Rook Ceph on Azure Kubernetes Service (Jak używać rozwiązania Rook Ceph w usłudze Azure Kubernetes Service).
Szczegóły scenariusza
Ten przykładowy scenariusz jest odpowiedni dla dużych, intensywnie korzystających z magazynu instalacji platformy WordPress. Ten model wdrażania może być skalowany w celu spełnienia skoków ruchu do lokacji.
Potencjalne przypadki użycia
- Blogi o dużym natężeniu ruchu, które używają platformy WordPress jako systemu zarządzania zawartością
- Firmy lub witryny internetowe handlu elektronicznego korzystające z platformy WordPress
Kwestie wymagające rozważenia
Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.
Niezawodność
Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.
Podczas wdrażania tego rozwiązania należy wziąć pod uwagę następujące zalecenia:
- Rozwiązanie używa zasobników w usłudze AKS i modułu równoważenia obciążenia do dystrybucji ruchu przychodzącego. Takie podejście zapewnia wysoką dostępność, nawet jeśli wystąpi awaria zasobnika.
- Rozwiązanie obsługuje wiele regionów, replikację danych i skalowanie automatyczne. Składniki dystrybuują ruch do zasobników. Sondy kondycji są używane tak, aby ruch był dystrybuowany tylko do zasobników w dobrej kondycji.
- Wszystkie składniki sieciowe są frontonowane przez usługę Azure Front Door. Takie podejście sprawia, że zasoby sieciowe i aplikacja są odporne na problemy, które w przeciwnym razie zakłócałyby ruch i wpływały na dostęp użytkowników końcowych.
- Azure Front Door to globalna usługa, która obsługuje zestawy skalowania maszyn wirtualnych wdrożone w innym regionie.
- Gdy używasz usługi Azure Front Door do buforowania wszystkich odpowiedzi, uzyskasz niewielką korzyść z dostępności. W szczególności, gdy źródło nie odpowiada, nadal możesz uzyskać dostęp do zawartości. Buforowanie nie zapewnia jednak kompletnego rozwiązania dostępności.
- Aby zwiększyć dostępność, zreplikuj magazyn usługi Azure NetApp Files między sparowanych regionów. Aby uzyskać więcej informacji, zobacz Replikacja między regionami za pomocą usługi Azure NetApp Files.
- Aby zwiększyć dostępność usługi Azure Database for MySQL, postępuj zgodnie z opcjami wysokiej dostępności, które spełniają Twoje potrzeby.
Zabezpieczenia
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.
Podczas wdrażania tego rozwiązania należy wziąć pod uwagę następujące najlepsze rozwiązania:
- Użyj zapory aplikacji internetowej w usłudze Azure Front Door, aby chronić ruch sieciowy wirtualny, który przepływa do warstwy aplikacji frontonu. Aby uzyskać więcej informacji, zobacz Azure Web Application Firewall on Azure Front Door (Zapora aplikacji internetowej platformy Azure w usłudze Azure Front Door).
- Nie zezwalaj na przepływ wychodzącego ruchu internetowego z warstwy bazy danych.
- Nie zezwalaj na publiczny dostęp do magazynu prywatnego i wyłączaj publiczny dostęp do zasobów. Używaj prywatnych punktów końcowych dla usług Azure Database for MySQL, Azure Cache for Redis, Key Vault i Azure Container Registry. Aby uzyskać więcej informacji, zobacz Azure Private Link.
Aby uzyskać więcej informacji na temat zabezpieczeń platformy WordPress, zobacz Ogólne porady dotyczące zabezpieczeń i wydajności platformy WordPress oraz dokumentację zabezpieczeń platformy Azure.
Optymalizacja kosztów
Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.
Zapoznaj się z następującymi zagadnieniami dotyczącymi kosztów podczas wdrażania tego rozwiązania:
- Oczekiwania dotyczące ruchu (GB/miesiąc). Ilość ruchu jest czynnikiem, który ma największy wpływ na koszt. Ilość odbieranego ruchu określa liczbę potrzebnych węzłów usługi AKS i cenę transferu danych wychodzących. Ruch jest również bezpośrednio skorelowany z ilością danych dostarczanych przez sieć dostarczania zawartości, gdzie koszty transferu danych wychodzących są tańsze.
- Ilość hostowanych danych. Ważne jest, aby wziąć pod uwagę ilość hostujących danych, ponieważ cennik usługi Azure NetApp Files jest oparty na pojemności zarezerwowanej. Aby zoptymalizować koszty, zarezerwuj minimalną pojemność, której potrzebujesz dla danych.
- Procent zapisu. Zastanów się, ile nowych danych zapisujesz w witrynie internetowej i jaki jest koszt ich przechowywania. W przypadku wdrożeń obejmujących wiele regionów ilość nowych danych zapisywanych w witrynie internetowej jest skorelowana z ilością danych dublowanych w różnych regionach.
- Zawartość statyczna a dynamiczna. Monitoruj wydajność i pojemność magazynu bazy danych, aby określić, czy tańsza jednostka SKU może obsługiwać witrynę. Baza danych przechowuje zawartość dynamiczną, a sieć dostarczania zawartości buforuje zawartość statyczną.
- Optymalizacja klastra usługi AKS. Aby zoptymalizować koszty klastra usługi AKS, postępuj zgodnie z ogólnymi wskazówkami dotyczącymi usługi AKS, takimi jak wskazówki dotyczące rozmiaru maszyn wirtualnych i rezerwacji platformy Azure. Aby uzyskać więcej informacji, zobacz Optymalizacja kosztów usługi AKS.
Efektywność wydajności
Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.
Ten scenariusz używa zasobników w usłudze AKS do hostowania frontonu. Dzięki funkcji automatycznego skalowania liczba zasobników z uruchomioną warstwą aplikacji frontonu może być automatycznie skalowana w odpowiedzi na zapotrzebowanie klientów. Mogą również być skalowane na podstawie zdefiniowanego harmonogramu. Aby uzyskać więcej informacji, zobacz Opcje skalowania aplikacji w usłudze Azure Kubernetes Service (AKS).
Ważne
Aby uzyskać najlepszą wydajność, niezbędne jest zainstalowanie trwałego woluminu korzystającego z protokołu NFS w wersji 4.1. W poniższym przykładzie YAML pokazano, jak skonfigurować PersistentVolume
obiekt w tym celu. Zanotuj mountOptions
wartość pola.
kind: PersistentVolume
...
accessModes:
- ReadWriteMany
mountOptions:
- vers=4.1
nfs:
server: xx.xx.xx.xx
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Vaclav Jirovsky | Architekt rozwiązań w chmurze
Inni współautorzy:
- Adrian Calinescu | Starszy architekt rozwiązań w chmurze
Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
Dokumentacja produktu:
- Co to jest usługa Azure Front Door?
- Co to jest usługa Azure Web Application Firewall?
- Co to jest usługa Azure NetApp Files
- Tworzenie woluminu NFS dla usługi Azure NetApp Files
- Konfigurowanie usługi Azure NetApp Files dla usługi Azure Kubernetes Service
- Azure Database for MySQL — serwer elastyczny
- Co to jest usługa Azure Virtual Network?
- Informacje o usłudze Azure Key Vault
- Co to jest usługa Azure Load Balancer?
- Co to jest usługa Azure DDoS Protection?
Moduły szkoleniowe firmy Microsoft:
- Tworzenie i wdrażanie aplikacji na platformie Kubernetes
- Wprowadzenie do usługi Azure NetApp Files
- Równoważenie obciążenia ruchu usługi internetowej za pomocą usługi Azure Front Door
- Implementowanie usługi Azure Key Vault
- Wprowadzenie do usługi Azure Virtual Network