O que é o Azure Functions?
Você acompanha a equipe Web Space Game da Tailspin conforme ela debate qual é a melhor maneira de fornecer novos requisitos de marketing orientados pelo gerenciamento. A equipe precisa integrar algumas tecnologias sem servidor, especificamente o Azure Functions, ao processo de DevOps.
Vamos dar uma olhada na equipe.
Os novos requisitos
Mateus: Obrigado por virem a essa reunião com tão pouca antecedência. As coisas estão esquentando, e a equipe de marketing fez algumas promessas que podem complicar as coisas para todos nós. Eles realmente gostam do nosso site. Ela acha que o placar de líderes pode ser usado para promover o jogo à medida que avançamos para o lançamento final e depois disso. Ela quer expandir muito além do que foi planejado originalmente.
Clara: Isso é ótimo, certo? Estamos no Azure, portanto, podemos escalar o serviço tanto quanto necessário.
Mateus: Eles só querem ter a capacidade de qualquer pessoa integrar os dados do placar de líderes nos respectivos aplicativos. Eles acham que seria ótimo ter as mesmas opções do placar de líderes no site, no jogo, nos sites de avaliação de jogos e até mesmo em blogs externos e sites pessoais. No momento, nosso desafio é que a equipe de mecanismo de jogos é proprietária do banco de dados de produção do qual obtemos os dados do placar de líderes. Eles acham que devem criar e ser proprietários da API daqui para frente.
Paulo: Clara, você tem alguma ideia?
Clara: Tenho certeza de que podemos criar algo. Aqui estão minhas observações:
- Precisamos fazer a entrega rapidamente, portanto, temos de encontrar uma solução em que possamos usar nosso código e nossas habilidades.
- Precisamos refatorar uma pequena parte da funcionalidade em um serviço independente.
- Precisamos minimizar a sobrecarga administrativa na produção.
- Precisamos ter uma grande escala sem assumir um grande compromisso.
A equipe acena com a cabeça concordando.
Funciona no meu computador
A reunião termina. Na manhã seguinte, Paulo animadamente aparece no escritório de Clara para uma conversa espontânea.
Paulo: Consegui! Encontrei uma solução que atende a todos os requisitos da API de placar de líderes. É uma oferta sem servidor chamada Azure Functions.
Clara: Fantástico! Quanto tempo levará para fazermos uma demonstração?
Paulo: Eu já criei algo. Criei um fork do nosso repositório GitHub e refatorei o código do placar de líderes em um novo projeto do Azure Functions. Ele expõe os dados do placar de líderes por meio de uma simples solicitação HTTP GET. Também atualizei o site para usar esse ponto de extremidade ao solicitar o placar de líderes e qualquer outra pessoa pode fazer o mesmo.
Clara: Isso parece exatamente o que precisamos. Posso ajudar a estender o pipeline de CI/CD existente para dar suporte à criação e implantação dele, como fazemos para o projeto de site principal.
Observação
Neste módulo, não nos concentraremos em como conectar seu aplicativo ao Azure Functions. Se você estiver interessado, poderá analisar o código-fonte. O código usa o Azure Functions Runtime para C# para ler dados do placar de líderes do Azure Functions.
O que é o Azure Functions?
O Azure Functions é uma oferta específica dentro do espectro mais amplo de tecnologias de computação sem servidor do Azure. Ele fornece uma forma fácil para os desenvolvedores criarem funções simples que existem em um ambiente sem servidor e sem estado. As funções podem ser disparadas com vários métodos, como solicitações HTTP, alterações nos dados no armazenamento, recebimento de uma mensagem de uma fila, entre outros. Você pode aprender mais sobre as associações de gatilhos em Conceitos de gatilhos e de associações do Azure Functions.
A equipe da Tailspin selecionou o Azure Functions para este cenário porque ele atendeu a todas as suas necessidades:
- Precisamos fazer a entrega rapidamente, portanto, temos de encontrar uma solução em que possamos usar nosso código e nossas habilidades.
- Podemos compilar a solução rapidamente como um aplicativo ASP.NET Core aplicando o código que já temos.
- Precisamos refatorar uma pequena parte da funcionalidade em um serviço independente.
- Podemos fornecer uma função independente sem a preocupação com nenhuma outra área da superfície do aplicativo.
- Precisamos minimizar a sobrecarga administrativa na produção.
- O Azure Functions remove a necessidade de se preocupar com ambientes de hospedagem.
- Precisamos ter uma grande escala sem assumir um grande compromisso.
- As tecnologias sem servidor têm escala praticamente ilimitada que pode ser automaticamente ampliada e reduzida de maneira mais rápida do que as máquinas virtuais ou os serviços de aplicativos.
O Azure Functions e outras tecnologias sem servidor nem sempre são as mais adequadas para cada solução. Mais tarde, discutiremos onde você pode encontrar recursos para ajudar a selecionar a tecnologia certa para o trabalho.