Partilhar via


Implemente aplicativos Java com confiança e facilidade

O ecossistema Java inclui diversas tecnologias, como Java SE, Jakarta EE (sucessor do Java EE e J2EE), Spring, vários servidores de aplicações e outros frameworks. O que quer que você esteja fazendo com Java - criando um aplicativo, usando uma estrutura e executando um servidor de aplicativos - o Azure dá suporte à sua carga de trabalho com uma abundância de opções. Da mesma forma, o Azure dá suporte a qualquer arquitetura de aplicativo, desde aplicativos monolíticos executados em VMs ou em contêineres até aplicativos nativos da nuvem baseados em microsserviços executados em serviços totalmente gerenciados.

Normalmente, para executar seu aplicativo Java, você o implementa em um servidor de aplicativos - uma instância da Java Virtual Machine (JVM) que executa seus aplicativos. Ou você pode criar um aplicativo autônomo com um servidor de aplicativos incorporado. De qualquer forma, o servidor de aplicativos fornece infraestrutura de aplicativo comum e recursos funcionais, colaborando com contêineres da Web para retornar uma resposta dinâmica e personalizada a uma solicitação do cliente. A solicitação do cliente pode ser processada usando componentes de software que podem incluir servlets, páginas dinâmicas, enterprise beans, classes de suporte, bibliotecas dependentes e drivers de dados.

Tomcat, JBoss EAP, WildFly, WebLogic e WebSphere são servidores de aplicativos populares. Da mesma forma, Spring Boot, Quarkus e Open Liberty são estruturas populares para criar aplicativos autônomos com servidores de aplicativos incorporados. O Azure suporta todos eles, permitindo que você use qualquer servidor de aplicativos Java e implante seu aplicativo Java com confiança e facilidade.

Implante o Spring Boot ou o aplicativo Java em qualquer servidor de aplicativos - Tomcat e Jacarta EE

Com o Azure, você pode executar qualquer versão e qualquer distribuição do Java e qualquer servidor de aplicativos, sem restrições e sem ter que gerenciar sua própria infraestrutura física. Você decide quanto controle deseja ou quanto gerenciamento diário deseja que o Azure trate para você com opções como máquinas virtuais, contêineres e serviços totalmente gerenciados. Se você estiver usando servidores ou estruturas de aplicativos Java comercialmente suportados - como VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server ou IBM WebSphere, Liberty ou OpenLiberty - o Azure oferece ofertas desenvolvidas e suportadas em conjunto para todos eles.

Opções de implementação

O Azure fornece uma abundância de opções de implementação para aplicações Java, incluindo serviços de alojamento de infraestrutura como serviço (IaaS), contentores como serviço (CaaS) e plataforma como serviço (PaaS). Você pode elevar e deslocar aplicativos Java existentes para máquinas virtuais (VMs), conteinerizá-los de várias maneiras ou implantá-los em serviços PaaS totalmente gerenciados para otimizar a facilidade de gerenciamento, a produtividade operacional e do desenvolvedor e o custo total de propriedade.

VMs e contêineres

Você é livre para usar qualquer distribuição e versão do Java - e qualquer servidor de aplicativos - ao implantar em máquinas virtuais ou contêineres no Azure. A escolha é inteiramente sua. Lembre-se, você precisa configurar manualmente a infraestrutura e seus componentes. As opções de implantação que se enquadram nessa categoria incluem:

  • Máquinas Virtuais do Azure, que lhe dão a flexibilidade da virtualização sem ter de comprar e manter o hardware físico que a executa. No entanto, você ainda precisa manter a VM instalando, configurando e corrigindo o software que é executado nela.

  • Conjuntos de Dimensionamento de Máquina Virtual do Azure, que permite criar e gerenciar um grupo de VMs com balanceamento de carga. O número de instâncias de VM pode aumentar ou diminuir automaticamente como resposta à procura ou horário definido.

  • Serviço Kubernetes do Azure (AKS), que simplifica a implantação de um cluster Kubernetes gerenciado manipulando toda a sobrecarga operacional para você, incluindo tarefas críticas, como manutenção e monitoramento de integridade. O AKS suporta provisionamento elástico de capacidade, incluindo dimensionamento automático controlado por eventos e gatilhos KEDA.

  • Azure Red Hat OpenShift, que fornece clusters OpenShift altamente disponíveis e totalmente gerenciados sob demanda. O OpenShift oferece recursos de valor agregado para complementar o Kubernetes, tornando-o uma plataforma de contêiner pronta para uso que oferece uma experiência aprimorada para desenvolvedores e operadores.

Embora você possa implementar qualquer tempo de execução Java em todos esses serviços IaaS e CaaS, recomendamos que você use um dos seguintes tempos de execução:

Ambas as compilações estão disponíveis gratuitamente para desenvolvimento e testes locais e para a criação de binários prontos para produção usando qualquer plataforma ou ferramentas de DevOps - sem ter que pagar nenhuma taxa de licenciamento. Recomendamo-los por uma questão de conveniência. Quando você usa uma dessas compilações, se tiver problemas e tiver um plano de suporte qualificado para o Azure, poderá abrir um tíquete de suporte do Azure - sem mais custos. Dito isso, vale a pena ressaltar que essas recomendações são apenas isso - as opções que recomendamos entre várias outras compilações disponíveis gratuitamente do OpenJDK para facilidade de suporte. Para obter mais informações, consulte Suporte a Java no Azure e Azure Stack.

Diagrama com o título 'Criar ou migrar aplicativos Java' e um gráfico mostrando a relação entre as tecnologias Java e as categorias de serviço do Azure.

Todas essas opções de implantação de IaaS e CaaS permitem que você implante facilmente o servidor de aplicativos Apache Tomcat. Se você estiver usando uma oferta comercial - como Spring Runtime da VMware, JBoss EAP da Red Hat, WebLogic Server da Oracle ou WebSphere da IBM - o Azure também oferece opções de hospedagem desenvolvidas e suportadas em conjunto desses fornecedores. Eles são abordados mais tarde, em Soluções construídas e suportadas em conjunto com parceiros do ecossistema Java.

Serviços totalmente gerenciados (PaaS)

Os serviços PaaS totalmente gerenciados para executar aplicativos Java no Azure incluem as seguintes opções:

  • Azure Spring Apps, que facilita a implantação de aplicativos Spring Boot no Azure - sem alterações de código. O serviço gerencia toda a infraestrutura para aplicativos Spring Boot. Essa infraestrutura inclui monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviços, segurança, ciclo de vida de aplicativos, publicação de logs e métricas, integração de CI/CD, implantações verde-azul e muito mais. Desenvolvido em parceria com a Pivotal (agora parte da VMware), o Azure Spring Apps é operado e suportado em conjunto pela Microsoft e pela VMware.
  • Serviço de Aplicativo do Azure, um serviço baseado em HTTP para hospedar aplicativos Web, APIs REST e back-ends móveis - com segurança interna, balanceamento de carga, dimensionamento automático e gerenciamento automatizado. O Serviço de Aplicativo também oferece suporte a recursos abrangentes de DevOps, como implantação contínua, gerenciamento de pacotes, ambientes de preparação, domínios personalizados e certificados TLS/SSL.
  • Azure Container Apps, que permite executar microsserviços e aplicativos em contêineres em uma plataforma sem servidor. Os usos comuns incluem a implantação de pontos de extremidade de API, hospedagem de aplicativos de processamento em segundo plano, manipulação de processamento controlado por eventos e execução de microsserviços. Os aplicativos criados nos Aplicativos de Contêiner do Azure podem ser dimensionados dinamicamente com base no tráfego HTTP, no processamento controlado por eventos, na CPU ou na carga de memória ou em qualquer escala de expansão compatível com KEDA.

Os tempos de execução Java para Azure Spring Apps e Azure App Service são fornecidos e mantidos pela Microsoft. Eles suportam apenas distribuições LTS do OpenJDK, usando o Eclipse Adoptium Temurin para Java 8 e o Microsoft Build do OpenJDK para Java 11 e 17. Dito isso, há algumas ressalvas - por exemplo, nossas ofertas de parceiros desenvolvidas e suportadas em conjunto (discutidas mais tarde) usam seus próprios tempos de execução.

Para os Aplicativos de Contêiner do Azure, como você precisa criar e gerenciar suas próprias imagens de contêiner a partir do código-fonte, você é livre para usar a distribuição e a versão do Java - e do servidor de aplicativos - de sua escolha.

Funções sem servidor

Às vezes, você não precisa de uma aplicação Java inteira. Por exemplo, para processamento de dados em tempo real, você pode precisar apenas de um pequeno pedaço de código que pode ser acionado em escala - talvez por milhões e milhões de eventos. Esses eventos podem ser ingeridos por meio dos Hubs de Eventos do Azure, processados por código Java sem servidor controlado por eventos em execução em escala no Azure Functions e salvos em um armazenamento de dados como o Azure Cosmos DB.

Soluções construídas e suportadas em conjunto com parceiros do ecossistema Java

A Microsoft estabeleceu parcerias com fornecedores líderes no ecossistema Java para fornecer as melhores soluções da sua classe para executar Java no Azure - desde serviços geridos desenvolvidos e suportados em conjunto até ofertas do Azure Marketplace para servidores de aplicações Java populares. Também integramos ferramentas populares de monitoramento de aplicativos, que serão abordadas mais adiante nesta documentação.

Diagrama com o título

Azure Spring Apps (Pivotal/VMware)

Desenvolvido em conjunto pela Microsoft e pela Pivotal, o Azure Spring Apps é um serviço totalmente gerenciado que resolve muitos dos desafios comuns que desenvolvedores, operadores de TI e equipes de DevOps enfrentam ao executar aplicativos Spring Boot em escala. Ele abstrai a complexidade do gerenciamento de infraestrutura para executar aplicativos baseados no Spring e componentes de middleware do Spring Cloud, permitindo que os desenvolvedores Java se concentrem em seu código enquanto permitem que o Azure cuide do dimensionamento dinâmico, patches de segurança, padrões de conformidade, alta disponibilidade e assim por diante.

JBoss EAP (Red Hat)

A Red Hat fornece soluções de código aberto para a empresa. Uma dessas soluções é o JBoss Enterprise Application Platform (EAP), uma popular plataforma de servidor de aplicativos que é certificada Java EE e compatível com Jakarta EE em perfil Web e plataforma completa. A Red Hat também é colaboradora dos padrões Java , OpenJDK, MicroProfile, Jakarta EE e Quarkus.

Fizemos uma parceria com a Red Hat para fornecer o Red Hat JBoss Enterprise Application Platform (EAP) no Serviço de Aplicativo do Azure - permitindo que os desenvolvedores Java implantem seus aplicativos Jakarta EE no Serviço de Aplicativo sem exigir uma assinatura ou licença Red Hat separada com suporte integrado de ambas as empresas. Também lançamos ofertas conjuntas semelhantes para o JBoss EAP em VMs do Azure, em Conjuntos de Escala de VM do Azure e no Azure RedHat OpenShift (ARO) - este último também operado em conjunto pela Microsoft e pela Red Hat.

Servidor WebLogic (Oracle)

Fizemos uma parceria com a Oracle para fornecer o Oracle WebLogic Server (WLS) em VMs do Azure e o Oracle WebLogic Server no Serviço Kubernetes do Azure. Essas soluções facilitam migrações fáceis para o Azure automatizando operações clichês, como provisionamento de redes/armazenamento virtual, instalação de recursos Linux/Java, configuração do WebLogic Server e configuração de segurança com um grupo de segurança de rede.

WebSphere/Liberty/Open Liberty (IBM)

Fizemos uma parceria com a IBM, desenvolvendo em conjunto soluções para o WebSphere Application Server (WAS) em VMs do Azure, WebSphere Liberty e Open Liberty no Azure Kubernetes Service e WebSphere Liberty e Open Liberty no Azure Red Hat OpenShift. Para obter mais informações, consulte Quais são as soluções para executar a família de produtos IBM WebSphere no Azure? Essas soluções permitem a migração fácil de cargas de trabalho do WebSphere para o Azure, automatizando a maioria das tarefas de provisionamento de recursos necessárias para configurar um cluster do WebSphere altamente disponível. A parceria abrange uma variedade de casos de uso - desde cargas de trabalho de missão crítica existentes até aplicativos nativos da nuvem.

Apache Kafka em Confluent Cloud (Confluent)

No passado, os clientes do Azure que queriam usar o serviço Kafka do Confluent tinham que criar e gerenciar recursos e usuários separadamente no Azure e no Confluent Cloud. Para aliviar essa dor, a Confluent e a Microsoft fizeram uma parceria para fornecer o Apache Kafka for Confluent Cloud, uma oferta do Azure Marketplace que fornece o Apache Kafka como um serviço totalmente gerenciado - incluindo a capacidade de criar e gerenciar recursos do Confluent Cloud por meio do portal do Azure, CLI do Azure ou SDKs de Gerenciamento do Azure.

Hoje, a experiência do cliente é mais simples, segura e perfeita. Os clientes podem provisionar e gerenciar recursos do Confluent Cloud junto com seus recursos do Azure, como parte de um fluxo de trabalho unificado - e aproveitar os conectores totalmente gerenciados criados para o Azure Functions, o Armazenamento de Blobs do Azure, os Hubs de Eventos do Azure, o Azure Data Lake Storage Gen2 e o Microsoft SQL Server. Os desenvolvedores podem continuar a codificar usando bibliotecas de cliente Apache Kafka.

Resumo

O desenvolvimento conjunto com parceiros para muitas dessas ofertas é um esforço contínuo e contínuo. À medida que nossos parceiros continuam a inovar em suas ofertas, estamos trabalhando em estreita colaboração com eles para trazer rapidamente essas mesmas inovações para o Azure - para que os clientes possam implantar e dimensionar seus aplicativos Java com confiança e facilidade.

Em resumo, o Azure suporta sua carga de trabalho com uma abundância de opções, independentemente do que você está fazendo com Java. Você pode criar qualquer aplicativo Java, usar qualquer estrutura, executar qualquer servidor de aplicativos e dar suporte a qualquer arquitetura de aplicativo - desde aplicativos monolíticos executados em VMs ou em contêineres até aplicativos nativos da nuvem baseados em microsserviços executados em serviços totalmente gerenciados.

Diagrama com o título 'Implementar aplicações Java com confiança e facilidade' e logotipos para as opções de implementação descritas neste artigo.

Próximo passo

Dimensione com segurança, monitoramento e automação de ponta a ponta