InícioBlogAgilizando o progresso do desenvolvimento nativo de nuvem na plataforma Microsoft Azure.

Agilizando o progresso do desenvolvimento nativo de nuvem na plataforma Microsoft Azure.

Date:

Da inclusão do suporte à GPU para implementações de referência, as últimas melhorias no Azure Container Apps demonstram o compromisso da Microsoft com a eficiência do desenvolvedor ao integrar suas mais recentes ferramentas de desenvolvimento de inteligência artificial.

Construction worker and blue sky    147256163
Imagem: GernotBra/Burst

Uma das principais vantagens de criar aplicativos nativos na nuvem é poder transferir a responsabilidade da parte tediosa da infraestrutura para terceiros. Não há necessidade de construir e administrar um servidor quando se precisa apenas de uma função simples ou um serviço básico.

Essa é a lógica por trás das diferentes soluções de computação sem servidor disponíveis nos principais provedores de nuvem. Embora o Lambda da AWS seja amplamente reconhecido, o Azure oferece diversas opções sem servidor, como os Serviços de App, Funções e Aplicativos de Container do Azure.

Em um recipiente do Azure, os aplicativos podem se tornar mais atrativos, já que proporcionam uma maneira mais versátil de disponibilizar aplicações e serviços em maior escala e com capacidade de expansão.

Uma plataforma de contêiner mais básica.

Uma opção mais básica em comparação ao Azure Kubernetes Service, o Azure Container Apps foi criado para ser utilizado em implantações menores. É uma plataforma que permite a execução de aplicativos contêineres que gerenciam escalabilidade automaticamente. Para utilizá-lo, basta garantir que o resultado do processo de compilação seja um contêiner x64 Linux, fazer a implantação no Azure Container Apps e estará pronto para começar.

Como não é obrigatório ter uma imagem base, é possível utilizar os novos contêineres NET para serviços NET, o que permite uma recarga rápida, já que os contêineres que hospedam o código são compactos. Além disso, é possível explorar diferentes abordagens sem distribuições, oferecendo diversas opções de hospedagem para o seu código.

Diferentemente de outras plataformas Kubernetes, os aplicativos do Azure Container Apps se assemelham às funções do Azure, escalando para zero quando os serviços não são mais necessários. Apenas os contêineres de aplicativos são pausados, enquanto a infraestrutura de Kubernetes, gerenciada pela Microsoft, permanece ativa, facilitando o processo de recarregar um contêiner pausado em comparação com reiniciar uma máquina virtual. Além disso, o Azure Container Apps é uma opção mais econômica do que executar uma instância AKS para um serviço simples.

VEJA TAMBEM:  Três motivos para não trazer de volta aplicativos e conjuntos de dados armazenados na nuvem.

Utilização de unidades de processamento gráfico para aplicativos em contêineres.

A Microsoft revelou diversas novidades para o Azure Container Apps durante sua conferência Ignite 2023, com ênfase na utilização da plataforma para lidar com aplicativos de machine learning. Além disso, a empresa apresentou novas ferramentas para promover boas práticas no design de microsserviços e aumentar a eficiência dos desenvolvedores.

Usar o Azure Container Aplicativos para hospedar os componentes de serviço de uma aplicação distribuída em larga escala é uma escolha inteligente. Ele possibilita que os serviços de alta intensidade computacional escalarem para zero quando não estão em uso, ao mesmo tempo em que podem expandir para atender demandas de pico, evitando a necessidade de se comprometer com contratos caros de infraestrutura. Isso se torna crucial, especialmente ao considerar a utilização de inquilinos com GPU para inferência.

Durante o Ignite, foi anunciado o suporte para instâncias de GPU no Azure Container Apps, juntamente com um novo perfil específico para esse tipo de carga de trabalho. Os perfis de GPU necessitarão de mais memória do que os perfis convencionais do Azure Container Apps, pois são capazes de realizar tanto o treinamento quanto a inferência. Ao utilizar o Azure Container Apps para treinamento, é possível executar um processo regular de lote que aprimora modelos com base em dados do mundo real, ajustando-os para atender a diferentes condições de iluminação, novos produtos ou vocabulário adicional em um chatbot.

Contêiner Azure com suporte para GPU Os servidores de aplicativos são de alta qualidade, com capacidade de até quatro GPUs Nvidia A100, oferecendo opções de 24, 48 e 96 vCPUs, além de até 880GB de memória. É comum utilizar as opções de alta qualidade para treinamento e as opções de baixa qualidade para inferência. Geralmente, é possível limitar o uso de cada aplicativo em um perfil de carga de trabalho, com algumas reservas de tempo de execução para hospedar seus contêineres.

Atualmente, os VMs host estão disponíveis em apenas duas regiões, EUA Ocidental e Europa do Norte. Com a Microsoft modernizando seus data centers e implementando novo hardware, é provável que haja suporte em mais regiões no futuro. Será interessante observar se esse novo hardware incluirá os processadores de IA exclusivos da Microsoft, que também foram anunciados no evento Ignite.

VEJA TAMBEM:  Você deveria migrar do Twitter para o fediverso?

Incorporando funcionalidades de dados aos seus contentores.

Construir aplicativos com inteligência artificial requer mais do que apenas uma GPU ou uma NPU; é necessário ter acesso a dados em formatos não convencionais. O Azure Container Apps oferece a capacidade de integrar serviços extras junto com o código, incluindo bancos de dados vetoriais comuns como Milvus, Qdrant e Weaviate. Estes serviços são ideais para uso durante o desenvolvimento, sem gerar custos adicionais relacionados ao uso de um serviço gerenciado do Azure ou suas próprias instâncias de produção. Ao utilizar o Azure Container Apps em conjunto com esses serviços extras, você só será cobrado pelo uso dos mesmos, o que significa que se o aplicativo e os serviços associados não estiverem em uso, você será cobrado apenas pelo armazenamento.

Incorporar um serviço ao seu recipiente de desenvolvimento possibilita sua execução no ambiente do Azure Container Apps, juntamente com seu código, podendo ser dimensionado para zero quando não é necessário. O uso de variáveis de ambiente facilita o gerenciamento da conexão. Além disso, outras opções de serviço disponíveis incluem Kafka, MariaDB, Postgres e Redis, que podem ser trocadas por opções gerenciadas pelo Azure ao utilizar os recipientes na produção. Os dados são armazenados em volumes persistentes, permitindo que sejam compartilhados com novos recipientes à medida que são escalados.

Assim como a maioria dos recursos do Azure Container Apps, os serviços extras podem ser controlados usando o Azure CLI. Basta selecionar um serviço da lista disponível, dar um nome a ele e integrá-lo ao seu ambiente. Em seguida, é possível conectá-lo a um aplicativo para começar a usá-lo. Esse processo adiciona um conjunto de variáveis de ambiente que os contêineres podem usar para gerenciar a conexão com o serviço de desenvolvimento. Essa abordagem permite ajustar os detalhes de conexão de um serviço gerenciado do Azure ao passar para a produção.

Dominar as técnicas mais eficazes para desenvolvimento de aplicativos distribuídos.

Oferecer uma plataforma fácil de usar para rodar aplicações em contêineres apresenta desafios próprios, incluindo a necessidade de instruir os possíveis usuários sobre os princípios do desenvolvimento de aplicações distribuídas. Contar com padrões e práticas de arquitetura eficazes auxilia os desenvolvedores a serem mais eficientes. A Microsoft tem priorizado a produtividade dos desenvolvedores, como demonstrado pelos recentes lançamentos de ferramentas como Radius e .NET 8.

VEJA TAMBEM:  A frase de guerra de 2025: Criar uma nuvem privada!

Uma alternativa para desenvolvedores que trabalham com o Azure Container Apps é utilizar o Dapr, que é o Microsoft Distributed Applications Runtime, como uma forma de incorporar os procedimentos mais eficazes. Por exemplo, o Dapr possibilita a inclusão de tolerância a falhas nos aplicativos de container, ao agregar políticas em um componente responsável por lidar com solicitações malsucedidas, controlando os tempos limite e as tentativas de repetição.

Essas funcionalidades do Dapr auxiliam no controle do dimensionamento. Durante o lançamento de contêineres de aplicação adicionais, o Dapr ajustará as solicitações do usuário até que as novas instâncias estejam prontas para assumir a carga. Não é necessário programar para realizar essa ação. Em vez disso, é possível configurar o Dapr usando Bicep, com declarações declarativas para timeouts, tentativas e intervalos de espera.

Prepare seus programas de container para chegarem ao destino com segurança.

A Microsoft reuniu sua orientação, arquiteturas de referência e exemplos de código para construir o Azure Container Apps em um repositório no GitHub, chamado de acelerador da zona de desembarque do Azure Container Apps. Esse recurso é valioso, pois oferece diretrizes sobre controle de acesso, gerenciamento de redes do Azure, monitoramento de serviços em execução e disponibiliza estruturas para segurança, conformidade e governança arquitetônica.

As implementações de referência são especificamente criadas para o Azure, fornecendo não apenas definições de código para aplicativos e contêineres, mas também infraestrutura pré-configurada que pode ser implantada facilmente ou adaptada para criar suas próprias infraestruturas de aplicativos distribuídos.

É fascinante observar a convergência das estratégias de desenvolvimento atuais da Microsoft nesta mais recente edição do Azure Container Apps. Ao separar o desenvolvimento da plataforma subjacente, a Microsoft está oferecendo uma forma de transformar ideias em microservices operacionais (inclusive microservices inteligentes impulsionados por IA) de maneira ágil, aproveitando todos os benefícios da orquestração na nuvem sem comprometer a segurança.

Além disso, ao utilizar o Azure Container Apps, não é necessário se preocupar com a complexidade de implementar uma infraestrutura completa do Kubernetes para um número limitado de serviços.

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui