Procedura dettagliata per un'infrastruttura di esempio di Azure per macchine virtuali LinuxExample Azure infrastructure walkthrough for Linux VMs

Questo articolo fa parte di una serie più ampia che offre considerazioni di progettazione e linee guida per la compilazione di un'infrastruttura di applicazione in Azure.This article is part of a wider series to provide you with design considerations and guidelines as you build out an application infrastructure in Azure. È possibile vedere gli altri argomenti della serie.You can view the additional topics in the series. Anche se è possibile compilare rapidamente un ambiente di sviluppo e test in Azure, esistono altre considerazioni di cui tener conto per l'implementazione di un ambiente di produzione a disponibilità elevata e sicuro.Although you can quickly build out a dev/test environment in Azure, there are additional considerations when implementing a production-ready, highly available, and secure environment.

Questo articolo illustra le modalità di compilazione di un'infrastruttura di applicazione di esempio.This article walks through building out an example application infrastructure. Sarà trattata la progettazione di un'infrastruttura per un semplice negozio online che riunisce tutte le linee guida e le decisioni sulle convenzioni di denominazione, i set di disponibilità, le reti virtuali e i servizi di bilanciamento del carico e l'effettiva distribuzione delle macchine virtuali.We detail designing an infrastructure for a simple on-line store that brings together all the guidelines and decisions around naming conventions, availability sets, virtual networks and load balancers, and actually deploying your virtual machines (VMs).

Carico di lavoro di esempioExample workload

Adventure Works Cycles desidera compilare un'applicazione per un negozio online in Azure, che è costituita da:Adventure Works Cycles wants to build an on-line store application in Azure that consists of:

  • Due server nginx che eseguono il client front-end in un livello WebTwo nginx servers running the client front-end in a web tier
  • Due server nginx che elaborano i dati e gli ordini in un livello applicazioneTwo nginx servers processing data and orders in an application tier
  • Due server MongoDB che fanno parte di un cluster partizionato per l'archiviazione dei dati sui prodotti e degli ordini in un livello di databaseTwo MongoDB servers part of a sharded cluster for storing product data and orders in a database tier
  • Due controller di dominio di Active Directory per gli account dei clienti e dei fornitori in un livello di autenticazioneTwo Active Directory domain controllers for customer accounts and suppliers in an authentication tier
  • Tutti i server si trovano in due subnet:All the servers are located in two subnets:
    • una subnet front-end per i server Weba front-end subnet for the web servers
    • una subnet back-end per i server applicazioni, i cluster MongoDB e i controller di dominioa back-end subnet for the application servers, MongoDB cluster, and domain controllers

Diagramma dei diversi livelli di infrastruttura dell'applicazione

Il traffico Web protetto in ingresso deve essere sottoposto al bilanciamento del carico tra i server Web mentre i clienti visitano il negozio online.Incoming secure web traffic must be load-balanced among the web servers as customers browse the on-line store. Il traffico di elaborazione degli ordini sotto forma di richieste HTTP provenienti dai server Web deve essere bilanciato tra i server applicazioni.Order processing traffic in the form of HTTP requests from the web servers must be load-balanced among the application servers. Inoltre, l'infrastruttura deve essere progettata per l'elevata disponibilità.Additionally, the infrastructure must be designed for high availability.

La progettazione risultante deve includere:The resulting design must incorporate:

  • Una sottoscrizione e un account di AzureAn Azure subscription and account
  • Un unico gruppo di risorseA single resource group
  • Azure Managed DisksAzure Managed Disks
  • Una rete virtuale con due subnetA virtual network with two subnets
  • Set di disponibilità per le macchine virtuali con ruoli similiAvailability sets for the VMs with a similar role
  • Macchine virtualiVirtual machines

Tutti gli elementi devono rispettare le convenzioni di denominazione seguenti:All the above follow these naming conventions:

  • Adventure Works Cycles usa come prefisso [carico di lavoro IT]-[località]-[risorsa di Azure]Adventure Works Cycles uses [IT workload]-[location]-[Azure resource] as a prefix
    • In questo esempio, "azos" (Azure online Store) è il nome del carico di lavoro IT e "use" (Stati Uniti orientali 2) è la localitàFor this example, "azos" (Azure On-line Store) is the IT workload name and "use" (East US 2) is the location
  • Le reti virtuali usano AZOS-USE-VN[numero]Virtual networks use AZOS-USE-VN[number]
  • I set di disponibilità usano azos-use-as-[ruolo]Availability sets use azos-use-as-[role]
  • I nomi delle macchine virtuali usano azos-use-vm-[nomevm]Virtual machine names use azos-use-vm-[vmname]

Sottoscrizioni e account di AzureAzure subscriptions and accounts

Adventure Works Cycles usa la propria sottoscrizione aziendale, denominata Adventure Works Enterprise Subscription, per fornire la fatturazione per questo carico di lavoro IT.Adventure Works Cycles is using their Enterprise subscription, named Adventure Works Enterprise Subscription, to provide billing for this IT workload.

ArchiviazioneStorage

Adventure Works Cycles ha determinato che è necessario usare Managed Disks di Azure.Adventure Works Cycles determined that they should use Azure Managed Disks. Durante la creazione di macchine virtuali, vengono usati entrambi i livelli di archiviazione disponibili:When creating VMs, both storage available storage tiers are used:

  • Archiviazione Standard per i server Web, i server applicazioni e i controller di dominio e relativi dischi dati.Standard storage for the web servers, application servers, and domain controllers and their data disks.
  • Archiviazione Premium per i server del cluster partizionato MongoDB e i relativi dischi dati.Premium storage for the MongoDB sharded cluster servers and their data disks.

Rete virtuale e subnetVirtual network and subnets

Poiché la rete virtuale non necessita di connettività costante alla rete locale Adventure Work Cycles, l’azienda ha optato per una rete virtuale solo cloud.Because the virtual network does not need ongoing connectivity to the Adventure Work Cycles on-premises network, they decided on a cloud-only virtual network.

Contoso ha creato una rete virtuale solo cloud con le impostazioni seguenti tramite il portale di Azure:They created a cloud-only virtual network with the following settings using the Azure portal:

  • Nome: AZOS-USE-VN01Name: AZOS-USE-VN01
  • Sede: Stati Uniti orientali 2Location: East US 2
  • Spazio degli indirizzi della rete virtuale: 10.0.0.0/8Virtual network address space: 10.0.0.0/8
  • Prima subnet:First subnet:
    • Nome: FrontEndName: FrontEnd
    • Spazio degli indirizzi: 10.0.1.0/24Address space: 10.0.1.0/24
  • Seconda subnet:Second subnet:
    • Nome: BackEndName: BackEnd
    • Spazio degli indirizzi: 10.0.2.0/24Address space: 10.0.2.0/24

Set di disponibilitàAvailability sets

Per mantenere elevata la disponibilità di tutti i quattro i livelli del negozio online, Adventure Works Cycles ha optato per quattro set di disponibilità:To maintain high availability of all four tiers of their on-line store, Adventure Works Cycles decided on four availability sets:

  • azos-use-as-web per i server Webazos-use-as-web for the web servers
  • azos-use-as-app per i server applicazioniazos-use-as-app for the application servers
  • azos-use-as-db per i server nel cluster partizionato MongoDBazos-use-as-db for the servers in the MongoDB sharded cluster
  • azos-use-as-dc per i controller di dominioazos-use-as-dc for the domain controllers

Macchine virtualiVirtual machines

Adventure Works Cycles ha optato per i seguenti nomi per le macchine virtuali di Azure:Adventure Works Cycles decided on the following names for their Azure VMs:

  • azos-use-vm-web01 per il primo server Webazos-use-vm-web01 for the first web server
  • azos-use-vm-web02 per il secondo server Webazos-use-vm-web02 for the second web server
  • azos-use-vm-app01 per il primo server applicazioniazos-use-vm-app01 for the first application server
  • azos-use-vm-app02 , per il secondo server applicazioniazos-use-vm-app02 for the second application server
  • azos-use-vm-db01 per il primo server MongoDB nel clusterazos-use-vm-db01 for the first MongoDB server in the cluster
  • azos-use-vm-db02 per il secondo server MongoDB nel clusterazos-use-vm-db02 for the second MongoDB server in the cluster
  • azos-use-vm-dc01 per il primo controller di dominioazos-use-vm-dc01 for the first domain controller
  • azos-use-vm-dc02 per il secondo controller di dominioazos-use-vm-dc02 for the second domain controller

Di seguito è riportata la configurazione risultante.Here is the resulting configuration.

Infrastruttura dell'applicazione finale distribuita in Azure

Questa configurazione include:This configuration incorporates:

  • Una rete virtuale solo cloud con due subnet (front-end e back-end)A cloud-only virtual network with two subnets (FrontEnd and BackEnd)
  • Managed Disks di Azure con dischi Standard e PremiumAzure Managed Disks using both Standard and Premium disks
  • Quattro set di disponibilità, uno per ciascun livello del negozio onlineFour availability sets, one for each tier of the on-line store
  • Le macchine virtuali per i quattro livelliThe virtual machines for the four tiers
  • Un set esterno con bilanciamento del carico per il traffico Web basato su HTTPS da Internet ai server WebAn external load balanced set for HTTPS-based web traffic from the Internet to the web servers
  • Un set interno con bilanciamento del carico per il traffico Web crittografato dai server Web ai server applicazioniAn internal load balanced set for unencrypted web traffic from the web servers to the application servers
  • Un unico gruppo di risorseA single resource group