Hospedar aplicativos no Azure

Esta é a terceira parte de uma série de 7 artigos para ajudar os desenvolvedores a começar a usar o Azure.

O Azure fornece uma variedade de maneiras diferentes de hospedar seu aplicativo, dependendo de suas necessidades. Este artigo sugere serviços para atender aos requisitos. Ele não é prescritivo. Você pode misturar e combinar serviços para atender às suas necessidades. A maioria dos ambientes de produção usa uma combinação de serviços para atender às suas necessidades comerciais e organizacionais.

Os serviços que você escolhe geralmente se resumem a duas considerações:

  • Você prefere simplicidade ou controle?
  • Você prefere nativo de nuvem (ou seja, contêineres) ou nativo do Azure (ferramentas e integrações personalizadas)?

O vídeo a seguir explica a primeira consideração: simplicidade versus controle:

Simplicidade e controle

Há duas considerações sobre os serviços de hospedagem do Azure:

  • Simplicidade versus controle
    • Plataformas de hospedagem simples exigem menos configuração e gerenciamento, mas também fornecem menos controle sobre a infraestrutura subjacente.
    • Plataformas de hospedagem mais complexas exigem mais configuração e gerenciamento, mas também fornecem mais controle sobre a infraestrutura subjacente.
  • Nativo da nuvem versus Nativo do Azure
    • O nativo de nuvem pode ser considerado portátil na nuvem usando cargas de trabalho de software livre, como contêineres, e tecnologias de software livre, como o Dapr. Os aplicativos que você cria podem ser implantados em qualquer provedor de nuvem.
    • O Azure nativo é específico do Azure com um investimento em ferramentas e tecnologias específicas do Azure para gerenciar essa infraestrutura. Embora esses serviços incluam cargas de trabalho de contêiner, eles também incluem ferramentas de código em primeiro lugar, low-code e de infraestrutura específicas do Azure, com ênfase na conexão e integração entre os serviços do Azure.

Hospedagem simplificada

As soluções de hospedagem simplificadas são totalmente gerenciadas pelo Azure. Você é responsável pela funcionalidade, tal como código e configuração do ambiente. O Azure gerencia o runtime e a infraestrutura subjacentes, incluindo atualizações e patches. A hospedagem simplificada é a abordagem nativa do Azure.

Hospedagem equilibrada

Soluções de hospedagem balanceadas equilibram a necessidade de simplicidade com a necessidade de controle. Você é responsável pela funcionalidade, tal como código e configuração do ambiente. O Azure gerencia o runtime e a infraestrutura subjacentes, incluindo atualizações e patches. Você também pode trazer seu próprio contêiner para o serviço. A hospedagem balanceada é nativa do Azure e nativa da nuvem.

Hospedagem controlada

As soluções de hospedagem controlada oferecem controle total sobre a infraestrutura subjacente. Você é responsável por atualizações e patches, bem como pelo código, ativos e configuração do ambiente. A hospedagem controlada é a abordagem nativa da nuvem.

Hospedagem de código-fonte

Para desenvolvedores novos no Azure que desejam iniciar um novo desenvolvimento, use o gráfico a seguir para encontrar a solução de hospedagem sugerida.

Diagrama sem código, código baixo na primeira caixa, código na segunda caixa e contêiner na terceira caixa com serviços recomendados para cada caixa.

Low-code ou sem código

O Azure dá suporte a soluções sem código que fazem parte de sua abordagem Azure-Cloud.

  • Aplicativos Lógicos: use um designer visual com operações predefinidas para desenvolver um fluxo de trabalho para sua empresa e cenários entre empresas.
  • Power Automate, como Power Apps: use quando você precisar automatizar processos de negócios e fluxos de trabalho dentro da organização do Microsoft 365.

Código vs contêiner

As soluções de hospedagem low-code são projetadas para permitir que você traga sua funcionalidade de código sem precisar gerenciar a infraestrutura do aplicativo.

As soluções de hospedagem Code-first são projetadas para hospedar código. Você pode implantar seu código diretamente na solução de hospedagem.

As soluções de hospedagem que priorizam o contêiner são projetadas para hospedar contêineres. O serviço fornece opções e recursos de configuração específicos do contêiner. Você é responsável pela computação que é usada dentro do contêiner. Os serviços que hospedam contêineres passam do controle gerenciado para a responsabilidade total, de modo que você assume apenas a quantidade de gerenciamento de contêineres desejada.

A hospedagem de orquestração centrada no Kubernetes inclui:

Serviço Foco Usar
Serviço de Kubernetes do Azure Nativo da nuvem Use para clusters do Kubernetes com uma abordagem declarativa usando arquivos de configuração e artefatos externos.
Azure Service Fabric Nativo do Azure Use uma abordagem imperativa para implantar microsserviços em clusters de computadores. Ela fornece um modelo de programação que permite que os desenvolvedores escrevam código que descreva o estado desejado do sistema, e o runtime do Service Fabric se encarrega de fazer com que o sistema corresponda a esse estado.

Na hospedagem de contêiner pré-configurada, as opções de orquestração são pré-configuradas para você. Para se comunicar entre contêineres ou clusters de contêineres, pode ser necessário um serviço adicional, tal como o Dapr.

Serviço Usar
Serviço de Aplicativo do Azure hospedagem na web de serviço completo
Azure Spring Apps Aplicativos do Spring Boot
Aplicativos de Contêiner do Azure hospedagem de contêiner sem servidor
Instâncias de Contêiner do Azure hospedagem simples e de contêiner único

O Azure fornece um registro de contêiner para armazenar e gerenciar suas imagens de contêiner ou você pode usar um registro de contêiner de terceiros.

Serviço Usar
Registro de Contêiner do Azure Use ao criar e hospedar suas próprias imagens de contêiner, que podem ser disparadas com confirmações de código-fonte e atualizações de imagem base.

Sem servidor

As soluções de hospedagem sem servidor são projetadas para executar código sem estado, que inclui um tipo de preço baseado em consumo que é dimensionado para zero quando não é usado.

Serviço Usar
Aplicativos de Contêiner do Azure Hospedagem de contêiner.
Azure Functions Hospedagem de código ou contêiner.

Microsserviços

As soluções de hospedagem de microsserviços são projetadas para executar serviços pequenos e independentes que funcionam juntos para criar um aplicativo maior. Normalmente, microsserviços são implantados como contêineres.

Serviço Usar
Aplicativos de Contêiner do Azure Use para microsserviços em contêineres sem servidor.
Azure Functions Use para código sem servidor ou microsserviços em contêineres.

Borda na nuvem

Borda da nuvem é um termo para indicar se o serviço de nuvem está localizado de forma a beneficiar o usuário (cliente) ou o aplicativo (servidor).

Computação cliente

A computação cliente é a computação executada no cliente fora da nuvem do Azure. A computação do cliente normalmente é usada para renderização e processamento que ocorrem do lado do cliente, como aplicativos móveis ou baseados em navegador.

Serviço Usar
Aplicativos Web Estáticos do Azure Use para aplicativos Web estáticos que usam renderização do lado do cliente, como React, Angular, Svelte, Vue e Blazor.

Disponibilidade de clientes

Serviço Usar
Azure Front Door Use para todos os aplicativos voltados para a Internet para fornecer uma rede global em cache e segura tanto para seus ativos estáticos quanto dinâmicos, incluindo proteção contra DDoS, criptografia TLS completa, firewalls de aplicativos e filtragem geográfica.

Computação do servidor

Os ativos de computação do servidor são arquivos processados pelo servidor antes de serem apresentados ao cliente. Os ativos dinâmicos são desenvolvidos usando a computação do servidor de back-end, opcionalmente integrada a outros serviços do Azure.

Serviço Usar
Serviço de Aplicativo do Azure Use este serviço para hospedagem típica na Web. Isso dá suporte a um amplo conjunto de pontos de extremidade de API de funcionalidade, aplicativos de pilha completa e tarefas em segundo plano. Esse serviço vem com muitos runtimes de linguagem de programação, bem como a capacidade de fornecer sua própria pilha, linguagem ou carga de trabalho de um contêiner.
Azure Functions Use esse serviço para fornecer seu próprio código nas linguagens compatíveis para pontos de extremidade HTTP ou gatilhos baseados em eventos dos Serviços do Azure.
Azure Spring Apps Use para implantar aplicativos Spring Boot sem alterações de código.
Aplicativos de Contêiner do Azure Use para hospedar microsserviços gerenciados e aplicativos conteinerizados em uma plataforma sem servidor.
Instâncias de Contêiner do Azure Use para cenários de contêiner simples que não precisam de orquestração de contêiner.
Serviço de Kubernetes do Azure Use esse serviço quando precisar de um cluster do Kubernetes. O plano de controle para gerenciar o cluster é criado e fornecido para você sem custo adicional.

Gerenciamento de ponto de extremidade de servidor

O gerenciamento de ponto de extremidade de servidor é a capacidade de gerenciar o ponto de extremidade do servidor e sua computação por meio de um gateway. Esse gateway fornece funcionalidades como controle de versão, cache, transformação, políticas de API e monitoramento.

Serviço Usar
Gerenciamento de API do Azure Use esse serviço para produzir suas APIs REST, OpenAPI e GraphQL com um gateway de API, incluindo cotas e limites de taxa, autenticação e autorização, transformação e respostas armazenadas em cache.
Gateway de Aplicativo do Azure Use para balanceamento de carga regional (camada 7 do OSI). Isso pode ser usado para rotear o tráfego com base no caminho da URL ou nos cabeçalhos do host e oferece suporte ao descarregamento de SSL, afinidade de sessão baseada em cookie e recursos do WAF (Firewall de Aplicativo Web).
Azure Front Door Use para balanceamento de carga global (camada 7 OSI) para fornecer uma rede global em cache e segura tanto para seus ativos estáticos quanto dinâmicos, incluindo proteção contra DDoS, criptografia TLS completa, firewalls de aplicativos e filtragem geográfica.
Gerenciador de Tráfego do Azure Use para distribuir o tráfego por DNS (camada OSI 7) para seus aplicativos voltados para o público nas regiões globais do Azure. O Gerenciador de Tráfego usa o DNS para direcionar as solicitações do cliente para o ponto de extremidade de serviço apropriado com base em um método de roteamento de tráfego. Ele dá suporte a vários métodos de roteamento de tráfego, como prioridade, desempenho e roteamento geográfico. É ideal para gerenciar o tráfego em várias regiões ou data centers.

Computação automatizada

A computação automatizada é automatizada por um evento, tal como um cronograma limitado ou outro serviço do Azure, e normalmente é usada para processamento em segundo plano, processamento em lotes ou processos de execução longa.

Serviço Usar
Power Automate Use quando for necessário automatizar processos de negócios e fluxos de trabalho.
Azure Functions Use quando for necessário executar código com base em um cronograma limitado ou em resposta a eventos em outros serviços do Azure.
Serviços de contêiner (Instâncias de Contêiner do Azure, Serviço de Kubernetes do Azure, Aplicativos de Contêiner do Azure) Use para cargas de trabalho automatizáveis padrão
Lote do Azure Use quando for necessária automação de alto desempenho.

Nuvem híbrida

A nuvem híbrida é um ambiente de computação que conecta os serviços de nuvem privada local de uma empresa e a nuvem pública de terceiros em uma infraestrutura única e flexível para executar os aplicativos e cargas de trabalho da organização.

Serviço Usar
Azure Arc Use quando for necessário gerenciar todo o seu ambiente, tanto os recursos de nuvem quanto os locais, incluindo segurança, governança, inventário e gerenciamento.

Se não for necessário manter sua própria infraestrutura, você poderá usar o Azure Stack HCI para executar máquinas virtuais locais.

Computação de alto desempenho

A computação de alto desempenho (HPC) é o uso de processamento paralelo para executar programas de aplicativos avançados de maneira eficiente, confiável e rápida. O termo aplica-se principalmente a sistemas que funcionam acima de um teraflop ou 10^12 operações de ponto flutuante por segundo.

Serviço Usar
Lote do Azure O Lote do Azure cria e gerencia um pool de nós de computação (máquinas virtuais), instala os aplicativos que você deseja executar e agenda trabalhos para execução nos nós. Os desenvolvedores podem de usar o Lote como um serviço de plataforma para criar aplicativos de cliente ou aplicativos SaaS onde a execução em larga escala for necessária.
Instâncias BareMetal do Azure Use quando for necessário executar em um ambiente não virtualizado com acesso de nível raiz ao sistema operacional, armazenamento e rede.
Workspace do Azure Quantum Use quando for necessário desenvolver e experimentar algoritmos quânticos.
Genomics Use para processamento genômico com certificação ISO e compatível com HIPAA.

Saiba mais sobre computação de alto desempenho no Azure.

Computação baseada em eventos

A computação baseada em eventos é disparada por um evento, como um cronograma limitado ou outro serviço do Azure. A computação baseada em eventos costuma ser usada para processamento em segundo plano, processamento em lotes ou processos de longa execução.

Serviço Usar
Power Virtual Agents Use quando for necessário criar chatbots com uma interface sem código.
Azure Functions Use quando for necessário executar código com base em um cronograma limitado ou em resposta a eventos em outros serviços do Azure.
Messaging do Barramento de Serviço do Azure Use quando for necessário desacoplar aplicativos e serviços.

Computação de CI/CD

A computação de CI/CD é a computação usada para criar e implantar seu aplicativo.

Serviço Descrição
Azure DevOps Use o Azure DevOps para uma integração estreita com a nuvem do Azure, incluindo autenticação e autorização para os agentes hospedados, que criam e implantam seu aplicativo.
GitHub Actions Use o GitHub Actions para criar e implantar seus aplicativos de repositório do GitHub. Use a CLI do Azure para acessar o Azure com segurança dentro da ação.
Máquinas Virtuais do Azure Caso você use outro sistema de CI/CD, poderá usar as Máquinas Virtuais do Azure para hospedar seu sistema de CI/CD.

Recursos do Java

Recursos adicionais