Azure Functions: o que são, onde vivem, do que se alimentam?
De acordo com sua documentação oficial, o Azure Functions é um serviço de computação sem servidor que permite executar o código sob demanda sem a necessidade de provisionar explicitamente ou gerenciar a infraestrutura.
Serverless: A execução do código ocorre sem um servidor?
Não! Sempre haverá um servidor processando as tarefas. Porém, com os recursos serverless, como o Azure Functions, você não precisa gastar horas do seu time para provisionar infraestrutura, administração de servidores, hospedagem e diversas outras tarefas comuns para hospedagens de qualquer sistema. Em vez disso, seu time pode focar no que realmente agrega valor: o negócio!
A execução das functions se apoia em um motor criado e sustentado por uma equipe do Azure para executar seus trechos de código em um cluster robusto de servidores gerenciados pela Microsoft, sem que você precise se preocupar com provisionamento de máquina, sistema operacional, instalação de frameworks e outras particularidades de gerenciamento de máquina.
E o mais legal é que, como a execução será de um “trecho de código”, o motor se responsabiliza pela escalabilidade e provisionamento de recursos, de forma virtualmente infinita para cada unidade de código que você disponibiliza na plataforma.
Baseado em eventos
A execução de uma função é disparada a partir de um evento, que pode ser uma requisição HTTP, um timer, uma mensagem em uma fila etc.
Também é possível criar workflows, orquestrando chamadas a diversas funções e até mesmo aguardar por um evento externo (como uma ação de usuário) dentro do seu workflow.
Soluções similares de mercado
Uma das soluções muito utilizadas no mercado atualmente, principalmente para aplicativos móveis, é o Google Cloud Functions, que opera no Firebase. O objetivo do Google Cloud Functions é o mesmo do Azure Functions: prover processamento de funções serverless, ou seja, sem a necessidade de provisionar infraestrutura para tal.
Veja algumas vantagens do Azure Functions em relação à solução do Firebase:
- Suporte a múltiplas linguagens de programação: o Azure Functions suporta uma variedade muito grande de linguagens de programação, como JavaScript, C#, Java, Python, entre outras;
- Suporte à orquestração com funções duráveis, dando um poder e robustez superior à solução;
- É desenhado pra ser simples e eliminar boilerplate através de recursos que facilitam operações, como conexão a filas de mensagens, bancos de dados, armazenamento de arquivos, envio de e-mails, websockets e muito mais;
- É extensível: por ser Open Source, conta com uma grande ajuda da comunidade para criação de novas features e dá grande poder a provedores de soluções para a criação de extensões que facilitam a utilização de seus recursos, diminuindo boilerplate e propensão a erros no código para o desenvolvedor;
- Suporta diversos modelos de execução e hospedagem, tais como:
– Pay-per-use: pague apenas pelo consumo de recursos que utilizar, escalando sua aplicação de forma virtualmente infinita;
– App Service: hospede com um custo fixo mensal, com uma capacidade “fixa” de recursos e escale sempre que precisar;
– Docker: crie um container para sua aplicação e execute onde quiser, até mesmo em outros cloud providers como AWS, aproveitando o ganho de produtividade devido à redução de boilerplate que o Azure Functions oferece.
E aí, também ficou empolgado com o potencial do serverless para os desafios da sua TI?
Entre em contato com a Iteris e saiba como nossos engenheiros podem ajudar a elevar a produtividade e desempenho das suas aplicações.