Kubernetes para cientistas de dados

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
Introdução
Com a gama de casos de uso para aprendizado de máquina se expandindo muito nos últimos anos, a necessidade de escalar as operações em torno do treinamento, implantação e monitoramento desses modelos também se tornou bastante importante. Muitas dessas preocupações são semelhantes às que foram "resolvidas" para casos de uso de software em geral. O Kubernetes é um desses softwares de código aberto que consolidou o ecossistema nativo da nuvem ao seu redor, servindo como plataforma subjacente.
Portanto, torna-se imperativo explorar se é útil que o Kubernetes seja aproveitado para um caso de uso de aprendizado de máquina. Vamos começar primeiro com o próprio Kubernetes e o que há de tão interessante nele.
O que é Kubernetes?

Crédito: Kubernetes
💡 Kubernetes é um motor de orquestração de contêineres de código aberto para automatizar a implantação, escalonamento e gerenciamento de aplicações conteinerizadas.
Em termos mais simples, o Kubernetes oferece uma maneira simples e padronizada de executar e operar cargas de trabalho que precisam ser escaladas dinamicamente em várias máquinas.
Vamos analisar algumas das funcionalidades mais populares -
- Implantações automatizadas - O Kubernetes oferece uma maneira simples de implantar uma imagem Docker usando apenas algumas linhas de YAML. Isso nos proporciona uma forma declarativa de gerenciar o que implantamos e como o servimos. Também facilita muito a criação de um pipeline de CI robusto sobre essa abstração.
- Descoberta de serviço - Os serviços podem se chamar nativamente usando nomes de domínio estáticos. Isso permite não se preocupar com a localização do outro serviço e possibilita o autoescalonamento.
- Balanceamento de Carga - O balanceamento de carga de requisições destinadas a um serviço específico para todas as suas instâncias distribuídas em múltiplos nós também é gerenciado. Você também pode anexar um balanceador de carga externo do provedor de nuvem para serviços voltados para a internet. Isso permite autoescalonamento dinâmico, failover gracioso e implantações sem tempo de inatividade.
- Auto-recuperação - O mecanismo de verificação de saúde integrado monitora um serviço em execução e tenta se recuperar em caso de falha reiniciando a carga de trabalho. Isso, combinado com o suporte nativo a balanceamento de carga, é uma grande vantagem para o aspecto de confiabilidade de qualquer serviço.
- Autoescalonamento - Autoescalonamento do tamanho da carga de trabalho para cima ou para baixo com base no consumo real de recursos. Isso se traduz em economias de custo críticas para cargas de trabalho que enfrentam uma carga variável.
- Plataforma para Desenvolvedores - O Kubernetes foi construído com o objetivo de servir como plataforma para colaboração entre múltiplas equipes. Isso é possibilitado pelo suporte nativo para gestão de usuários e funções e multi-locação. Esses recursos tornam-se absolutamente críticos a partir de uma certa escala.
- Extensível - Com um sistema de recursos personalizados e controladores, o Kubernetes atua como uma plataforma para outras ferramentas que aprimoram massivamente o conjunto de recursos. Isso efetivamente desbloqueia uma vasta gama de casos de uso que são abordados por outras ferramentas. Exemplos: ArgoCD para GitOps, Istio para Service Mesh, Kubeflow para orquestração de pipelines de ML, etc.
- Código Aberto - O fato de o Kubernetes ser de código aberto significa que você tem uma vasta gama de opções, desde a execução em servidores bare metal até o uso de uma das opções gerenciadas de qualquer grande provedor de nuvem. Alinhar-se ao Kubernetes significa que você obtém uma interface que oferece portabilidade suficiente para que a carga de trabalho possa ser movida de acordo com as necessidades do negócio.
Estas são apenas algumas das funcionalidades disponíveis por padrão. Um grande número de casos de uso são, na verdade, resolvidos pelas ferramentas construídas usando o Kubernetes como camada subjacente. Abordaremos ferramentas específicas em uma edição posterior.
Visão geral do fluxo de trabalho do cientista de dados
Com o entendimento do que é o Kubernetes e quais são os principais recursos que ele oferece em um cenário de desenvolvimento de software, vamos aprofundar nos problemas específicos que ele pode resolver no fluxo de trabalho de um cientista de dados.

A figura acima oferece um panorama geral de como um pipeline típico de ciência de dados funciona. Muitas empresas optaram por usar uma vasta variedade de soluções personalizadas com recursos sobrepostos para conectar tudo.
Vamos analisar cada uma dessas etapas para tentar entender onde o Kubernetes se encaixa:
Feature store
Antes que qualquer dado bruto possa ser útil, ele deve primeiro ser transformado em entradas higienizadas para o pipeline de treinamento de modelos. É aqui que os feature stores entram em cena, realizando a transformação, armazenamento e disponibilização dos dados de features.
O Kubernetes suporta a implantação de cargas de trabalho com estado e integra-se muito bem com provedores de nuvem para fornecer persistência de forma contínua.
Desenvolvimento de Modelos
A maioria do desenvolvimento de modelos começa com um Engenheiro de ML escrevendo código em um notebook Jupyter e, para muitos, isso é quase tudo o que é necessário. Ele fornece uma interface REPL para executar código Python. Isso começa sendo hospedado em laptops pessoais, mas é melhor executar um pool centralizado de notebooks Jupyter hospedados que pode ser usado por vários indivíduos.
O modelo declarativo do Kubernetes, juntamente com o suporte para sistemas de armazenamento persistente, torna trivial hospedar um pool de notebooks e permitir o controle de acesso sobre notebooks individuais para garantir uma colaboração eficaz.
Treinamento de modelos
Qualquer algoritmo escrito em um notebook precisa ser alimentado com dados de treinamento para obter um artefato de modelo como saída. Isso pode ser feito no próprio notebook em casos de uso menores, mas requer um pipeline muito mais poderoso para conjuntos de dados maiores. Geralmente, a validação contra o conjunto de dados de teste também é realizada aqui antes que o artefato seja usado para realizar inferências em produção.
Existem várias soluções para orquestrar um pipeline DAG no Kubernetes. O Airflow tem suporte nativo para Kubernetes, enquanto o Kubeflow foi construído completamente sobre o Kubernetes. Todas as principais soluções de monitoramento oferecem integração de primeira classe com o Kubernetes, o que é essencial para executar pipelines de nível de produção.
Gerenciamento de modelos
Esta etapa cuida do armazenamento e versionamento do conjunto de dados e do modelo. Isso garante que qualquer artefato de modelo permaneça reproduzível pelo tempo que for necessário. Um paralelo pode ser traçado com a forma como o gerenciamento de código é realizado usando o Git.
Embora o armazenamento de dados subjacente para esses sistemas de gerenciamento possa ser hospedado no próprio Kubernetes, em muitos casos é melhor usar uma solução gerenciada de um provedor de nuvem. Nesses casos, a maioria dos provedores de nuvem integra perfeitamente seus próprios sistemas IAM com os do Kubernetes, tornando seguro o acesso a dados de fora do cluster sem a necessidade de armazenar as credenciais de acesso.
Serviço de Modelos
Finalmente, o artefato do modelo é preparado para que um sistema de produção possa fazer inferências sobre ele. Isso geralmente envolve encapsular um modelo em uma estrutura de API e permitir que outros serviços chamem o modelo para fazer inferências. Preocupações semelhantes às da engenharia de software, como authn/authz, escalabilidade, confiabilidade, etc., entram em cena aqui.
É aqui que o Kubernetes se destaca. A maioria dos recursos que abordamos na seção anterior tornam-se críticos nesta etapa.
Monitoramento de modelos
Como qualquer sistema de produção, o monitoramento contínuo do modelo atualmente implantado é essencial para garantir que seu sistema esteja se comportando como esperado. As métricas a serem observadas podem incluir desde a precisão real das previsões até a latência e o throughput que o sistema é capaz de suportar.
Muitas soluções de monitoramento se integram de perto com o Kubernetes. Descobrir um alvo para realmente coletar métricas, realizar cálculos sobre elas e armazená-las para uso posterior pode ser feito sem qualquer dependência externa.
Conclusão
Todo o cenário em torno do Kubernetes tem explodido e muitas ferramentas já estão disponíveis. Existem, no entanto, algumas armadilhas que qualquer organização deve ter em mente antes de adotá-lo por completo. Abordaremos essas questões e como elas podem ser mitigadas na próxima edição.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI

















.webp)






.webp)

.webp)
.webp)





.png)



