A implantação serverless virou uma opção popular em diversos ambientes de nuvem. Cada provedor tem vários serviços que englobam suas soluções serverless, e com o Microsoft Azure não é diferente.
Este post aborda os principais serviços serverless do Azure, incluindo Azure Functions, Azure Logic Apps, Azure Event Grid, Azure Event Hubs, Azure Container Apps e Azure Cosmos DB.
Além disso, discute diferentes frameworks de arquitetura e casos de uso, como processamento de pedidos e soluções orientadas a eventos.
O post também destaca boas práticas para implantar aplicações serverless no Azure, as ferramentas que facilitam essa implantação e técnicas de otimização de custos para cada serviço.
Vamos começar.
Introdução à computação serverless no Azure
O que é arquitetura serverless?
O termo "serverless" não significa que os servidores deixaram de existir; na verdade, refere-se a um modelo que permite aos desenvolvedores focar principalmente em escrever código, em vez de gerenciar a infraestrutura necessária para executá-lo. Nesse modelo, o provedor de nuvem assume a responsabilidade pelo provisionamento, escalonamento e gerenciamento automático da infraestrutura, garantindo a execução eficiente do código.
O termo "Serverless" abrange dois significados distintos: Backend as a Service (BaaS) e Functions as a Service (FaaS). No entanto, ambos compartilham o mesmo princípio: desenvolvedores e engenheiros de DevOps não precisam implantar, configurar ou gerenciar servidores.
- BaaS refere-se a serviços de nuvem que oferecem funcionalidades de backend, como bancos de dados e armazenamento. Esses serviços disponibilizam APIs que permitem que aplicações se conectem diretamente a eles.
- FaaS é um modelo no qual uma função é um trecho de código executado dentro do ambiente de hospedagem do provedor de nuvem. Esse modelo abstrai o código e os servidores que executam a função.
O diagrama abaixo ilustra a arquitetura no Azure de uma aplicação que serve conteúdo estático usando o Azure Blob Storage e, ao mesmo tempo, integra uma API por meio do Azure Functions. Essa API busca dados no Azure Cosmos DB e devolve os resultados para a aplicação web.
O exemplo demonstra os dois significados de BaaS e FaaS no Azure: o Azure Functions representa o FaaS, enquanto o Azure Blob Storage é um exemplo de BaaS.

https://learn.microsoft.com/en-us/azure/architecture/web-apps/serverless/architectures/web-app
O serverless tem características que trazem vantagens e desvantagens. Entre as vantagens estão:
- Custo — você paga apenas pelos recursos que usa, evitando cobranças por recursos ociosos, como servidores web ou de middleware, e reduz o desperdício em horários de baixa demanda. Se você conhece seus padrões de acesso, dá para economizar ainda mais comprando capacidade reservada.
- Menos manutenção — como o provedor de nuvem cuida das complexidades de gerenciamento dos servidores, os desenvolvedores ficam livres para focar em construir a aplicação e suas funcionalidades.
- Escalabilidade — os componentes serverless escalam automaticamente para lidar com padrões de tráfego imprevisíveis ou oscilantes.
- Suporte — existe uma grande comunidade e a maioria dos provedores de nuvem oferece serviços que se integram ou utilizam componentes serverless.
Algumas desvantagens da computação serverless:
- Desempenho — problemas de desempenho podem surgir em vários pontos de uma arquitetura serverless desacoplada, dificultando identificar qual API ou componente está causando a lentidão. Além disso, se uma função fica sem ser usada por algum tempo, ela pode sofrer um cold start. Isso acontece porque o provedor precisa alocar recursos para executar a função, o que leva um tempo a mais e gera lentidão na aplicação.
- Vendor lock-in — em geral, os serviços serverless são oferecidos pelo próprio fornecedor, o que pode tornar a migração para fora da plataforma difícil e cara.
- Controle limitado — o cliente pode encontrar limitações por não ter controle sobre a infraestrutura subjacente. Se a aplicação depende de configurações específicas de ambiente, ela pode não funcionar bem em serverless. Também costuma haver restrições de tempo de execução, número máximo de funções e linguagens de programação suportadas.
- Segurança — como o provedor é responsável pelo sistema operacional e pela infraestrutura do serviço serverless, a segurança depende em grande parte das medidas que ele implementa. Isso pode gerar vulnerabilidades, já que cada função pode atuar como um vetor de ataque.
Por que escolher o Azure para serverless?
Embora muitos provedores de nuvem pública ofereçam frameworks de arquitetura serverless, o Azure se destaca por alguns motivos:
- Suporte a uma gama maior de linguagens: o Azure aceita um conjunto diversificado de linguagens de programação, permitindo que os desenvolvedores trabalhem nos ambientes que preferirem.
- Recursos de depuração local: com ferramentas como o Visual Studio, o Azure oferece recursos que aumentam a produtividade do desenvolvedor ao facilitar a depuração local.
- Ecossistema completo: o Azure possibilita criar soluções serverless completas tanto para front-end quanto para backend, com serviços que funcionam de forma integrada e eficiente. Também permite que os desenvolvedores criem aplicações inovadoras integrando facilmente serviços de machine learning e IA.
Essas vantagens tornam o Azure uma escolha bastante interessante para arquiteturas serverless.
Serviços serverless populares do Azure

Azure Functions
Azure Functions
O Azure Functions atua como a lógica de backend em aplicações serverless e é a base do Function as a Service (FaaS). Oferece escalabilidade e suporte a arquiteturas orientadas a eventos. As funções também podem chamar serviços externos, como processadores de pagamento de terceiros, para concluir transações.
Inclui um conjunto abrangente de gatilhos e bindings orientados a eventos que conectam as funções a outros serviços sem esforço, eliminando a necessidade de código adicional.
O resumo a seguir mostra a finalidade e alguns casos de uso do Azure Functions:

https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview
O Azure Functions tem suporte a várias linguagens, o que o torna um recurso atraente para computação serverless. As linguagens suportadas incluem:

O Azure Durable Functions amplia os recursos do Azure Functions, permitindo criar workflows com estado e lógica de coordenação por meio de um padrão orquestrador. Essa extensão ajuda a desenvolver aplicações serverless de longa duração, escaláveis e confiáveis.
Técnicas de otimização de custos:
- Escolha o Consumption Plan para workloads orientadas a eventos. Saiba mais.
- Otimize a alocação de memória para reduzir a cobrança por GB-segundo. Boas práticas.
- Use o Durable Functions com critério para evitar execuções excessivas. Leia sobre o Durable Functions.
- Azure Functions Premium Plan: indicado para workloads previsíveis de alto desempenho. Entenda os custos do Premium Plan.

Azure Logic Apps
Azure Logic Apps
O Azure Logic Apps oferece uma solução robusta de orquestração serverless, criada especificamente para desenvolver e gerenciar workloads complexas. Como plataforma de integração como serviço (iPaaS) baseada em nuvem da Microsoft, ela permite automatizar workflows que conectam uma ampla variedade de serviços e aplicações.
Essa ferramenta simplifica o processo de integração e ajuda as organizações a aumentar a eficiência operacional, reduzir intervenções manuais e responder mais rápido às mudanças de negócio.
Com templates e conectores predefinidos, os usuários conseguem montar rapidamente workflows sofisticados que integram sistemas distintos, estimulando a inovação e elevando a produtividade.
Veja algumas características-chave do Azure Logic Apps que fazem dele uma boa escolha para orquestração de workflows:
- Designer visual para criar processos ou workflows de negócio automatizados
- Mais de 1.400 conectores prontos com gatilhos e ações
- Abordagem Low-Code/No-Code
- Hospedado pelo Microsoft Azure, que cuida da hospedagem, escalabilidade, gerenciamento, monitoramento e manutenção das soluções construídas com esses serviços.
Combinar serviços é algo bastante comum em computação serverless. Por exemplo, você pode chamar funções a partir de workflows do Logic App e chamar workflows do Logic App a partir de funções. A tabela a seguir lista algumas das principais diferenças entre o Azure Functions e o Azure Logic Apps.

https://learn.microsoft.com/en-us/azure/azure-functions/functions-compare-logic-apps-ms-flow-webjobs
Técnicas de otimização de custos:
- Escolha o Standard Plan para preços previsíveis. Compare os modelos de preços.
- Otimize o design dos workflows para minimizar ações desnecessárias. Padrões de design do Logic Apps.
- Implemente processamento em lote para reduzir o custo por ação. Estratégias de processamento.
- Conectores customizados do Azure Logic Apps: reduza a frequência de chamadas de API para diminuir os custos de execução. Boas práticas.

Azure Event Grid
Azure Event Grid
O Azure Event Grid é um serviço criado para simplificar o desenvolvimento de aplicações orientadas a eventos. Ele encaminha eventos de diversos serviços do Azure e fontes personalizadas para assinantes, como Azure Functions, Logic Apps, webhooks ou qualquer endpoint HTTP.
Esse serviço, escalável e totalmente gerenciado, opera no modelo publish/subscribe (Pub/Sub) e tem suporte aos protocolos MQTT v3.1.1 e v5.0, além de HTTP, facilitando a criação de pipelines de dados, integrações de aplicações e arquiteturas serverless orientadas a eventos. Também é capaz de publicar e assinar mensagens para soluções de Internet das Coisas (IoT), com entrega de eventos tanto em modo push quanto pull.
O Event Grid também atende à especificação CloudEvents 1.0, o que aumenta a interoperabilidade entre sistemas diversos.
Abaixo, um diagrama geral do Azure Event Grid.

https://learn.microsoft.com/en-us/azure/event-grid/overview
Os dois recursos centrais do Azure Event Grid são:
- Mensageria MQTT: permite que dispositivos e aplicações IoT se comuniquem entre si via MQTT. O Event Grid pode usar o MQTT para direcionar mensagens a serviços do Azure ou endpoints customizados, para análise, visualização ou armazenamento adicionais.

Mensageria MQTT https://learn.microsoft.com/en-us/azure/event-grid/overview
- Distribuição de dados nos modos push e pull — em qualquer ponto do pipeline de dados, aplicações HTTP podem consumir mensagens usando APIs push ou pull.

Mensageria de eventos https://learn.microsoft.com/en-us/azure/event-grid/overview
Técnicas de otimização de custos:
- Use o Tier Basic para roteamento de eventos a um custo menor. Veja os preços.
- Filtre eventos antes que cheguem aos assinantes para reduzir a sobrecarga de processamento. Guia de filtragem de eventos.
- Monitore as tentativas de entrega de eventos para evitar retries excessivos. Boas práticas de confiabilidade.

Azure Event Hubs
Azure Event Hubs
O Azure Event Hubs é um serviço totalmente gerenciado de ingestão de dados em tempo real, com simplicidade, segurança e escalabilidade. Ele dá suporte a protocolos populares, como AMQP, HTTPS e Apache Kafka, e consegue ingerir milhões de eventos por segundo.
Essa capacidade de ingerir milhões de eventos por segundo e analisar dados em tempo real é especialmente útil para aplicações que precisam de insights imediatos e resposta rápida a mudanças nos padrões de dados, o que torna o serviço um componente essencial em arquiteturas modernas baseadas em nuvem.
A integração com outros serviços do Azure é transparente, e dá para extrair insights valiosos dos dados, inclusive com microbatching no mesmo stream.
O Azure Event Hubs permite criar uma solução de streaming serverless completa, que se integra perfeitamente ao Stream Analytics.
Alguns dos casos de uso citados pela documentação do Azure incluem:
- Processar dados do seu event hub usando o Azure Stream Analytics para gerar insights em tempo real.
- Analisar e explorar dados em streaming com o Azure Data Explorer.
- Criar suas próprias aplicações nativo da nuvem, funções ou microsserviços que rodam sobre dados em streaming do Event Hubs.
- Fazer streaming de eventos com validação de schema usando o Azure Schema Registry integrado para garantir a qualidade e a compatibilidade dos dados em streaming.

Arquitetura do Event Hub https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about
Técnicas de otimização de custos:
- Escolha o Tier Basic para ingestão leve de telemetria. Detalhes de preços.
- Otimize as Throughput Units (TUs) conforme a demanda. Guia de eficiência de custos.
- Implemente auto-scaling para evitar superprovisionamento. Recomendações de escalonamento.

Azure Container Apps
Azure Container Apps
O Azure tem dois serviços principais para trabalhar com containers: Azure Container Apps (ACA) e Azure Kubernetes Service (AKS). Embora nosso foco seja o Azure Container Apps, vale entender as diferenças e saber quando escolher cada opção.
O ACA traz uma proposta única "centrada na aplicação", o que o torna ideal para desenvolvedores que querem focar em construir aplicações em vez de lidar com as complexidades da orquestração de containers. Sua arquitetura orientada a eventos, somada à capacidade de escalar aplicações até zero, o torna uma opção excelente do ponto de vista de custo-benefício.
Já o Azure Kubernetes Service costuma ser visto como uma opção "centrada em cluster", oferecendo mais controle e flexibilidade. É indicado para aplicações complexas que exigem customizações específicas, especialmente para times com bom domínio de Kubernetes.
Se você precisar de mais orientação para simplificar sua implantação com AKS, fale com a DoiT.
O Azure Container Apps se destaca como uma plataforma serverless avançada, projetada para facilitar a operação fluida e eficiente de aplicações em containers. Ao eliminar os obstáculos do gerenciamento de servidores, o serviço permite que os desenvolvedores foquem em criar e implantar suas aplicações sem se preocupar com desafios de infraestrutura.
A plataforma simplifica a orquestração e a implantação de containers, permitindo gerenciar configurações, escalar operações e alocar recursos com facilidade. Com escalonamento automático com base na demanda, recursos de rede integrados e ferramentas de monitoramento embutidas, o Azure Container Apps dá às empresas a flexibilidade necessária para se adaptar rapidamente às mudanças do mercado.
Além disso, a plataforma ajuda as organizações a acelerar seus ciclos de inovação mantendo a eficiência operacional em um ambiente de nuvem dinâmico. Isso permite aproveitar novas oportunidades com agilidade, otimizar o uso de recursos e melhorar o desempenho geral das aplicações.
Alguns casos de uso comuns do Azure Container Apps:
- Implantar endpoints de API
- Hospedar jobs de processamento em background
- Executar processamento orientado a eventos
- Rodar microsserviços
Uma vantagem de construir aplicações no Azure Container Apps é poder escalar com base nos seguintes critérios:
- Tráfego HTTP
- Processamento orientado a eventos
- Carga de CPU ou memória
- Qualquer scaler suportado pelo KEDA

Exemplos do Azure Container Apps: https://learn.microsoft.com/en-us/azure/container-apps/overview
Técnicas de otimização de custos:
- Use o Consumption Plan para pagar conforme o uso. Saiba mais.
- Configure o scale-to-zero para workloads ociosas. Estratégias de escalonamento.
- Otimize a alocação de réplicas para equilibrar custo e desempenho. Gerenciamento de recursos do Container Apps.

Azure Cosmos DB
Azure Cosmos DB
O Azure Cosmos DB é um serviço de banco de dados avançado e totalmente gerenciado, com suporte a diversos modelos de dados, incluindo NoSQL, relacional e bancos vetoriais. Essa plataforma flexível foi projetada para entregar tempos de resposta excepcionais, tipicamente em milissegundos de um único dígito, garantindo alta performance para os usuários. Sua arquitetura permite escalar com facilidade mantendo desempenho confiável, independentemente do tamanho do sistema ou da demanda.
Além disso, o Azure Cosmos DB oferece uma sólida continuidade de negócios com um Service Level Agreement (SLA) que garante uptime e inclui medidas de segurança em nível corporativo abrangentes para proteger dados sensíveis e atender a requisitos regulatórios.
Por ser um serviço totalmente gerenciado, o Azure Cosmos DB automatiza diversas tarefas, como gerenciamento, atualizações e patching. Ele oferece opções serverless de baixo custo para lidar com capacidade, com escalonamento automático que se ajusta às necessidades da aplicação, garantindo que a capacidade acompanhe a demanda.
Com alta disponibilidade garantida, throughput impressionante, latência mínima e consistência ajustável, o Azure Cosmos DB é ideal para diversos tipos de aplicação, incluindo IA, varejo e marketing, IoT e telemática, jogos e personalização para plataformas sociais.
As aplicações listadas a seguir têm excelente compatibilidade com o Azure Cosmos DB, o que mostra a capacidade da plataforma de integrar e aproveitar com eficácia seus recursos avançados, resultando em melhor desempenho e escalabilidade em diferentes cenários.
- Schema flexível para desenvolvimento iterativo. Aplicações que buscam adotar práticas modernas e flexíveis de DevOps para acelerar a entrega de novas funcionalidades.
- Workloads sensíveis à latência. Casos como gerenciamento de estado e telemetria de dispositivos IoT, que exigem o tratamento eficiente de grandes volumes de dados.
- Workloads altamente elásticas. Um exemplo é uma plataforma de venda de ingressos para shows, que precisa se adaptar a picos de demanda.
- Workloads de alto throughput. Casos como gerenciamento de estado e telemetria de dispositivos IoT, que exigem o tratamento eficiente de grandes volumes de dados.
- Workloads de missão crítica com alta disponibilidade. Aplicações web voltadas ao cliente são um exemplo importante, já que precisam manter disponibilidade e confiabilidade para atender bem aos usuários.
As aplicações a seguir não são consideradas adequadas para uso com o Azure Cosmos DB:
- Workloads analíticas (OLAP), que incluem analytics interativos, em streaming e em batch, atendendo a Cientistas e Analistas de Dados. O Microsoft Fabric pode ser uma alternativa interessante.
- Aplicações altamente relacionais, como soluções de CRM white-label. Para esses casos, considere o Azure SQL, o Azure Database for MySQL ou o Azure Database for PostgreSQL.
Técnicas de otimização de custos:
- Use o modo Serverless para workloads pouco frequentes. Detalhes de preços.
- Otimize as estratégias de indexação para minimizar o consumo de Request Units (RU). Boas práticas de indexação.
- Implemente replicação multi-região de forma estratégica para reduzir custos de transferência. Gerenciamento de custos de replicação.
- Se concluir que o Azure Cosmos DB atende às suas necessidades, é possível obter descontos significativos de até 63% por meio da opção de Capacidade Reservada.
Também estão disponíveis as seguintes opções gratuitas:
- O free tier vitalício do Azure Cosmos DB oferece 1.000 Request Units RU/s de throughput e 25 GB de armazenamento sem custo.
- O Azure AI Advantage oferece 40.000 RU/s de throughput por noventa dias (equivalente a até US$ 6.000) para clientes do Azure AI ou GitHub CoPilot.
- Experimente o Azure Cosmos DB gratuitamente por trinta dias sem nem precisar criar uma conta no Azure, sem compromisso quando o período de teste terminar.
Conclusão:
Em resumo, o modelo de computação serverless do Azure oferece uma solução robusta para desenvolvedores que querem simplificar o desenvolvimento de aplicações e reduzir os desafios de gerenciamento de infraestrutura. Ao usar serviços como Azure Functions, Azure Logic Apps e Azure Cosmos DB, as organizações conseguem construir aplicações escaláveis e orientadas a eventos que se adaptam rapidamente às novas demandas dos usuários.
Apesar dos benefícios, como economia de custos, menos manutenção, escalabilidade e uma comunidade de suporte robusta, é importante reconhecer possíveis desafios, como problemas de desempenho, vendor lock-in, controle limitado e riscos de segurança.
No fim das contas, a ampla gama de soluções serverless do Azure permite que os desenvolvedores foquem em inovação e no desenvolvimento de novas funcionalidades, em vez de gerenciar infraestrutura, tornando o Azure uma escolha atraente para empresas que querem aproveitar a computação em nuvem. À medida que mais organizações adotam a transformação digital, o serverless do Azure oferece uma abordagem visionária para construir aplicações resilientes e eficientes, capazes de se adaptar facilmente às necessidades futuras.
Libere todo o potencial da sua plataforma Azure — agende uma demonstração e converse hoje mesmo com nosso time dedicado para descobrir como o DoiT Cloud Intelligence pode elevar sua experiência e gerar resultados!