InícioNuvemDesenvolvendo um ambiente mais avançado no Azure Kubernetes para programadores.

Desenvolvendo um ambiente mais avançado no Azure Kubernetes para programadores.

Date:

A Microsoft está a progredir no desenvolvimento do seu serviço Azure Kubernetes, conforme partilhado por Brendan Burns, co-criador do Kubernetes, que discute as próximas etapas deste projeto.

shutterstock 324149159 cloud computing building blocks abstract sky with polygons and cumulus clouds
Imagem: wal_172619/Flickr

Durante a KubeCon Europe desta semana, a Microsoft fez vários anúncios relacionados ao Azure Kubernetes. Além de introduzir um novo framework para executar tarefas de aprendizado de máquina, novas funcionalidades de agendamento de trabalho, medidas adicionais de segurança e escalabilidade, a empresa enfatizou a importância da produtividade do desenvolvedor, buscando aprimorar a experiência de programação e reduzir possíveis erros.

Antes do evento, tive uma conversa com Brendan Burns, um dos desenvolvedores do Kubernetes e atual CVP, Azure Open Source e Cloud-Native na Microsoft. Discutimos os anúncios da Microsoft na KubeCon Europe, os objetivos da empresa em relação ao Kubernetes e a relevância desse sistema de gerenciamento de contêineres para a Microsoft, tanto como provedora quanto como usuária. Burns também compartilhou informações sobre o avanço da Microsoft na disponibilização de uma versão de suporte a longo prazo do Kubernetes.

Estamos vivendo um momento crucial para o Kubernetes, que está deixando de ser uma tecnologia de vanguarda em constante evolução para se tornar uma plataforma consolidada. Essa transição é fundamental para qualquer tecnologia, mas é especialmente desafiadora para um projeto de código aberto utilizado por diversos provedores de nuvem e desenvolvedores de aplicativos.

Kaito: Colocando em prática modelos de inferência de Inteligência Artificial no Kubernetes.

Grande parte do esforço atual da Microsoft em relação ao seu serviço de Kubernetes do Azure (AKS) e ao serviço de contêineres do Azure (ACS) concentra-se em oferecer uma plataforma madura e confiável, com suporte de longo prazo próprio que ultrapassa o ciclo de vida atual do Kubernetes. Além disso, a empresa está desenvolvendo ferramentas para auxiliar nos trabalhos que os desenvolvedores realizam tanto dentro da Microsoft quanto nos serviços de nuvem públicos.

Assim, não foi inesperado que nossa discussão logo se concentrasse na inteligência artificial e nas ferramentas essenciais para sustentar as demandas em larga escala no AKS.

Uma das recentes ferramentas mencionadas por Burns foi o Kubernetes AI Toolchain Operator para AKS, que permite a execução de cargas de trabalho em clusters Kubernetes de grande escala. Essa ferramenta, conhecida como projeto Kaito de código aberto nos repositórios do Azure GitHub, é utilizada pela Microsoft para gerenciar projetos e serviços LLM em instâncias do Azure Kubernetes. O Kubernetes AI Toolchain Operator é compatível com modelos de inferência de código aberto de grande porte.

VEJA TAMBEM:  Google apresenta novo Programa para Desenvolvedores do Google.

Você começa definindo um ambiente de trabalho que atenda aos requisitos de GPU do seu modelo. Kaito irá então instalar imagens do modelo apropriadas em nossas GPUs provisionadas. Ao utilizar configurações predefinidas, Kaito irá instalar essas imagens do modelo sem a necessidade de ajustes adicionais. Sua única tarefa será configurar um nodepool inicial utilizando um SKU de host Azure com suporte para GPU. Durante a configuração dos nós com Kaito, o AKS automaticamente configura os drivers necessários e quaisquer outros requisitos prévios.

Contar com a presença de Kaito na AKS representa um avanço significativo para a integração de aplicativos que se baseiam em modelos de IA pré-treinados de código aberto. Além disso, a possibilidade de construir sobre um projeto de código aberto já existente hospedado no GitHub permite que a comunidade em geral contribua para determinar seu rumo futuro.

Gerenciamento de Kubernetes em grande escala: Frota.

Gerir a carga de trabalho é um desafio significativo para diversas organizações que migraram para arquiteturas de aplicativos nativos na nuvem. Com a crescente utilização do Kubernetes para mover mais aplicações e serviços, surge a questão do tamanho e quantidade de clusters. Anteriormente, a gestão envolvia um ou dois clusters AKS, mas agora enfrentamos a necessidade de lidar com centenas ou até milhares deles, distribuídos globalmente.

Enquanto é possível criar suas próprias ferramentas para lidar com essa coordenação, há desafios complexos relacionados à distribuição de tarefas que precisam ser levados em conta. O AKS está desenvolvendo ferramentas de gerenciamento de frota que atuam como um controlador de nível superior acima dos serviços base do Kubernetes. Isso possibilita o gerenciamento de tarefas usando diferentes abordagens, como a consideração de métricas como custos de computação ou disponibilidade de recursos em uma região específica do Azure.

VEJA TAMBEM:  Quando os custos do seu projeto na nuvem excedem o planejado.

O Azure Fleet Manager é uma ferramenta projetada para otimizar a utilização de recursos Kubernetes, permitindo a junção e saída de clusters de forma flexível, com um plano central de controle para facilitar a gestão da carga de trabalho. Pode-se entender o Fleet como um meio de programar e coordenar conjuntos de aplicações, enquanto o Kubernetes lida com as aplicações que formam uma carga de trabalho. A Microsoft reconhece a importância de uma ferramenta como essa, visto que opera várias de suas próprias aplicações e serviços em Kubernetes.

Ao executar o Microsoft 365 em recipientes dentro de AKS, a Microsoft tem um grande interesse financeiro em obter o máximo valor de seus recursos, visando aumentar o lucro ao garantir a utilização eficiente dos mesmos. A plataforma Kaito, conhecida como Fleet, foi desenvolvida em um projeto de código aberto e está disponível em um dos repositórios do GitHub no Azure. Essa abordagem também possibilita que a Microsoft amplie os tamanhos disponíveis para clusters AKS, agora suportando até 5.000 nós e 100.000 instâncias.

Burns mencionou que esse é o conceito por trás de boa parte das iniciativas da Microsoft em relação ao Kubernetes no Azure: inicialmente adotar um projeto de código aberto e posteriormente integrá-lo como um componente suportado do serviço Azure Kubernetes. Além disso, também estão empenhados em simplificar e tornar a tecnologia acessível a todos.

Essa ideia de simplificar as coisas é fundamental para muitas das novidades anunciadas pela Microsoft na KubeCon Europa, aprimorando os serviços e funcionalidades já existentes. Burns mencionou, como exemplo, o suporte ao AKS no Azure Copilot, que permite realizar perguntas em vez de utilizar ferramentas complicadas.

Segundo Burns, ao utilizar um modelo de linguagem natural, é possível identificar facilmente o que está ocorrendo no cluster, sem a necessidade de vasculhar várias telas e arquivos YAML distintos em busca da origem de um problema. O modelo pode apontar e diagnosticar questões presentes no cluster.

Minimização do risco de implementação por meio de políticas.

Outra ferramenta recente da AKS foi desenvolvida com o objetivo de diminuir os perigos ligados às instalações de Kubernetes. As proteções de implementação da AKS são fundamentadas na experiência da Microsoft com a operação de aplicações Kubernetes tanto próprias quanto dos seus clientes. Essas experiências são resumidas em um conjunto de diretrizes que são empregadas para auxiliá-lo na prevenção de equívocos de configuração frequentes.

VEJA TAMBEM:  As vantagens e desvantagens das operações de nuvem sem intervenção.

A implementação do AKS protege os arquivos de configuração durante a varredura antes da implantação dos aplicativos, oferecendo a escolha entre receber “avisos” ou optar pela “execução”. Os avisos fornecem informações sobre possíveis problemas, sem interromper a implantação, enquanto a opção de execução bloqueia erros de implantação, diminuindo os riscos de códigos descontrolados e contas executando funções significativas.

Segundo Burns, o serviço Kubernetes está presente no Azure há sete anos, e ao longo desse tempo foram identificados diversos erros que podem comprometer a confiabilidade e segurança das aplicações. A experiência adquirida pelas equipes de engenharia do Azure, incluindo engenheiros de campo e do grupo de produtos do Azure Kubernetes, foi fundamental para o desenvolvimento de medidas de proteção. Além disso, contribuições da equipe de segurança do Azure também foram consideradas.

O cerne das medidas de implementação envolve um mecanismo de política incorporado em conjuntos administrados. Esse mecanismo é empregado para validar configurações, rejeitando de forma proativa aquelas que não estão em conformidade com as práticas recomendadas. Embora as políticas atuais sejam de natureza genérica, futuros avanços poderão possibilitar a personalização das políticas para tipos específicos de aplicativos, com base na descrição fornecida por um usuário do código.

Burns expressa grande confiança no futuro do Kubernetes no Azure e destaca seu papel em apoiar as aplicações de IA atuais e futuras. Ele enfatiza o compromisso em liderar a comunidade Kubernetes na integração da IA e ressalta a importância de explorar como a IA pode ser implementada efetivamente no Kubernetes. Burns considera que a posição do Azure como provedor e usuário intenso de Kubernetes o coloca em uma posição única para contribuir para essa evolução.

DEIXE UMA RESPOSTA

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