Comparar as soluções

Concluído

Descrevemos os tipos de implantação mais comuns para aplicativos Java. Agora, vamos ver qual serviço do Azure pode funcionar melhor, dependendo do tipo de implantação necessária.

Aplicativos de Contêiner do Azure

Os Aplicativos de Contêiner do Azure são um serviço gerenciado que executa contêineres do Docker.

Os Aplicativos de Contêiner do Azure podem executar qualquer aplicativo Java, quando empacotados como uma imagem do Docker (incluindo aplicativos Tomcat, Spring Boot e Quarkus). Criar e gerenciar essas imagens é de sua responsabilidade (por exemplo, usando o GitHub Actions): isso lhe dá muita flexibilidade, mas também requer alguma manutenção.

É uma solução econômica e escalável, o que a torna uma ótima opção para cargas de trabalho pequenas e médias.

Para executar um aplicativo monolítico Java baseado em contêiner, os Aplicativos de Contêiner do Azure são, portanto, a melhor opção.

Serviço de Aplicativo do Azure

O Serviço de Aplicativo do Azure é uma solução de PaaS (plataforma como serviço) fornecida pelo Azure. Ele oferece um serviço fácil de usar para executar aplicativos Web Java, com atualizações e patches automáticos de sistema operacional e JVM (Máquina Virtual Java), bem como monitoramento ou dimensionamento automático.

O Serviço de Aplicativo pode executar qualquer arquivo JAR executável, o que o torna uma alternativa aos Aplicativos de Contêiner do Azure para executar aplicativos monolíticos Java simples.

Ele também pode implantar qualquer aplicativo WAR em servidores de aplicativos populares, como Apache Tomcat ou Red Hat JBoss. Isso o torna a melhor solução para executar aplicativos Jakarta EE no Azure.

Funções do Azure

O Azure Functions é a plataforma sem servidor fornecida pelo Azure, dando suporte à execução de cargas de trabalho Java.

Executar um aplicativo Java no Azure Functions geralmente requer definições e configurações mínimas. Por natureza, as funções sem servidor têm vidas curtas (no geral, apenas alguns minutos), de modo que alguns dos serviços que você usa tradicionalmente podem não ser tão eficientes ou práticos como o Serviço de Aplicativo do Azure.

Como resultado, o Azure Functions é adaptado para aplicativos que precisam de muita escalabilidade. Você pode interrompê-los regularmente para reduzir os custos e escalá-los para que respondam a altas cargas.

Azure Spring Apps

Os Aplicativos Spring do Azure são um serviço exclusivo do Azure que oferece uma solução de plataforma como serviço para execução de microsserviços Spring Boot. O Spring Cloud fornece muitas ferramentas, como um registro de serviço ou um servidor de configuração. Também fornece mecanismos específicos de segurança e dimensionamento automático que simplificam grande parte do uso de uma arquitetura de microsserviço baseada no Spring Boot.

A oferta de Spring Cloud é criada e gerenciada em conjunto pela Microsoft e pela Broadcom, a empresa que criou o Spring Framework. O Spring Cloud fornece suporte para atualizações e patches de sistema operacional e JVM (Máquina Virtual Java), como o Serviço de Aplicativo do Azure, e para serviços avançados do Spring.

Você também pode usar o serviço Aplicativos Spring do Azure para executar outras cargas de trabalho, como aplicativos monolíticos Spring Boot ou até microsserviços .NET que usam o Steeltoe. Porém, o serviço é usado principalmente para executar microsserviços Spring Boot.

Serviço de Kubernetes do Azure

O AKS (Serviço de Kubernetes do Azure) é uma solução de Kubernetes gerenciado e protegido fornecida pelo Azure. Ele pode executar qualquer imagem do Docker e se beneficia de pertencer ao ecossistema inteiro do Kubernetes. O AKS funciona bem se você quer fornecer aplicativos nativos de nuvem em qualquer linguagem, incluindo Java.

O Serviço de Kubernetes do Azure é uma ótima solução se você tem cargas de trabalho heterogêneas ou se deseja obter um controle preciso sobre o seu ambiente. O AKS executa cargas de trabalho Java com bom desempenho, mas você precisará compilar e manter as imagens do Docker.

VMs do Azure

A execução de VMs no Azure oferece a você a maior flexibilidade e variedade de opções. Você pode escolher entre vários sistemas operacionais, normalmente o Windows e as principais distribuições do Linux. Traga seu software ou use algumas das imagens fornecidas.

Para o Java especificamente, você usa VMs principalmente para:

  • Instalar e executar um aplicativo Web Java manualmente no Windows ou no Linux.
  • Instalar e executar o Docker ou, até mesmo, o AKS para executar uma imagem que contenha um aplicativo Web Java.
  • Usar uma das ofertas com suporte, como o Oracle WebLogic, para executar aplicativos Web Java nas suas VMs.

Quando você usa VMs do Azure, não há limite para o que você pode instalar e executar, pois você tem controle total sobre elas. No entanto, a principal desvantagem das VMs é que você precisará mantê-las e protegê-las. Para as VMs, esse trabalho de manutenção é sua responsabilidade.