Hosting di applicazioni in Azure

Azure offre diversi modi per ospitare l'applicazione in base alle esigenze. Questo articolo suggerisce ai servizi di soddisfare i requisiti. Non è prescrittivo. È possibile combinare e abbinare i servizi per soddisfare le proprie esigenze. La maggior parte degli ambienti di produzione usa una combinazione di servizi per soddisfare le esigenze aziendali e organizzative.

Semplicità e controllo

I servizi di hosting di Azure vengono forniti con due considerazioni:

  • Semplicità e controllo
    • Le piattaforme di hosting semplici richiedono meno configurazione e gestione, ma forniscono un minore controllo sull'infrastruttura sottostante.
    • Le piattaforme di hosting più complesse richiedono una maggiore configurazione e gestione, ma offrono un maggiore controllo sull'infrastruttura sottostante.
  • Nativo del cloud e nativo di Azure
    • Il cloud nativo può essere considerato come portabile dal cloud usando carichi di lavoro open source, ad esempio contenitori e tecnologie open source, ad esempio Dapr. Le applicazioni compilate possono essere distribuite in qualsiasi provider di servizi cloud.
    • Azure nativo è specifico di Azure con un investimento in strumenti e tecnologie specifici di Azure per gestire l'infrastruttura. Anche se questi servizi includono carichi di lavoro dei contenitori, includono anche strumenti code-first, low-code e infrastructure specifici di Azure, con particolare attenzione alla connessione e all'integrazione tra i servizi di Azure.

Hosting semplificato

Le soluzioni di hosting semplificate sono completamente gestite da Azure. Si è responsabili delle funzionalità, ad esempio il codice e la configurazione dell'ambiente. Azure gestisce il runtime e l'infrastruttura sottostanti, inclusi gli aggiornamenti e le patch. L'hosting semplificato è l'approccio nativo di Azure.

  • App per la logica: creare ed eseguire flussi di lavoro automatizzati con poco o nessun codice.
  • Power Automate: usare quando è necessario automatizzare processi e flussi di lavoro aziendali.
  • App Web statiche di Azure: distribuire app Web statiche generate, ad esempio Blazor e React.
  • Funzioni di Azure App: codice serverless o hosting di contenitori.

Hosting bilanciato

Soluzioni di hosting bilanciate bilanciano la necessità di semplicità con la necessità di controllo. Si è responsabili delle funzionalità, ad esempio il codice e la configurazione dell'ambiente. Azure gestisce il runtime e l'infrastruttura sottostanti, inclusi gli aggiornamenti e le patch. È anche possibile portare il proprio contenitore nel servizio. L'hosting bilanciato è nativo di Azure e nativo del cloud.

  • servizio app Azure: hosting Web con servizio completo, inclusi runtime del linguaggio, contenitori e carichi di lavoro di automazione.
  • App Azure Container: hosting di contenitori serverless.
  • App Azure Spring: eseguire la migrazione di applicazioni Spring Boot nel cloud di Azure.

Hosting controllato

Le soluzioni di hosting controllate offrono il controllo completo sull'infrastruttura sottostante. Si è responsabili degli aggiornamenti e delle patch, nonché del codice, degli asset e della configurazione dell'ambiente. L'hosting controllato è l'approccio nativo del cloud.

  • Azure Macchine virtuali: controllo completo della macchina virtuale.
  • servizio Azure Kubernetes: controllo completo del cluster Kubernetes.

Hosting del codice sorgente

Per gli sviluppatori che non hanno esperienza con Azure che vogliono avviare un nuovo sviluppo, usare il grafico seguente per trovare la soluzione di hosting suggerita.

Diagram showing no code, low code in the first box, code in the second box and container in the third box with recommended services for each box.

Nessun codice o codice ridotto

supporto tecnico di Azure soluzioni senza codice fanno parte dell'approccio Azure-Cloud.

  • App per la logica: usare una finestra di progettazione visiva con operazioni predefinite per sviluppare un flusso di lavoro per gli scenari aziendali e aziendali.
  • Power Automate , ad esempio Power Apps: usare quando è necessario automatizzare processi aziendali e flussi di lavoro all'interno dell'organizzazione di Microsoft 365.

Code vs container

Le soluzioni di hosting a basso codice sono progettate per consentire di usare le funzionalità del codice senza dover gestire l'infrastruttura dell'applicazione.

  • App Web statiche di Azure: distribuire app Web statiche generate.
  • Funzioni di Azure: distribuire funzioni di codice nei linguaggi supportati senza dover gestire l'infrastruttura dell'applicazione.

Le soluzioni di hosting code-first sono progettate per ospitare il codice. È possibile distribuire il codice direttamente nella soluzione di hosting.

  • servizio app Azure: hosting Web completo del servizio.
  • App Spring di Azure: applicazioni Spring Boot.

Le soluzioni di hosting container-first sono progettate per ospitare contenitori. Il servizio fornisce funzionalità e opzioni di configurazione specifiche del contenitore. L'utente è responsabile del calcolo usato all'interno del contenitore. I servizi che ospitano i contenitori passano dal controllo gestito alla piena responsabilità, quindi si assume solo la quantità di gestione dei contenitori desiderata.

L'hosting di orchestrazione incentrato su Kubernetes include:

Service Focus Utilizzo
Servizio Azure Kubernetes Gestione nativa del cloud Usare per i cluster Kubernetes con un approccio dichiarativo usando i file di configurazione e gli artefatti esterni.
Azure Service Fabric Nativo di Azure Usare un approccio imperativo per distribuire microservizi tra cluster di computer. Fornisce un modello di programmazione che consente agli sviluppatori di scrivere codice che descrive lo stato desiderato del sistema e il runtime di Service Fabric si occupa di rendere il sistema corrispondente a tale stato.

L'hosting di contenitori preconfigurato significa che le opzioni di orchestrazione sono preconfigurate automaticamente. La possibilità di comunicare tra contenitori o cluster di contenitori potrebbe richiedere un servizio aggiuntivo, ad esempio Dapr.

Service Utilizzo
Servizio app di Azure hosting Web completo del servizio
Azure Spring Apps Applicazioni Spring Boot
App contenitore di Azure hosting di contenitori serverless
Istanze di Azure Container hosting di contenitori semplici e singoli

Azure offre un registro contenitori per archiviare e gestire le immagini del contenitore oppure è possibile usare un registro contenitori di terze parti.

Service Utilizzo
Registro Azure Container Usare quando si compilano e ospitano immagini del contenitore personalizzate, che possono essere attivate con commit del codice sorgente e aggiornamenti delle immagini di base.

Senza server

Le soluzioni di hosting serverless sono progettate per eseguire codice senza stato, che include un piano tariffario basato sul consumo che viene ridimensionato a zero quando non viene usato.

Service Utilizzo
App contenitore di Azure Hosting di contenitori.
Funzioni di Azure Codice o hosting di contenitori.

Microservizi

Le soluzioni di hosting di microservizi sono progettate per eseguire servizi di piccole dimensioni indipendenti che interagiscono per creare un'applicazione più grande. I microservizi vengono in genere distribuiti come contenitori.

Service Utilizzo
App contenitore di Azure Usare per microservizi in contenitori serverless.
Funzioni di Azure Usare per il codice serverless o i microservizi in contenitori.

Cloud Edge

Cloud Edge è un termine che indica se il servizio cloud si trova per trarre vantaggio dall'utente (client) o dall'applicazione (server).

Calcolo client

Il calcolo client è un ambiente di calcolo che viene eseguito nel client lontano dal cloud di Azure. Il calcolo client viene in genere usato per il rendering lato client e l'elaborazione lato client, ad esempio applicazioni basate su browser o per dispositivi mobili.

Service Utilizzo
App Web statiche di Azure Usare per app Web statiche che usano il rendering lato client, ad esempio React, Angular, Svelte, Vue e Blazor.

Disponibilità client

Service Utilizzo
Frontdoor di Azure Usare per tutte le applicazioni con connessione Internet per fornire una rete globale memorizzata nella cache e sicura agli asset statici e dinamici, tra cui la protezione DDoS, la crittografia TLS end-to-end, i firewall delle applicazioni e il filtro geografico.

Calcolo del server

Gli asset di calcolo del server sono file elaborati dal server prima di essere serviti al client. Gli asset dinamici vengono sviluppati usando il calcolo del server back-end, facoltativamente integrato con altri servizi di Azure.

Service Utilizzo
Servizio app di Azure Usare questo servizio per l'hosting Web tipico. Questo supporta un'ampia gamma di endpoint API di funzionalità, applicazioni full-stack e attività in background. Questo servizio include molti runtime del linguaggio di programmazione e la possibilità di fornire uno stack, un linguaggio o un carico di lavoro personalizzato da un contenitore.
Funzioni di Azure Usare questo servizio per fornire codice personalizzato nelle lingue supportate per endpoint HTTP o trigger basati su eventi dai servizi di Azure.
Azure Spring Apps Usare per distribuire applicazioni Spring Boot senza modifiche al codice.
App contenitore di Azure Usare per ospitare microservizi gestiti e applicazioni in contenitori in una piattaforma serverless.
Istanze di Azure Container Usare questa opzione per scenari di contenitori semplici che non richiedono l'orchestrazione dei contenitori.
Servizio Azure Kubernetes Usare questo servizio quando è necessario un cluster Kubernetes. Il piano di controllo per gestire il cluster viene creato e fornito senza costi aggiuntivi.

Server Endpoint Management

Server Endpoint Management è la possibilità di gestire l'endpoint server e il relativo calcolo tramite un gateway. Questo gateway offre funzionalità come il controllo delle versioni, la memorizzazione nella cache, la trasformazione, i criteri API e il monitoraggio.

Service Utilizzo
Gestione API di Azure Usare questo servizio quando si creano le API REST, OpenAPI e GraphQL con un gateway API, incluse quote e limiti di frequenza, autenticazione e autorizzazione, trasformazione e risposte memorizzate nella cache.
Gateway applicazione di Azure Usare per il bilanciamento del carico a livello di area (OSI livello 7). Può essere usato per instradare il traffico in base al percorso URL o alle intestazioni host e supporta l'offload SSL, l'affinità di sessione basata su cookie e le funzionalità web application firewall (WAF).
Frontdoor di Azure Usare per il bilanciamento del carico globale (livello 7 OSI) per fornire una rete globale memorizzata nella cache e sicura agli asset statici e dinamici, tra cui la protezione DDoS, la crittografia TLS end-to-end, i firewall delle applicazioni e il filtro geografico.
Gestione traffico di Azure Usare per distribuire il traffico tramite DNS (livello OSI 7) alle applicazioni pubbliche in tutte le aree di Azure globali. Gestione traffico usa DNS per indirizzare le richieste client all'endpoint di servizio appropriato in base a un metodo di routing del traffico. Supporta diversi metodi di routing del traffico, ad esempio priorità, prestazioni e routing geografico. È ideale per gestire il traffico tra più aree o data center.

Calcolo automatizzato

Il calcolo automatizzato è automatizzato da un evento, ad esempio una pianificazione programmata o un altro servizio di Azure e viene in genere usato per l'elaborazione in background, l'elaborazione batch o i processi a esecuzione prolungata.

Service Utilizzo
Power Automate Usare quando è necessario automatizzare processi e flussi di lavoro aziendali.
Funzioni di Azure Usare quando è necessario eseguire il codice in base a una pianificazione programmata o in risposta agli eventi in altri servizi di Azure.
Servizi contenitore (Istanze di Azure Container, servizio Azure Kubernetes, app azure container) Uso per carichi di lavoro automatizzati standard
Azure Batch Usare quando è necessaria un'automazione ad alte prestazioni.

Cloud ibrido

Il cloud ibrido è un ambiente di elaborazione che connette i servizi cloud privati locali di un'azienda e il cloud pubblico di terze parti in un'unica infrastruttura flessibile per l'esecuzione di applicazioni e carichi di lavoro dell'organizzazione.

Service Utilizzo
Azure Arc Usare quando è necessario gestire l'intero ambiente, sia le risorse cloud che locali, tra cui sicurezza, governance, inventario e gestione.

Se non è necessario gestire la propria infrastruttura, è possibile usare Azure Stack HCI per eseguire macchine virtuali in locale.

HPC (High Performance Computing)

HpC (High Performance Computing) è l'uso dell'elaborazione parallela per l'esecuzione di programmi applicativi avanzati in modo efficiente, affidabile e rapido. Il termine si applica soprattutto ai sistemi che funzionano sopra un teraflop o 10^12 operazioni a virgola mobile al secondo.

Service Utilizzo
Azure Batch Azure Batch crea e gestisce un pool di nodi di calcolo (macchine virtuali), installa le applicazioni da eseguire e pianifica l'esecuzione dei processi nei nodi. Gli sviluppatori possono usare Batch come un servizio di piattaforma per compilare applicazioni SaaS o app client in cui è richiesta l'esecuzione su larga scala.
Istanze di Azure BareMetal Usare quando è necessario eseguire in un ambiente non virtuale con accesso a livello radice al sistema operativo, all'archiviazione e alla rete.
Area di lavoro di Azure Quantum Usare quando è necessario sviluppare e sperimentare algoritmi quantistici.
Genomica di Microsoft Uso per l'elaborazione genomica conforme a HIPAA conforme a ISO.

Altre informazioni sul calcolo ad alte prestazioni in Azure.

Calcolo basato su eventi

L'ambiente di calcolo basato su eventi è il calcolo che viene attivato da un evento, ad esempio una pianificazione programmata o un altro servizio di Azure. Il calcolo basato su eventi viene in genere usato per l'elaborazione in background, l'elaborazione batch o i processi a esecuzione prolungata.

Service Utilizzo
Power Virtual Agents Usare quando è necessario creare chatbot con un'interfaccia senza codice.
Funzioni di Azure Usare quando è necessario eseguire il codice in base a una pianificazione programmata o in risposta agli eventi in altri servizi di Azure.
Messaggistica bus di servizio di Azure Usare quando è necessario separare applicazioni e servizi.

Calcolo CI/CD

Il calcolo CI/CD è il calcolo usato per compilare e distribuire l'applicazione.

Servizio Descrizione
Azure DevOps Usare Azure DevOps per una stretta integrazione con il cloud di Azure, inclusa l'autenticazione e l'autorizzazione per gli agenti ospitati, che compilano e distribuiscono l'applicazione.
GitHub Actions Usare GitHub Actions per compilare e distribuire le applicazioni del repository GitHub. Usare l'interfaccia della riga di comando di Azure per accedere in modo sicuro ad Azure all'interno dell'azione.
Macchine virtuali di Azure Se si usa un altro sistema CI/CD, è possibile usare Azure Macchine virtuali per ospitare il sistema CI/CD.

Risorse Java

Risorse aggiuntive