Share via


Distribuire applicazioni Java con sicurezza e facilità

L'ecosistema Java include tecnologie diverse, ad esempio Java edizione Standard, Jakarta edizione Enterprise (successore di Java edizione Enterprise e J2 edizione Enterprise), Spring, numerosi server applicazioni e altri framework. Qualsiasi operazione eseguita con Java, ovvero la creazione di un'app, l'uso di un framework e l'esecuzione di un server applicazioni, supporto tecnico di Azure il carico di lavoro con un'ampia scelta. Analogamente, supporto tecnico di Azure qualsiasi architettura dell'applicazione, dalle applicazioni monolitiche in esecuzione nelle macchine virtuali o nei contenitori alle applicazioni basate su microservizi native del cloud in esecuzione su servizi completamente gestiti.

In genere, per eseguire l'applicazione Java, è necessario distribuirla in un server applicazioni, ovvero un'istanza della macchina virtuale Java (JVM) che esegue le applicazioni. In alternativa, è possibile compilare un'applicazione autonoma con un server applicazioni incorporato. In entrambi i casi, il server applicazioni offre funzionalità funzionali e di infrastruttura applicative comuni, collaborando con i contenitori Web per restituire una risposta dinamica e personalizzata a una richiesta client. La richiesta client può essere elaborata usando componenti software che possono includere servlet, pagine dinamiche, fagioli aziendali, classi di supporto, librerie dipendenti e driver di dati.

Tomcat, JBoss EAP, WildFly, WebLogic e WebSphere sono server applicazioni più diffusi. Analogamente, Spring Boot, Quarkus e Open Liberty sono framework diffusi per la creazione di applicazioni autonome con server applicazioni incorporati. supporto tecnico di Azure tutte le applicazioni, consentendo di usare qualsiasi server applicazioni Java e di distribuire l'applicazione Java con sicurezza e facilità.

Distribuire l'app Spring Boot o Java in qualsiasi server applicazioni - Tomcat e Jakarta edizione Enterprise

Con Azure è possibile eseguire qualsiasi versione e qualsiasi distribuzione di Java e qualsiasi server applicazioni, senza restrizioni e senza dover gestire la propria infrastruttura fisica. Si decide quanto controllare o quanto gestire la gestione quotidiana di Azure con opzioni come macchine virtuali, contenitori e servizi completamente gestiti. Se si usano framework o server app Java supportati commercialmente, ad esempio VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server o IBM WebSphere, Liberty o OpenLiberty, Azure offre offerte sviluppate e supportate congiuntamente per tutti.

Opzioni di distribuzione

Azure offre un'abbondanza di opzioni di distribuzione per le applicazioni Java, tra cui servizi di hosting PaaS (Infrastructure-as-a-Service), contenitori come servizio (CaaS) e servizi di hosting PaaS (Platform-as-a-Service). È possibile trasferire in modalità lift-and-shift le applicazioni Java esistenti alle macchine virtuali, inserirle in contenitori in diversi modi o distribuirle in servizi PaaS completamente gestiti per ottimizzare la facilità di gestione, sviluppo e produttività operativa e il costo totale di proprietà.

Macchine virtuali e contenitori

È possibile usare qualsiasi distribuzione e versione di Java e qualsiasi server applicazioni quando si esegue la distribuzione in macchine virtuali o contenitori in Azure. La scelta è interamente per te. Tenere presente che è necessario configurare manualmente l'infrastruttura e i relativi componenti. Le opzioni di distribuzione che rientrano in questa categoria includono:

  • Azure Macchine virtuali, che offre la flessibilità della virtualizzazione senza dover acquistare e gestire l'hardware fisico che lo esegue. Tuttavia, è comunque necessario mantenere la macchina virtuale installando, configurando e applicando patch al software in esecuzione.

  • Azure set di scalabilità di macchine virtuali, che consente di creare e gestire un gruppo di macchine virtuali con carico bilanciato. Il numero di istanze di macchine virtuali può aumentare o diminuire automaticamente in risposta alla domanda o a una pianificazione definita.

  • servizio Azure Kubernetes (servizio Azure Kubernetes) che semplifica la distribuzione di un cluster Kubernetes gestito gestendo tutto il sovraccarico operativo, incluse le attività critiche, ad esempio manutenzione e monitoraggio dell'integrità. Il servizio Azure Kubernetes supporta il provisioning elastico della capacità, tra cui la scalabilità automatica basata su eventi e i trigger KEDA.

  • Azure Red Hat OpenShift, che offre cluster OpenShift a disponibilità elevata e completamente gestiti su richiesta. OpenShift offre funzionalità a valore aggiunto per integrare Kubernetes, rendendola una piattaforma contenitore chiavi in mano che offre un'esperienza migliorata per sviluppatori e operatori.

Sebbene sia possibile distribuire qualsiasi runtime Java in tutti questi servizi IaaS e CaaS, è consigliabile usare uno dei runtime seguenti:

  • Microsoft Build di OpenJDK per Java 11 o 17: immagini del contenitore di base per le quali Microsoft fornisce e gestisce.

  • Eclipse AdoptiumTemo per Java 8: il runtime Java per il quale è fornito dal progetto Eclipse Adoptium (in precedenza il progetto OpenJDK).

Entrambe queste build sono disponibili gratuitamente per lo sviluppo e i test locali e per la creazione di file binari pronti per la produzione usando qualsiasi piattaforma o strumenti DevOps, senza dover pagare costi di licenza. È consigliabile consigliarli per comodità. Quando si usa una di queste build, se si verificano problemi e si ha un piano di supporto idoneo per Azure, è possibile aprire un ticket di supporto tecnico di Azure senza costi aggiuntivi. Detto questo, vale la pena sottolineare che queste raccomandazioni sono solo che - le opzioni consigliate tra le varie altre build liberamente disponibili di OpenJDK per facilitare il supporto. Per altre informazioni, vedere Supporto java in Azure e Azure Stack.

Diagramma con l'intestazione 'Build or Migrate Java Apps' e un grafico che mostra la relazione tra le tecnologie Java e le categorie di servizi di Azure.

Tutte queste opzioni di distribuzione IaaS e CaaS consentono di distribuire facilmente il server applicazioni Apache Tomcat. Se si usa un'offerta commerciale, ad esempio Spring Runtime da VMware, JBoss EAP da Red Hat, WebLogic Server da Oracle o WebSphere da IBM, Azure offre opzioni di hosting sviluppate e supportate congiuntamente da tali fornitori. Vengono trattati in un secondo momento, in Soluzioni create e supportate congiuntamente con i partner dell'ecosistema Java.

Servizi PaaS completamente gestiti

I servizi PaaS completamente gestiti per l'esecuzione di applicazioni Java in Azure includono le opzioni seguenti:

  • App Spring di Azure, che semplifica la distribuzione di applicazioni Spring Boot in Azure, senza modifiche al codice. Il servizio gestisce tutte le infrastrutture per le applicazioni Spring Boot. Questa infrastruttura include monitoraggio e diagnostica completi, gestione della configurazione, individuazione dei servizi, sicurezza, ciclo di vita dell'applicazione, log di pubblicazione e metriche, integrazione CI/CD, distribuzioni blu-verde e altro ancora. Sviluppato in collaborazione con Pivotal (ora parte di VMware), Azure Spring Apps è gestito e supportato congiuntamente da Microsoft e VMware.
  • app Azure Servizio, un servizio basato su HTTP per l'hosting di applicazioni Web, API REST e back-end mobili, con sicurezza predefinita, bilanciamento del carico, scalabilità automatica e gestione automatica. servizio app supporta anche funzionalità DevOps complete, ad esempio distribuzione continua, gestione dei pacchetti, ambienti di gestione temporanea, domini personalizzati e certificati TLS/SSL.
  • App Azure Container, che consente di eseguire microservizi e applicazioni in contenitori in una piattaforma serverless. Gli usi comuni includono la distribuzione di endpoint API, l'hosting di applicazioni di elaborazione in background, la gestione dell'elaborazione guidata dagli eventi e l'esecuzione di microservizi. Le applicazioni basate su App Contenitore di Azure possono essere ridimensionate dinamicamente in base al traffico HTTP, all'elaborazione guidata dagli eventi, alla CPU o al carico di memoria o a qualsiasi scaler supportato da KEDA.

I runtime Java per Azure Spring Apps e il servizio app Azure vengono forniti e gestiti da Microsoft. Supportano solo le distribuzioni LTS di OpenJDK, usando Eclipse AdoptiumTemo per Java 8 e Microsoft Build of OpenJDK per Java 11 e 17. Detto questo, ci sono alcune avvertenze, ad esempio, le offerte di partner sviluppate e supportate congiuntamente (descritte più avanti) usano i propri runtime.

Per le app contenitore di Azure, poiché è necessario compilare e gestire le proprie immagini del contenitore dal codice sorgente, è possibile usare la distribuzione e la versione di Java e del server applicazioni di propria scelta.

Funzioni senza server

A volte non è necessaria un'intera applicazione Java. Ad esempio, per l'elaborazione dei dati in tempo reale, potrebbe essere necessaria solo una piccola parte di codice che può essere attivata su larga scala, ad esempio da milioni e milioni di eventi. Tali eventi possono essere inseriti tramite Hub eventi di Azure, elaborati da codice Java serverless basato su eventi in esecuzione su larga scala in Funzioni di Azure e salvato in un archivio dati come Azure Cosmos DB.

Soluzioni create e supportate congiuntamente con i partner dell'ecosistema Java

Microsoft ha collaborato con i principali fornitori dell'ecosistema Java per offrire soluzioni di alta qualità per l'esecuzione di Java in Azure, che vanno da servizi gestiti sviluppati e supportati congiuntamente alle offerte di Azure Marketplace per i server applicazioni Java più diffusi. Sono stati integrati anche gli strumenti di monitoraggio delle applicazioni più diffusi, illustrati più avanti in questa documentazione.

Diagramma con l'intestazione

App Azure Spring (Pivotal/VMware)

Sviluppato congiuntamente da Microsoft e Pivotal, Azure Spring Apps è un servizio completamente gestito che risolve molte delle sfide comuni che gli sviluppatori, gli operatori IT e i team DevOps devono affrontare quando eseguono applicazioni Spring Boot su larga scala. Elimina la complessità della gestione dell'infrastruttura per l'esecuzione di applicazioni basate su Spring e componenti middleware Spring Cloud, consentendo agli sviluppatori Java di concentrarsi sul codice, consentendo ad Azure di occuparsi del ridimensionamento dinamico, delle patch di sicurezza, degli standard di conformità, della disponibilità elevata e così via.

JBoss EAP (Red Hat)

Red Hat offre soluzioni open source per l'azienda. Una di queste soluzioni è JBoss Enterprise Application Platform (EAP), una popolare piattaforma server applicazioni che è Java edizione Enterprise Certified e Jakarta edizione Enterprise Conforme sia nel profilo Web che nella piattaforma completa. Red Hat è anche un collaboratore per gli standard Java, OpenJDK, MicroProfile, Jakarta edizione Enterprise e Quarkus.

Abbiamo collaborato con Red Hat per distribuire Red Hat JBoss Enterprise Application Platform (EAP) nel servizio app Azure, consentendo agli sviluppatori Java di distribuire le applicazioni Jakarta edizione Enterprise in servizio app senza richiedere una sottoscrizione o una licenza Red Hat separata con supporto integrato da entrambe le aziende. Sono state anche lanciate offerte comuni simili per JBoss EAP in macchine virtuali di Azure, nei set di scalabilità di macchine virtuali di Azure e in Azure RedHat OpenShift (ARO), quest'ultimo gestito congiuntamente da Microsoft e Red Hat.

WebLogic Server (Oracle)

Microsoft ha collaborato con Oracle per distribuire Oracle WebLogic Server (WLS) in macchine virtuali di Azure e Oracle WebLogic Server in servizio Azure Kubernetes. Queste soluzioni semplificano le migrazioni ad Azure automatizzando le operazioni boilerplate, ad esempio il provisioning di reti virtuali/archiviazione, l'installazione di risorse Linux/Java, la configurazione di WebLogic Server e la configurazione della sicurezza con un gruppo di sicurezza di rete.

WebSphere/Liberty/Open Liberty (IBM)

Abbiamo collaborato con IBM, sviluppando congiuntamente soluzioni per WebSphere Application Server (WAS) in macchine virtuali di Azure, WebSphere Liberty e Open Liberty su servizio Azure Kubernetes e WebSphere Liberty e Open Liberty in Azure Red Hat OpenShift. Per altre informazioni, vedere Che cosa sono le soluzioni per eseguire la famiglia di prodotti IBM WebSphere in Azure? Queste soluzioni consentono una semplice migrazione dei carichi di lavoro WebSphere in Azure, automatizzando la maggior parte delle attività di provisioning delle risorse necessarie per configurare un cluster WebSphere a disponibilità elevata. La partnership copre una serie di casi d'uso, dai carichi di lavoro cruciali esistenti alle applicazioni native del cloud.

Apache Kafka in Confluent Cloud (Confluent)

In passato, i clienti di Azure che volevano usare il servizio Kafka di Confluent dovevano creare e gestire risorse e utenti separatamente in Azure e Confluent Cloud. Per risolvere questo problema, Confluent e Microsoft hanno collaborato per distribuire Apache Kafka for Confluent Cloud, un'offerta di Azure Marketplace che fornisce Apache Kafka come servizio completamente gestito, inclusa la possibilità di creare e gestire le risorse cloud Confluent tramite l'portale di Azure, l'interfaccia della riga di comando di Azure o gli SDK di gestione di Azure.

Oggi, l'esperienza del cliente è più semplice, più sicura e più facile. I clienti possono effettuare il provisioning e gestire le risorse di Confluent Cloud insieme alle risorse di Azure, come parte di un flusso di lavoro unificato e sfruttare i vantaggi dei connettori completamente gestiti creati per Funzioni di Azure, Archiviazione BLOB di Azure, Hub eventi di Azure, Azure Data Lake Archiviazione Gen2 e Microsoft SQL Server. Gli sviluppatori possono continuare a scrivere codice usando librerie client Apache Kafka.

Riepilogo

Lo sviluppo congiunto con i partner per molte di queste offerte è un impegno continuo e continuativo. Man mano che i nostri partner continuano a innovare sulle loro offerte, stiamo lavorando a stretto contatto con loro per portare rapidamente le stesse innovazioni in Azure, in modo che i clienti possano distribuire e ridimensionare le applicazioni Java con sicurezza e facilità.

In sintesi, supporto tecnico di Azure il carico di lavoro con un'abbondanza di scelta indipendentemente da ciò che si sta facendo con Java. È possibile compilare qualsiasi app Java, usare qualsiasi framework, eseguire qualsiasi server applicazioni e supportare qualsiasi architettura dell'applicazione, da applicazioni monolitiche in esecuzione in macchine virtuali o in contenitori ad applicazioni basate su microservizi nativi del cloud in esecuzione su servizi completamente gestiti.

Diagramma con l'intestazione

Passaggio successivo

Scalabilità con sicurezza, monitoraggio e automazione end-to-end