![Por que o Flux não está morrendo depois do Weaveworks](https://optimuscloud.com.br/wp-content/uploads/2024/04/1712612647_Por-que-o-Flux-nao-esta-morrendo-depois-do-Weaveworks-150x150.jpeg)
Por que o Flux não está morrendo depois do Weaveworks
8 de abril de 2024![Engenharia de plataforma e GenAI: ‘Coloque sua casa em ordem’](https://optimuscloud.com.br/wp-content/uploads/2024/04/1712668924_Engenharia-de-plataforma-e-GenAI-‘Coloque-sua-casa-em-ordem-150x150.jpg)
Engenharia de plataforma e GenAI: ‘Coloque sua casa em ordem’
9 de abril de 2024De toda a agitação em torno da IA, a parte mais equivocada é a insistência em grandes modelos de linguagem (LLMs) ajustados. Muitos acreditam que especializar um modelo baseado em uma enorme coleção de dados específicos de domínio é a única maneira de construir assistentes de IA úteis.
Essa demanda por ajustes finos é ainda mais comum em áreas altamente especializadas ou técnicas, como desenvolvimento de software e serviços em nuvem. Um excelente exemplo é a manutenção contínua e a solução de problemas de clusters Kubernetes projetados para entregar aplicativos. Essa situação ressalta o desafio crítico enfrentado pelos líderes de DevOps e de desenvolvimento de aplicativos: é preciso haver uma solução melhor para gerenciar a complexidade da infraestrutura nativa da nuvem. Esses ambientes geralmente apresentam desafios intratáveis que desafiam a experiência, a sabedoria ou a intuição em relação à solução de problemas.
Em resposta, startups e projetos de código aberto afirmam ter ajustado os modelos existentes para incluir conhecimento especializado sobre Kubernetes que modelos genéricos, mesmo GPT-4 Turbo, normalmente não consumiriam ou teriam acesso.
No entanto, o desafio não é um problema com o ajuste fino em si, mas a sua incapacidade de imitar a abordagem humana para a resolução de problemas. Não importa quão inteligente seja o modelo, você não obterá nenhum valor real a menos que ele possa replicar a forma como você executa a solução de problemas: reunindo recursos díspares, processando todos os detalhes críticos que você encontrou nos logs e kubectl
resultado em sua cabeça, apoiando-se em sua experiência e destilando tudo em uma próxima etapa lógica.
Existem apenas duas áreas principais que tornam um assistente de IA útil no mundo Kubernetes. Os assistentes devem ser:
- Incorporado em clusters Kubernetes com acesso a artefatos que descrevem seu estado, como a saída de
kubectl get/logs/describe
. - Capaz de entender suas perguntas em linguagem natural e traduzir dados operacionais complexos em próximas etapas simples e acionáveis.
O ajuste fino apenas prioriza o hype sobre o que é mais importante para você: agir de acordo com o que realmente está acontecendo com seus pods, nós e aplicativos.
Obtendo assistência de IA do Kubernetes até a metade
Os espaços nativos da IA e da nuvem estão crescendo simultaneamente, portanto, novas ferramentas estão se sobrepondo nesses dois domínios.
Novas ferramentas de interface de linha de comando (CLI) de código aberto, como K8sgpt e KoPylot, envolvem suas operações kubectl
para obter acesso ao estado do seu cluster. Ao executar esse comando em seu nome usando o contexto disponível em seu .kube/config
arquivo, essas ferramentas podem ler e processar a saída diretamente, em vez de forçá-lo a mudar de contexto. Eles então fazem proxy dos dados para a API da OpenAI para entregar respostas geradas por IA em seu terminal.
É uma solução alternativa inteligente, mas essas ferramentas CLI ainda exigem um alto nível de conhecimento do Kubernetes ou outra ferramenta CLI. Você precisa saber os comandos corretos, e não apenas uma pergunta sobre o status do seu cluster, para iniciar a interação.
Outra ferramenta de código aberto, o mico, avança esse conceito ao converter suas consultas em linguagem natural em kubectl
comandos. Você pode pedir ao mico para, por exemplo, imprimir o número de vezes que cada pod em xyz
namespace foi reiniciado e usará o jsonpath
argumento em kubectl
para filtrar a saída apenas para a linha relevante.
Adoramos ver como a comunidade de código aberto está aproveitando a IA, mas essas ferramentas são limitadas: elas entendem o estado do cluster, mas não conseguem lidar com consultas em linguagem natural, ou ajudam você a escrever consultas, mas apenas retornam kubectl
saída sem as próximas etapas de solução de problemas. Você poderia substituir os modelos OpenAI padrão que alimentam essas ferramentas por uma alternativa especializada, mas isso não ajudará a reduzir o tempo de solução de problemas nem ajudará seus colegas menos experientes a monitorar seus aplicativos.
O que torna a assistência de IA valiosa para solução de problemas do Kubernetes?
A resposta é um assistente de IA que se destaca na compreensão do estado do cluster e na interpretação da linguagem natural – dane-se o ajuste fino.
Acesso ao estado do seu cluster
Sem acesso ao estado do cluster, a única maneira de obter ajuda do seu assistente de IA é jogar uma partida de telefone no caminho para resolver problemas. Mesmo com uma IA bem ajustada, você pode esperar que a conversa seja mais ou menos assim:
- Você sabe o suficiente sobre Kubernetes para executar
kubectl get pods
quando sua implantação não ocorre imediatamente. - Você pergunta ao seu assistente de IA por que um pod travou devido a um
CrashLoopBackOff
erro. - A IA responde dizendo que as causas possíveis mais comuns de um
CrashLoopBackOff
O erro inclui memória insuficiente, dependências ausentes e falha do contêiner devido a conflito de porta. Talvez seja inteligente o suficiente pedir para você correrkubectl describe pod POD_NAME
para obter pistas sobre o uso e os limites de seus recursos… talvez. - Você informa ao seu assistente de IA sobre esse resultado, incluindo o
Terminated
estado e último evento emitido:Back-off restarting failed container
. - A IA sugere que você corra
kubectl get events --field-selector involvedObject.name=POD_NAME
para procurar outras possíveis causas. - Você encontra eventos relacionados a falhas nas sondagens de prontidão e vivacidade, junto com o processo de espera, mas nada de novo, e informa seu assistente de IA.
- O assistente de IA sugere que você corra
kubectl logs POD_NAME --all-containers
para procurar erros específicos em seu aplicativo conteinerizado ou em suas dependências de seu manifesto, como um banco de dados ou uma fila de mensagens. - Em meio aos longos registros, você encontra um aviso de
docker-entrypoint.sh
dizendo que não foi possível executar por causa de umnot found
argumento. - Você pergunta ao seu assistente de IA sobre esse aviso e ele (finalmente) diz para você verificar se há erros de digitação ou configuração incorreta no manifesto do Kubernetes nos argumentos anexados a esse contêiner, que é a causa raiz do seu problema.
Você certamente recebeu assistência de sua ferramenta de IA, mas a assistência não foi particularmente eficiente. Isso pode ter evitado que você pesquisasse cada erro no Google ou executasse kubectl ... help
comandos para encontrar a sintaxe correta. Mas como você foi responsável por compartilhar informações com precisão sobre o estado do seu cluster e entender cada etapa do seu assistente de IA, você ainda carregou quase toda a carga cognitiva e não economizou muito tempo.
O acesso ao estado de um cluster é essencial. Um valioso assistente de IA deve responder automaticamente à sua pergunta original sobre CrashLoopBackOff
Correndo kubectl
comanda ele mesmo, analisando a saída em busca de pistas, trazendo o contexto do conhecimento coletivo de solução de problemas do Kubernetes disponível on-line e fornecendo um caminho preciso para a correção – sem a necessidade de runbooks ou mergulhos profundos na documentação.
Compreendendo suas perguntas de linguagem natural
Um assistente de IA do Kubernetes que pode ler resultados ou logs e fornecer um resumo executivo do que pensar a seguir é ótimo, mas pressupõe que você tenha conhecimento suficiente do Kubernetes para saber qual pergunta ou pergunta específica kubectl
comando para executar. O verdadeiro valor agregado, especialmente para desenvolvedores de aplicativos com conhecimento limitado das operações do Kubernetes, vem da capacidade de fazer perguntas em sua linguagem natural:
- Algumas pessoas podem precisar fazer perguntas para iniciantes: “O que é um pod?”
- Outros podem fazer perguntas específicas sobre o cluster com base em um entendimento básico do Kubernetes: “Há algum pod com falha no meu
xyz
espaço para nome?” - Os engenheiros de DevOps mais avançados podem dar um passo adiante: “O que devo fazer em relação a esta notificação, que diz que um dos meus nós foi repentinamente
NotReady
?”
Quando a IA pode traduzir uma pergunta no comando relevante para coletar o contexto do estado (kubectl get pods -n xyz
), pode efetivamente reduzir a carga cognitiva de sua equipe. Os engenheiros de DevOps podem reduzir o tempo médio de resolução (MTTR) usando o assistente de IA como um recurso para refletir seu conhecimento especializado, e os desenvolvedores podem solucionar problemas de seus aplicativos por autoatendimento.
Quando o assistente de IA roda nas plataformas onde sua equipe atua, como Slack ou Microsoft Teams, esse conhecimento fica mais acessível e colaborativo. Quando o próximo incidente significativo atingir seu aplicativo, os engenheiros e desenvolvedores de DevOps poderão envolver seu assistente de IA no mesmo canal para uma análise mais direcionada da causa raiz e um plano de correção que vai além de uma correção temporária.
Um novo tipo de assistente de IA do Kubernetes
Para resolver esses problemas, a Botkube lançou recentemente o AI Assistant, que foi projetado para operar tanto nas áreas de solução de problemas do Kubernetes quanto diretamente em plataformas de colaboração.
O assistente funciona ouvindo suas perguntas em linguagem natural sobre seu cluster Kubernetes e seus aplicativos, convertendo suas consultas nas perguntas apropriadas. kubectl get/logs/describe
comandos e interface com um LLM para explorar causas raízes e oportunidades. A partir disso, o assistente pode fornecer insights e recomendar as próximas etapas em sua jornada de solução de problemas.
![](https://optimuscloud.com.br/wp-content/uploads/2024/04/2-maneiras-pelas-quais-os-assistentes-de-IA-estao-mudando.gif)
Este assistente aprimora as ferramentas de notificação, investigação e solução de problemas do Botkube, operando nos limites mais valiosos de ambas as áreas. Usar o AI Assistant ajuda você a pesquisar por que um problema está acontecendo, aprender kubectl
para realizar operações básicas ou aproveitar a experiência do Kubernetes para buscar as causas raízes e encontrar uma solução viável.
Estado do cluster e linguagem natural >>> LLM ajustado
Nos bastidores, o AI Assistant do Botkube usa ChatGPT-4.
Não temos vergonha de admitir que estamos usando o mesmo modelo de todas as ferramentas de código aberto e da maioria das novas plataformas pagas. Não podemos ajustar o que o ChatGPT sabe, mas podemos adicionar nuances às consultas e ajustar a natureza de suas respostas para fornecer uma melhor experiência de solução de problemas.
Por exemplo, colocamos instruções adicionais sobre consultas e dados comuns em linguagem natural sobre o estado de um cluster para “forçar” o ChatGPT a fornecer respostas mais abrangentes. Também enriquecemos a saída padrão do ChatGPT com melhor formatação e estrutura organizacional para ajudá-lo a se concentrar na solução de problemas, não na decifração de instruções.
Agregar valor antes e depois da interface com um LLM pode fazer muito mais do que um ajuste fino. Projetamos o AI Assistant para ser sensível ao contexto e compatível com as perguntas que você realmente deseja fazer ao seu cluster – não as complexas kubectl
comandos com os quais você pode estar acostumado.
Maneiras de usar um assistente de IA
As oportunidades são geralmente limitadas apenas pela quantidade de detalhes kubectl
emite e o conhecimento do Kubernetes incorporado aos modelos mais recentes do OpenAI… o que é bastante. Você pode perguntar:
- Perguntas básicas sobre o ecossistema Kubernetes, como detalhes sobre as diferenças entre containers, pods e nós.
- Perguntas específicas relacionadas ao estado de um cluster, como confirmar se todos os pods no
xyz
namespaces estão íntegros. - Para obter ajuda específica para solução de problemas sobre uma nova notificação de erro, sem precisar consultar um runbook ou ler a documentação.
Os recursos do executor do Botkube permitem que você transforme os insights do Assistente de IA em remediação imediata, ajudando você a criar o caminho certo kubectl
através de uma interface suspensa (em vez de uma dúzia de execuções de kubectl ... help
).
Os engenheiros de DevOps podem acelerar os fluxos de trabalho gastando menos tempo no terminal e mais tempo onde a colaboração acontece. E os desenvolvedores de aplicativos podem corrigir problemas do Kubernetes por conta própria, em vez de preencher um tíquete e esperar a ajuda de alguém.
Não importa seu cargo ou função, você pode começar a usar o assistente de IA integrado do Botkube hoje mesmo com uma conta Botkube nova ou existente. Cadastre-se agora gratuitamente para ativar nosso assistente Kubernetes AI com um único clique, sem necessidade de configuração.
Faça algumas perguntas e você verá rapidamente por que o reconhecimento de cluster e a linguagem natural (e não LLMs ajustados) são o melhor caminho a seguir para gerenciar a complexidade de sua infraestrutura nativa da nuvem.
A postagem 2 maneiras pelas quais os assistentes de IA estão mudando a solução de problemas do Kubernetes apareceu pela primeira vez em The New Stack.