Przykładowy przewodnik po infrastrukturze platformy Azure dla maszyn wirtualnych z systemem Linux

W tym artykule opisano tworzenie przykładowej infrastruktury aplikacji. Szczegółowo projektujemy infrastrukturę dla prostego magazynu lokalnego, który łączy wszystkie wytyczne i decyzje dotyczące konwencji nazewnictwa, zestawów dostępności, sieci wirtualnych i modułów równoważenia obciążenia oraz wdrażania maszyn wirtualnych.

Przykładowe obciążenie

Firma Adventure Works Cycles chce utworzyć aplikację sklepu online na platformie Azure, która składa się z następujących elementów:

  • Dwa serwery nginx z frontonem klienta w warstwie internetowej
  • Dwa serwery nginx przetwarzają dane i zamówienia w warstwie aplikacji
  • Dwie serwery Bazy danych MongoDB są częścią klastra podzielonego na fragmenty na potrzeby przechowywania danych produktów i zamówień w warstwie bazy danych
  • Dwa kontrolery domeny usługi Active Directory dla kont klientów i dostawców w warstwie uwierzytelniania
  • Wszystkie serwery znajdują się w dwóch podsieciach:
    • podsieć frontonu dla serwerów internetowych
    • podsieć zaplecza dla serwerów aplikacji, klastra Bazy danych MongoDB i kontrolerów domeny

Diagram różnych warstw infrastruktury aplikacji

Przychodzący bezpieczny ruch internetowy musi być zrównoważony wśród serwerów internetowych, gdy klienci przeglądają sklep internetowy. Kolejność przetwarzania ruchu w postaci żądań HTTP z serwerów internetowych musi być zrównoważona obciążenie między serwerami aplikacji. Ponadto infrastruktura musi być zaprojektowana pod kątem wysokiej dostępności.

Wynikowy projekt musi zawierać:

  • Subskrypcja i konto platformy Azure
  • Pojedyncza grupa zasobów
  • Dyski zarządzane platformy Azure
  • Sieć wirtualna z dwiema podsieciami
  • Zestawy dostępności dla maszyn wirtualnych z podobną rolą
  • Maszyny wirtualne

Wszystkie powyższe zasady nazewnictwa są zgodne z następującymi konwencjami nazewnictwa:

  • Cykle adventure works używają [obciążenia IT]-[location]-[zasób platformy Azure] jako prefiksu
    • W tym przykładzie "azos" (Azure On-line Store) to nazwa obciążenia IT, a "use" (Wschodnie stany USA 2) to lokalizacja
  • Sieci wirtualne używają AZOS-USE-VN[number]
  • Zestawy dostępności używają azos-use-as-[role]
  • Nazwy maszyn wirtualnych używają azos-use-vm-[vmname]

Subskrypcje i konta platformy Azure

Adventure Works Cycles korzysta z subskrypcji Enterprise o nazwie Adventure Works Enterprise Subscription w celu zapewnienia rozliczeń dla tego obciążenia IT.

Storage

Firma Adventure Works Cycles ustaliła, że powinna używać usługi Azure Dyski zarządzane. Podczas tworzenia maszyn wirtualnych używane są obie dostępne warstwy magazynowania:

  • Magazyn w warstwie Standardowa dla serwerów internetowych, serwerów aplikacji i kontrolerów domeny oraz ich dysków danych.
  • Magazyn w warstwie Premium dla serwerów klastra podzielonego na fragmenty bazy danych MongoDB i ich dysków danych.

Sieć wirtualna i podsieci

Ponieważ sieć wirtualna nie wymaga ciągłej łączności z siecią lokalną Adventure Work Cycles, zdecydowała się na sieć wirtualną tylko w chmurze.

Utworzyli sieć wirtualną tylko w chmurze z następującymi ustawieniami przy użyciu Azure Portal:

  • Nazwa: AZOS-USE-VN01
  • Lokalizacja: Wschodnie stany USA 2
  • Przestrzeń adresowa sieci wirtualnej: 10.0.0.0/8
  • Pierwsza podsieć:
    • Nazwa: FrontEnd
    • Przestrzeń adresowa: 10.0.1.0/24
  • Druga podsieć:
    • Nazwa: BackEnd
    • Przestrzeń adresowa: 10.0.2.0/24

Zestawy dostępności

Aby zapewnić wysoką dostępność wszystkich czterech warstw sklepu online, firma Adventure Works Cycles zdecydowała się na cztery zestawy dostępności:

  • azos-use-as-web dla serwerów internetowych
  • azos-use-as-app dla serwerów aplikacji
  • azos-use-as-db dla serwerów w klastrze podzielonym na fragmenty bazy danych MongoDB
  • azos-use-as-dc dla kontrolerów domeny

Maszyny wirtualne

Firma Adventure Works Cycles zdecydowała się na następujące nazwy maszyn wirtualnych platformy Azure:

  • azos-use-vm-web01 dla pierwszego serwera internetowego
  • azos-use-vm-web02 dla drugiego serwera internetowego
  • azos-use-vm-app01 dla pierwszego serwera aplikacji
  • azos-use-vm-app02 dla drugiego serwera aplikacji
  • azos-use-vm-db01 dla pierwszego serwera MongoDB w klastrze
  • azos-use-vm-db02 dla drugiego serwera MongoDB w klastrze
  • azos-use-vm-dc01 dla pierwszego kontrolera domeny
  • azos-use-vm-dc02 dla drugiego kontrolera domeny

Oto wynikowa konfiguracja.

Ostateczna infrastruktura aplikacji wdrożona na platformie Azure

Ta konfiguracja obejmuje:

  • Sieć wirtualna tylko w chmurze z dwiema podsieciami (FrontEnd i BackEnd)
  • Usługa Azure Dyski zarządzane z użyciem dysków w warstwie Standardowa i Premium
  • Cztery zestawy dostępności— jeden dla każdej warstwy magazynu online
  • Maszyny wirtualne dla czterech warstw
  • Zewnętrzny zestaw równoważenia obciążenia dla ruchu internetowego opartego na protokole HTTPS z Internetu do serwerów internetowych
  • Zestaw z wewnętrznym równoważeniem obciążenia dla niezaszyfrowanego ruchu internetowego z serwerów internetowych do serwerów aplikacji
  • Pojedyncza grupa zasobów