Trasferimento in modalità lift-and-shift ai contenitori con servizio app Azure

Microsoft Entra ID
Registro Azure Container
Servizio app di Azure

Idee per le soluzioni

Questo articolo descrive un'idea di soluzione. L'architetto cloud può usare queste linee guida per visualizzare i componenti principali per un'implementazione tipica di questa architettura. Usare questo articolo come punto di partenza per progettare una soluzione ben progettata in linea con i requisiti specifici del carico di lavoro.

Questa soluzione esegue la migrazione di app Web esistenti a contenitori distribuiti in servizio app, che consente di concentrarsi sulla composizione di contenitori che non si preoccupano della gestione dell'orchestrazione dei contenitori.

Architettura

Il diagramma dell'architettura mostra la migrazione di applicazioni esistenti ai contenitori in servizio Azure Kubernetes con Open Service Broker per Azure per accedere ai database di Azure.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. Lo sviluppatore converte l'applicazione Web esistente in contenitore.
  2. Lo sviluppatore pubblica l'immagine del contenitore in:
    1. Registro privato o Docker Hub.
    2. Oppure, un Registro Azure Container.
  3. servizio app esegue il pull dell'immagine con:
    1. Credenziali per il Registro di sistema privato o l'hub Docker, se usato.
    2. In alternativa, l'identità gestita, che usa un'entità di sicurezza Di Microsoft Entra per accedere alle Registro Azure Container.
  4. Connettori di servizio per accedere ad altre risorse di Azure.
  5. Lo sviluppatore esegue il push di una nuova immagine nel registro contenitori, che attiva gli aggiornamenti servizio app quando è abilitata la distribuzione continua.

Componenti

App Web per contenitori: con servizio app è possibile distribuire ed eseguire app Web in contenitori in Windows e Linux. L'app Web per contenitori offre agli sviluppatori una semplice possibilità di sfruttare una piattaforma completamente gestita, ma che vuole anche un singolo artefatto distribuibile contenente un'app e tutte le relative dipendenze. Un altro scenario di destinazione è costituito dagli sviluppatori che vogliono usare un framework o una versione personalizzata oltre le impostazioni predefinite integrate nella piattaforma del servizio app Azure. Le app Web in contenitori nel servizio app Azure possono essere ridimensionate in base alle esigenze e usare flussi di lavoro CI/CD semplificati con l'hub Docker, Registro Azure Container e GitHub.

Registro Azure Container: un registro di immagini Docker e Open Container Initiative (OCI), con supporto per tutti gli artefatti OCI. Usare immagini del contenitore in servizi di Azure come servizio app, Machine Learning e Batch. Ad esempio, quando si configura l'app Web per contenitori per l'app Web, è possibile specificare un'immagine del contenitore da Registro Azure Container.

Azure Cosmos DB: servizio di database NoSQL completamente gestito per la creazione e la modernizzazione di applicazioni scalabili e ad alte prestazioni. Azure Cosmos DB è integrato con i principali servizi di Azure, tra cui Funzioni di Azure, hub IoT, servizio Azure Kubernetes (servizio Azure Kubernetes), servizio app e altro ancora. È possibile scegliere tra più API di database, tra cui Azure Cosmos DB nativo per NoSQL, Azure Cosmos DB per MongoDB, Azure Cosmos DB per Apache Cassandra, Azure Cosmos DB per Apache Gremlin e Azure Cosmos DB per tabelle.

database SQL di Azure: un database relazionale completamente gestito con funzionalità di intelligence predefinite. database SQL di Azure consente di creare applicazioni in locale o nel cloud su piattaforme e framework più diffusi con il supporto dei driver per i linguaggi più comuni. database SQL consente di semplificare lo sviluppo con il supporto nativo per i siti Web in esecuzione nel servizio app Azure.

Archiviazione di Azure: Archiviazione di Azure offre una soluzione di archiviazione cloud durevole, a disponibilità elevata e scalabile elevata e include oggetti, file, disco, coda e archiviazione tabelle. Archiviazione di Azure include servizi per l'archiviazione di oggetti, blocchi e file per soddisfare le esigenze del sito Web. Ad esempio, i siti Web possono usare facilmente Archiviazione BLOB di Azure per l'archiviazione a blocchi scalabile e sicura per i supporti del sito Web come foto e video.

Monitoraggio di Azure: Application Insights, fornisce il monitoraggio dell'integrità e delle prestazioni e la diagnostica. Monitoraggio di Azure può essere usato con l'app Web per contenitori (servizio app) per monitorare le metriche del sito Web, ad esempio il numero di connessioni e il numero di richieste risultanti in codici di stato HTTP.

Connettore di servizi di Azure: Service Connector consente di connettere i servizi di calcolo di Azure ad altri servizi di backup. Ad esempio, usare un connettore di servizio tra app Azure Servizio e Database di Azure per MySQL o PostgreSQL, Archiviazione di Azure e Azure Key Vault. Per un elenco completo dei servizi supportati, vedere Servizi supportati in Service Connector.

Dettagli dello scenario

Eseguire facilmente la migrazione di applicazioni Web esistenti ai contenitori ed eseguire le app Web in contenitori in app Web per contenitori nel servizio app Azure. App Web per contenitori consente di concentrarsi sulla composizione dei contenitori senza doversi preoccupare della gestione e della gestione di un agente di orchestrazione dei contenitori sottostante. Quando si compilano app Web, l'app Web per contenitori è un'ottima opzione per eseguire i primi passaggi con i contenitori. I contenitori possono integrare facilmente altre risorse di Azure, ad esempio servizi di archiviazione e database.

Integrando le app Web esistenti con le risorse di Azure, è anche possibile sfruttare le connessioni senza password per i servizi di Azure. Le connessioni senza password sono una funzionalità indipendente dal linguaggio che si estende su più servizi di Azure. Quando si usano connessioni senza password, le app Web si connettono ai servizi basati su Azure senza dover ruotare le password. Tutto ciò che serve è la configurazione: non è necessario alcun nuovo codice.

Potenziali casi d'uso

Questa soluzione è ideale per la migrazione delle applicazioni Web correnti ai contenitori eseguiti in Azure. Questa idea di soluzione può essere usata per creare un sito Web quando si applica quanto segue:

  • Usa l'esperienza di programmazione esistente usata per creare siti Web distribuiti in codice per creare siti Web distribuiti in contenitori. Trasferire in modalità lift-and-shift le app Web esistenti ai contenitori in servizio app.

  • Sviluppo e distribuzione semplificati con strumenti come Visual Studio, Visual Studio Code, interfaccia della riga di comando di Azure e Azure Cloud Shell.

  • Portabilità in ambienti diversi, dallo sviluppo all'ambiente di produzione e ai diversi cloud. È possibile testare localmente, in una piattaforma diversa da quella distribuita per la produzione.

  • La scalabilità in servizio app significa che è possibile aumentare il numero di ruoli di lavoro usati su richiesta.

  • La modularità per il futuro sito Web funziona in servizio app o in altri servizi come App Azure Container e servizio Azure Kubernetes. L'app Web per contenitori può essere un buon primo passaggio per lo spostamento in contenitori.

  • Un contenitore distribuito in App Web per contenitori è pronto per l'integrazione continua e la distribuzione continua (CI/CD). Le funzionalità CI/CD consentono di distribuire gli aggiornamenti più velocemente.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Distribuzioni di linguaggio di esempio di contenitori in servizio app:

Indicazioni relative all'architettura: