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.
- Parte 1: Visão geral do Azure para desenvolvedores
- Parte 2: Principais serviços do Azure para desenvolvedores
- Parte 3: Hospedando aplicativos no Azure
- Parte 4: Conectar seu aplicativo aos serviços do Azure
- Parte 5: Como criar e gerenciar recursos no Azure?
- Parte 6: Principais conceitos para criar aplicativos do Azure
- Parte 7: Como sou cobrado?
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.
- Aplicativos Lógicos: crie e execute fluxos de trabalho automatizados com pouco ou nenhum código.
- Power Automate: use quando precisar automatizar processos de negócios e fluxos de trabalho.
- Aplicativos Web Estáticos do Azure: implante aplicativos Web estáticos gerados, como Blazor e React.
- Aplicativos do Azure Functions: código sem servidor ou hospedagem de contêiner.
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.
- Serviço de Aplicativo do Azure : hospedagem na Web de serviço completo, incluindo runtimes de linguagem, contêineres e cargas de trabalho de automação.
- Aplicativos de Contêiner do Azure: hospedagem de contêiner sem servidor.
- Azure Spring Apps: Migrar aplicativos Spring Boot para o Azure Spring Cloud.
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.
- Máquinas Virtuais do Azure: controle total da VM.
- Serviço de Kubernetes do Azure: controle total do cluster do Kubernetes.
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.
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.
- Aplicativos Web Estáticos do Azure: implante aplicativos Web estáticos gerados.
- Azure Functions: implante funções de código em linguagens com suporte 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.
- Serviço de Aplicativo do Azure: hospedagem na Web de serviço completo.
- Azure Spring Apps: aplicativos Spring Boot.
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. |