Cloud

Como as capacidades do Azure estão progredindo.

A Microsoft implementou importantes melhorias em seu serviço de computação sem servidor para torná-lo mais compatível com as novas tendências de desenvolvimento, como Kubernetes e inteligência artificial generativa.

shutterstock 424982974 five light bulbs on a blue background one glowing light bulb
Imagem: astrovariable/Pexels

Há alguns anos, a computação sem servidor era um tema dominante, porém foi gradualmente substituída por tecnologias como Kubernetes e AI generativa. No entanto, a computação sem servidor continua presente, fornecendo a flexibilidade e eficiência necessárias nos ambientes de nuvem modernos.

Reformulação: As capacidades do Azure da Microsoft estão em constante evolução, adaptando-se a APIs e linguagens mais recentes e integrando-se aos padrões e práticas recomendadas do Azure, abrangendo desde inteligência artificial até Internet das Coisas. O diferencial do Azure Functions continua sendo sua habilidade de oferecer serviços sob demanda com base no modelo “pague pelo que usar”. Com tecnologia serverless, não é necessário provisionar infraestrutura; em vez disso, é possível escrever código sem estado que responde a eventos.

Esse modelo centrado em eventos é essencial para a relevância da computação sem servidor, pois possibilita o processamento e a utilização dos dados à medida que são recebidos. Portanto, a computação sem servidor pode ser vista como um elemento crucial em aplicações contemporâneas baseadas em mensagens, fazendo uso de tecnologias de publicação e subscrição, como o Azure Event Grid e o formato de mensagens CloudEvents, que seguem padrões abertos.

No Build 2024, a Microsoft apresentou importantes melhorias para o Azure Functions, visando alinhá-lo com as atuais práticas de desenvolvimento. Agora é possível executá-lo em ambientes Kubernetes gerenciados e oferecer suporte a aplicativos de inteligência artificial sob demanda baseados no Azure OpenAI.

Utilizando recursos de contêiner do Azure em aplicativos hospedados em contêineres do Azure.

O Contêiner Azure Apps da Microsoft é um ambiente gerenciado de Kubernetes que simplifica a preocupação do usuário apenas com seus contêineres de aplicativos e regras de escala básicas. Ao contrário de lidar com a plataforma Kubernetes subjacente, a funcionalidade do ACA foi automatizada, tornando-o semelhante a uma plataforma sem servidor, mas para contêineres.

Uma das principais características do Azure Functions é sua capacidade de ser portátil, permitindo a construção de aplicativos de Funções e um tempo de execução básico em contêineres para facilitar implantação e testes. A Microsoft anunciou recentemente no evento Build que a Azure Container Apps agora oferece suporte para contêineres Functions como parte de uma variedade de serviços hospedados em contêineres. Com capacidade de dimensionamento orientado a eventos, a Azure Container Apps é uma plataforma ideal para hospedar suas Funções, permitindo o lançamento de contêineres conforme necessário.

RELACIONADO:  A tecnologia de computação em nuvem sem a necessidade de servidor desaparece.

O recipiente abriga o mesmo ambiente de execução disponível em outra parte do Azure, permitindo que você utilize suas ferramentas existentes com as mesmas integrações que uma função padrão do Azure. Isso significa que as ligações permanecem as mesmas, com o dimensionamento sendo gerenciado pelo Azure Container Apps (ACA) e o autoscaling baseado em eventos Kubernetes (KEDA). Uma diferença significativa é que, em vez de ser cobrado como uma função Azure separada, as funções hospedadas pelo ACA serão faturadas como parte do seu plano ACA, seguindo um modelo de consumo sem servidor ou o plano Dedicado mais avançado. Caso esteja utilizando um plano dedicado, suas Funções terão acesso a recursos de GPU, o que pode acelerar o processamento de modelos de IA localmente.

Os recipientes que suportam Funções são construídos com base em Linux e contam com diferentes imagens de base para cada idioma disponível. Ao utilizar a ferramenta de desenvolvimento de linha de comando Funções com a opção –docker ao criar um novo projeto, a imagem apropriada será gerada automaticamente. É importante manter essa imagem atualizada para garantir que os patches de segurança mais recentes estejam presentes. Isso envolverá a atualização da imagem aproximadamente uma vez por mês, visto que novas imagens são lançadas regularmente.

Utilizando recursos do Azure em conjunto com o Azure OpenAI.

No Build 2024, houve um grande foco nos investimentos em inteligência artificial feitos pela Microsoft. Embora as Funções do Azure ainda não tenham seu próprio Copilot, elas agora estão integradas à ferramenta de programação de IA da Microsoft. Isso inclui um conjunto de APIs que permitem usar Funções para controlar operações de IA generativas e responder a gatilhos do Azure OpenAI.

As funções de gatilho do Azure Open IA foram desenvolvidas para fornecer um agente sem servidor. Os prompts chamam funções conhecidas e as saídas dessas funções podem ser usadas como prompts para gerar respostas em linguagem natural. Outras ferramentas permitem a atualização e leitura de índices de pesquisa vetorial, permitindo o uso de funções para manter sua loja semântica local.

RELACIONADO:  Facilitando a criação de inteligência artificial com o Azure AI Studio.

A Microsoft planeja disponibilizar uma ampliação das funções para todos os idiomas suportados. Ao decidir qual ferramenta de desenvolvimento utilizar, o primeiro passo é instalar o pacote de extensão na função desejada. Por exemplo, se estiver trabalhando com C#, é possível instalar o pacote do .NET CLI através do NuGet. Além disso, será necessário instalar pacotes específicos para o banco de dados de vetores em uso, como o Azure AI Search ou a nova pesquisa de vetores baseada em DiskANN do Cosmos DB.

Uma possibilidade interessante é criar uma função que desempenha o papel de assistente em um processo do Azure OpenAI, integrando-a como uma habilidade em uma etapa do Prompt Flow. Quando um chatbot identifica uma solicitação que requer a intervenção da função, ele envia os dados como uma sequência de caracteres, com base na descrição da função. Em seguida, a função pode processar essa sequência, como por exemplo, inserindo-a em um banco de dados de outra aplicação.

Se optar, é possível utilizar uma função para desenvolver um chatbot (ou uma interação AI generativa) acionado por um evento externo. Isso possibilita o gerenciamento dinâmico de requisições, utilizando a função para controlar o acesso do seu AI, aplicar filtros e evitar possíveis ataques de injeção de prompt conhecidos. Uma interação básica envia uma solicitação para um endpoint do Azure OpenAI e obtém uma resposta que pode ser redirecionada para outra função.

Muitas possibilidades podem ser exploradas ao utilizar a computação sem servidor com o Azure OpenAI. As funções do Azure podem ser integradas como complementos e recursos para ferramentas como Prompt Flow ou Semantic Kernel, indo além de simples chatbots e aproveitando o Azure OpenAI como a base de um agente impulsionado pela inteligência artificial, sem a necessidade de interação direta entre o grande modelo de linguagem e os usuários. É interessante considerar como é possível aproveitar as capacidades combinadas de um grande modelo de linguagem e as funções do Azure, seja para criar uma aplicação de geração aumentada de recuperação (RAG) ou para desenvolver uma interface de linguagem natural para aplicações mais avançadas.

O suporte à faturação de consumo flexível permite a implementação de novos modelos de aplicação.

Além das novas funcionalidades para criar aplicativos, o Azure Functions agora oferece uma opção de cobrança adicional chamada plano Flex Consumption. Esse plano amplia as possibilidades do plano de consumo atual, proporcionando mais flexibilidade em relação à infraestrutura utilizada. As instâncias são baseadas em servidores Linux e suportam ambientes de programação comuns para Funções, como C# .NET 8 e Node.js.

RELACIONADO:  Atualizações de floco de neve direcionam a demanda de IA generativa de empresas

Apesar de a principal vantagem da computação sem servidor ser a capacidade de não se preocupar com a infraestrutura e simplesmente usar os recursos disponíveis, ainda é necessário ter algumas opções fixas que determinem como a função é implantada e quais recursos podem ser utilizados. Isso pode incluir a utilização de redes privadas, a seleção do tamanho da memória para os servidores e o suporte a diferentes formas de escalabilidade.

Você pode considerar este plano como uma opção premium, com recursos focados em grandes implementações que necessitam de respostas rápidas. A escalabilidade ainda é baseada em eventos, mas agora é possível ter até 1.000 instâncias em vez de um máximo de 200. Além disso, as novas instâncias suportam implantações rápidas e estão prontas para funcionar a qualquer momento. Essa abordagem reduz a latência da aplicação, adicionando instâncias sempre prontas assim que o conjunto atual se torna ativo. As instâncias de memória maiores têm acesso a mais largura de banda de rede e mais CPU.

Além da opção de memória padrão de 2048MB, os planos Flex Consumption oferecem instâncias maiores com suporte para 4096MB. Isso pode beneficiar aplicações que demandam mais memória ou poder computacional, como a execução de pesquisas vetoriais para aplicações RAG orientadas a eventos. A inclusão do suporte para redes virtuais privadas é fundamental para a computação sem servidor corporativo, garantindo conexões com outros serviços do Azure e armazenamento interno em uma rede segura própria.

As tecnologias sem servidor, como o Azure Functions, continuam sendo uma ferramenta essencial na construção de aplicações modernas baseadas em nuvem. Elas oferecem uma estrutura para escalabilidade rápida e auxiliam na redução dos custos, uma vez que são cobradas somente durante a execução. Por responderem a eventos e mensagens, são uma excelente opção em conjunto com Kubernetes e plataformas de IA modernas, possibilitando a adição ágil de novas funções e serviços às aplicações Azure.

Artigos relacionados

Leave a Reply

Your email address will not be published. Required fields are marked *

Verifique também
Close
Back to top button