Construindo com Cisco: ChatOps de rede no n8n
Autoria: n8n · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: #002 Building With Cisco: Network ChatOps in n8n · Canal: n8n · 45:37 · Assistir no YouTube
Tópicos: Agentes de IA, Automação de tarefas e workflows, Cibersegurança e segurança de software
Poncho Sandoval, da Cisco DevNet, apresenta dois workflows do n8n para operações de infraestrutura com IA: um fluxo de ChatOps via Slack e outro para auditorias automatizadas de conformidade. O primeiro combina agentes, um servidor MCP, guardrails determinísticos e aprovação humana antes de aplicar mudanças na rede. O segundo consulta a infraestrutura, gera relatórios armazenados no GitHub e abre issues quando encontra problemas. A conversa enfatiza que a IA deve apoiar especialistas, não substituir seu julgamento, especialmente em ambientes onde erros podem causar interrupções.
Pontos-chave
Seção intitulada “Pontos-chave”- Em operações de infraestrutura, a natureza probabilística da IA deve ser equilibrada com workflows determinísticos e limites explícitos.
- O fluxo de ChatOps no Slack usa agentes para classificar solicitações como somente leitura ou alterações que exigem commit.
- As ferramentas MCP disponibilizadas ao agente podem ser restritas a operações somente de leitura, oferecendo um guardrail determinístico.
- Alterações passam por verificações de conflitos e pré-validações; um cartão no Slack solicita aprovação humana antes da aplicação.
- Após uma mudança, uma validação independente verifica a integridade e registra o resultado e a identidade de quem aprovou.
- Um segundo workflow transforma definições de auditoria em regras, consulta dispositivos e gera relatórios em Markdown no GitHub.
- Quando uma auditoria encontra não conformidades, o fluxo pode abrir uma issue com resultados, riscos e tarefas sugeridas de remediação.
- Relatórios gerados por IA servem como ponto de partida para engenheiros e especialistas, sem substituir sua avaliação.
- O exemplo pode ser adaptado a outros ambientes e serviços, como Kubernetes, instâncias de nuvem, WebEx e ferramentas de chamados.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | Apresentação e contexto de infraestrutura | Leo recebe Poncho Sandoval e introduz o trabalho da Cisco DevNet e os desafios de aplicar IA em infraestrutura. |
| 06:17 | ChatOps de rede com Slack e agentes | Poncho apresenta um workflow de ChatOps que recebe solicitações pelo Slack e explica sua arquitetura com quatro agentes. |
| 10:28 | Consultas somente de leitura e guardrails | Uma solicitação de inventário passa pelo agente de planejamento e usa ferramentas MCP limitadas a operações somente de leitura. |
| 13:33 | Mudanças de configuração e aprovação humana | O fluxo identifica conflitos e envia cartões ao Slack para que uma pessoa revise e aprove uma proposta de mudança. |
| 18:49 | Execução, validação e registro de commits | Após a aprovação, o workflow revalida a proposta, aplica a mudança e registra o resultado e a identidade do usuário. |
| 22:30 | Perguntas sobre logs, confirmações e o AI assistant | Os apresentadores explicam o ledger de commits, as opções de observabilidade e o assistente de IA do n8n. |
| 26:07 | Perguntas sobre webhooks, WebEx e permissões | A conversa aborda falhas e retries de webhooks, a adaptação para WebEx e formas de controlar ações por usuário. |
| 30:16 | Auditorias automatizadas com GitHub | Poncho apresenta um segundo workflow que usa definições no GitHub para gerar auditorias e relatórios de infraestrutura. |
| 33:25 | Regras de conformidade e geração de relatórios | O fluxo interpreta solicitações de auditoria, consulta dispositivos por meio de ferramentas MCP e cria relatórios e issues. |
| 35:34 | Resultados de auditoria e limites da IA | Exemplos mostram auditorias bem-sucedidas e não conformidades, com recomendações que devem ser avaliadas por especialistas. |
| 38:13 | Estratégia, templates e recursos | A conversa trata da segurança de projetos em produção e indica templates, documentação, repositório e recursos da Cisco DevNet. |
| 43:23 | Próximos passos e encerramento | Leo recomenda o AI assistant para implementar templates, e Poncho compartilha recursos da Cisco antes do encerramento. |
Citações
Seção intitulada “Citações”Precisamos aproveitar a natureza probabilística da IA, mas também a natureza determinística desse layout. — 05:14
Precisamos limitar o que podemos fazer e definir quando precisamos de olhos humanos para aprovar ou rejeitar a mudança. — 08:54
É sempre ótimo ter guardrails probabilísticos e determinísticos. — 13:03
Não queremos substituir o julgamento de um especialista em segurança. — 37:41
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- ChatOps (conceito): Abordagem que permite consultar e operar infraestrutura por meio de uma interface de chat, como o Slack.
- guardrails (conceito): Limites de segurança que restringem as ações disponíveis aos agentes e ajudam a prevenir mudanças indesejadas.
- human-in-the-loop (conceito): Prática de exigir que uma pessoa revise e aprove mudanças relevantes antes de executá-las.
- MCP (conceito): Protocolo usado nos exemplos para conectar agentes a ferramentas que consultam ou alteram infraestrutura.
- n8n (ferramenta): Plataforma usada para construir os workflows de automação e integrar agentes, Slack, GitHub e servidores MCP.
- Cisco DevNet (empresa): Comunidade e plataforma da Cisco voltada a desenvolvedores, automação e programabilidade de infraestrutura.
- Poncho Sandoval (pessoa): Developer advocate da Cisco DevNet que apresenta os dois workflows de automação para infraestrutura.
- Slack (ferramenta): Interface de chat usada para enviar solicitações ao bot e aprovar mudanças propostas.
- GitHub (ferramenta): Repositório central usado como fonte de verdade para definições de auditoria, relatórios e issues.
- PostgreSQL (ferramenta): Banco usado como ledger para registrar tentativas de commit, identidade do usuário e status das mudanças.
- AI assistant (ferramenta): Assistente do n8n que pode ajudar a criar workflows e testes diretamente na interface da plataforma.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 Olá, pessoal, sou Leo, da NAN. Sejam bem-vindos à transmissão ao vivo de hoje. Estou com Poncho Sonoval, da Cisco DevNet. Poncho, que bom ter você aqui. >> Estou muito feliz por estar aqui. Obrigado pelo convite, Leo. >> Fique à vontade para se apresentar e contar um pouco sobre a DevNet. >> Sim, claro. Com certeza. Bem, antes de tudo, estou muito feliz por compartilhar este espaço com todos vocês, que fazem parte da comunidade NA10. Como o Theo mencionou, meu nome é Poncho Sandoval.
00:30 Sou developer advocate na Cisco DevNet. Basicamente, meu trabalho é apresentar aos nossos clientes e parceiros casos de uso inovadores e todo tipo de coisa interessante sobre programabilidade, orquestração e tudo o que há entre elas, para plataformas, infraestrutura e redes de dados. >> Legal. E uma curiosidade sobre você é que fala vários idiomas, certo? >> [risos] >> Só um pouquinho, alguns deles.
01:01 No momento, moro em Lisboa, Portugal, então tive que aprender português para poder me virar por aqui. >> Legal. >> Algo de que gosto muito. >> Tantas bandeiras. Que legal. >> Obrigado. >> Antes de entrarmos nos workflows, só para contextualizar: >> conte para nós, quem é esse público? Há mais de um tipo de pessoa que constrói essas coisas. Para quem elas são? Qual é o perfil? Que nível de programação essas pessoas precisam conhecer para
01:32 garantir que todo mundo esteja acompanhando? >> Com certeza. Isto é um agradecimento a todos vocês da comunidade NA10 que trabalham todos os dias com infraestrutura. Na verdade, saúdo vocês. Admiro vocês, porque são as pessoas que mantêm nosso mundo conectado e funcionando. Vocês estabelecem as bases das redes que fazem a internet funcionar, que impulsionam a revolução da IA e, bem, dos casos de uso que vamos conhecer. Eles têm a ver com tornar a manutenção do dia a dia mais fácil e otimizada, trazendo a IA aos poucos, de uma forma muito responsável. Como mencionei.
02:04 >> Ótimo, ótimo. E já temos alguns comentários. Sim, esta transmissão é ao vivo, não foi pré-gravada. [risos] Temos um comentário ao vivo em português. Parece legal. Vamos pensar nisso. Até agora, só falamos em português, então é engraçado conversar em inglês agora. [risos]
02:35 >> Exatamente. >> Ótimo. >> Meio engraçado. >> Um Poncho diferente. Vamos começar. E todos vocês, mandem suas perguntas no chat. Vamos tentar respondê-las sempre que possível. Vou colocar sua tela aqui. >> Obrigado. >> Pronto. >> Certo. Então, um agradecimento também a todos na plateia que trabalham com redes de dados. Isto é uma pequena, sabe, uma referência escondida, um aceno a todos vocês que falam CLI. Só para vocês saberem, aqui estão meu LinkedIn e meu GitHub. Vou compartilhar os links mais tarde. E esta é uma foto muito legal que adoro compartilhar, da peregrinação pelo Caminho de Santiago. É uma experiência incrível. Se você estiver na Europa — e mesmo que não esteja — precisa fazer. É incrível. >> Legal. >> Que demais. >> Obrigado. Então, Leo, se você permitir, vou descer um pouco aqui. Só um segundo. Sim. Certo.
03:08 Tudo certo. Não queria colocar slides nem nada. Só queria compartilhar algumas coisas para vocês terem uma ideia. Sobre mim e meu dia a dia na Cisco: basicamente, a maior parte do tempo trabalho com pessoas que atuam com redes de dados. Estou falando de data centers, de provedores de serviços, de todas essas redes enormes, enormes, enormes, que são muito difíceis de gerenciar. E a realidade é que, neste momento, estamos vivendo na era do vibe coding, dos agentes de IA e de todas essas coisas diferentes. Elas não são a próxima grande novidade; são a grande novidade, aqui e agora, certo? >> Sim. Certamente.
03:39 >> A questão é que o mundo da infraestrutura, independentemente do tipo de infraestrutura de que estamos falando — podem ser data centers, máquinas virtuais, instâncias na nuvem, até clusters de Kubernetes e coisas do tipo —, todos enfrentam a mesma dificuldade: não conseguem surfar essas grandes ondas porque precisam ser cautelosos, precisam encarar as coisas com certo ceticismo, pois, em qualquer
04:10 aplicação, se a IA fizer algum tipo de julgamento equivocado, tiver alucinações ou algo assim, podemos ter uma exceção, um erro ou alguma coisa entre os dois. Se trouxermos isso para o mundo da infraestrutura, teremos uma interrupção de serviço e apareceremos nas notícias na manhã seguinte, certo? Então, definitivamente, não queremos adotar a IA exatamente como ela é. Precisamos implementar algumas medidas antes de poder fazer experimentos com ela, antes de
04:43 podermos adotá-la aos poucos. Eu estava pensando em como levar isso aos nossos clientes e parceiros da Cisco, para as redes de dados deles e coisas do tipo. E encontramos a NA10. É uma solução bem legal para explorar tudo isso, porque temos ferramentas de IA muito robustas integradas. Assim, podemos aproveitar a natureza probabilística da IA, mas também temos a natureza determinística deste
05:14 layout com todos os nós que arrastamos, soltamos e conectamos, e obtemos os mesmos resultados todas as vezes. Em resumo, para infraestrutura, a IA probabilística somada a um layout determinístico cria um bom equilíbrio, e é isso que estamos buscando. Com isso em mente, trabalhamos em dois casos de uso diferentes que podem atender às suas necessidades, seja qual for a infraestrutura de que estivermos falando. E estou aqui para demonstrá-los
05:46 ao vivo, para que vocês possam conhecê-los. O que acha? >> Perfeito, perfeito. Esse é um tema perfeito, porque algo que temos tentado mostrar em nosso conteúdo é exatamente essa questão da caixa-preta. Muitas das coisas que as pessoas estão criando com IA agora, especialmente quem segue o caminho do vibe coding sem realmente entender alguns conceitos, acabam sendo criadas dentro de uma caixa-preta. As pessoas não sabem exatamente como podem controlar esse agent. E você me mostrou seu workflow antes. Acho que é
06:17 um exemplo perfeito de como usar IA e ainda limitar aquilo a que ela pode ter acesso, certo? >> Exatamente. Com certeza. Então, sem mais demora, se você permitir, para você e sua maravilhosa comunidade, quero começar pelo primeiro caso de uso que temos aqui. Basicamente, trata-se de uma interface de ChatOps pelo Slack para facilitar a manutenção diária da sua infraestrutura. O exemplo que vamos
06:49 ver é sobre redes de dados. Pode ser qualquer data center. Mas não pense que isso serve só para redes, ou só para a Cisco, ou algo assim. Pode ser perfeitamente aplicado à manutenção diária do seu cluster de Kubernetes ou das suas instâncias na nuvem. Se houver um servidor MCP disponível para gerenciar isso, dá para adaptar esse workflow. >> Sim. >> Sem dúvida. E talvez este seja o momento
07:19 de perguntar rapidamente à sua audiência: vocês poderiam levantar a mão ou deixar um comentário se sabem o que é MCP? Se já trabalharam com MCP, estou muito curioso. >> Espero que tenhamos alguns builders por aí. >> Tomara. >> Temos um Armano, do Peru. >> Ah, legal. Legal. Bem, vou explicar rapidamente do que se trata. Vamos ter um workflow com quatro
07:51 agents diferentes. Isso vai nos permitir fazer operações de leitura, como consultas do tipo: “Ei, o que está acontecendo com a minha infraestrutura? Você pode me mostrar alguns alertas? Pode me mostrar alguns logs? Pode me fornecer dados em geral para o que eu precisar fazer?” Mas também vamos poder alterar configurações, criar, modificar e destruir coisas à vontade. Bem, não exatamente à vontade, porque vocês vão ver qual é a diferença entre um agent qualquer para uma aplicação qualquer e algo feito sob medida para
08:22 agents diferentes. Isso nos permitirá fazer operações de leitura, como consultas do tipo: “Ei, o que está acontecendo com a minha infraestrutura? Você pode me dar alguns alertas? Pode me passar alguns logs? Pode me dar alguns dados em geral para o que eu precisar fazer?” Mas também poderemos alterar configurações, criar, modificar e destruir coisas quando quisermos. Bem, não exatamente quando quisermos, porque veja qual é a diferença entre qualquer agent para qualquer aplicação e algo feito sob medida para
08:54 infraestrutura real. A principal diferença é que precisamos incluir algumas coisas no design desde o início: guardrails e human in the loop. Precisamos realmente limitar o que podemos fazer e definir os momentos em que precisamos que uma pessoa confira, clique no botão e aplique a alteração, ou rejeite tudo de uma vez. Então, quero que você tenha em mente estas duas expressões, que são muito importantes: guardrails e
09:24 human in the loop, e elas vão fazer sentido daqui a pouco. Nesse workflow, temos um agente de planejamento baseado na mensagem que recebemos do Slack. Vamos determinar se é uma operação somente de leitura ou de commit. Se for somente de leitura, tudo certo. Obtemos as informações usando um servidor MCP e as apresentamos ao usuário. Se for algo que precisamos enviar, vamos validar se há conflitos. Se não houver conflitos, faremos a alteração, validaremos tudo novamente e então apresentaremos os resultados ao usuário.
09:55 Então, isso está dividido em diferentes camadas. Mas, antes de entrar nos detalhes, quero mostrar ao vivo como funciona. Deixe-me ir até aqui. Obrigado, Leo. Vou abrir meu Slack porque, como mencionei antes, isso é baseado no Slack. Aqui estão meus adoráveis guaxinins. E tudo começa… [risos] Adoro explicar as coisas com guaxinins. É a melhor maneira de explicar as coisas. Com certeza chamam a atenção. [risos]
10:28 >> Sim, adoro eles. [suspiros] Começamos com um app. É muito fácil criar apps no Slack, e o n8n tem um conjunto bem completo de nodes que interagem com seus bots do Slack. Então, criamos um bot aqui e o integramos ao nosso workflow do n8n. Agora vamos fazer uma pergunta. Por exemplo: “Ei, Packet, que é o nome do meu bot, por favor, me diga quais são os
11:00 dispositivos do meu inventário.” Certo, vou colocar meu… vou deixar isso de lado, se puder me dar um instante. Sim, está aqui. E então vou colocar isto aqui. Pronto. Ótimo. Vou adicionar este gatilho de menção do Slack e depois vou enviar isso e ver o que acontece. Certo, só um segundo enquanto termino de organizar as coisas. Temos aqui um adorável… só um
11:31 segundo. Temos aqui… Sim, este agente aqui. E por que não consigo navegar? Sim, ótimo. Sim, pode. Certo, o que acabou de acontecer aqui? Recebemos a menção ao bot e, usando estes blocos bem simples, obtivemos a mensagem. Obtivemos a identidade do usuário. Todas essas informações chegaram ao n8n. Em seguida, passamos tudo pelo nosso primeiro agente. Este é o agente de planejamento. Aqui temos algumas coisas legais, certo? Todos estes prompts são otimizados.
12:01 Todos estes prompts seguem o padrão open source agents.mmd. É bom ter isso. E, basicamente, estamos decidindo: “Ei, isto é somente leitura ou é um commit?” Bem, é uma operação somente de leitura. Perfeito. Vamos usar nosso servidor MCP, mas não simplesmente do jeito que está, porque, como você vê, isso é somente leitura, mas estamos basicamente confiando que nosso prompt vai se comportar adequadamente. Estamos, basicamente, dando a ele uma sugestão gentil, uma recomendação gentil
12:32 para não alterar as configurações dos dispositivos do nosso inventário. Mas quero ter certeza. Quero garantir que este prompt da persona do meu agente não saia do controle e altere coisas por conta própria. Então, o que estou fazendo é… Sim, faz bastante sentido. O que estou fazendo aqui é limitar as ferramentas que podem ser usadas por meio deste cliente MCP. Todas as ferramentas que você vê aqui são, por código e definição,
13:03 somente de leitura. Não há como alterar nada usando as ferramentas às quais este agente está limitado. Assim, temos guardrails probabilísticos, mas também guardrails determinísticos. É sempre ótimo ter os dois. Para resumir, fazemos as consultas, nos conectamos à nossa infraestrutura, obtemos os resultados e depois os apresentamos ao usuário neste formato agradável. Certo. E esta é, basicamente, a nossa
13:33 interação de ChatOps. O que acontece quando queremos alterar alguma coisa? Há algumas medidas em vigor. Isso pode demorar um pouco. Então, já deixei alguns exemplos preparados. Se me permitir mostrar, vamos dizer: “Ei, quero criar esta nova VLAN, ID 20, chamada voice, neste switch.” Normalmente usamos essa VLAN para criar tráfego dedicado nas nossas redes. Podemos ter uma para impressoras, outra para voz, outra para vídeo e assim por diante. Podemos
14:05 ter uma para impressoras, uma para voz, uma para vídeo e assim por diante, e assim por diante. Quando criamos uma VLAN que já existe, as configurações podem se sobrepor e causar interrupções no nosso serviço. Isso é algo que, idealmente, não queremos na nossa rede. [risos] Então, envio isso, passa pelo agente de planejamento e, em seguida, é uma operação de commit, certo? Então, ele vai verificar, usando o servidor MCP: “Eu já tenho isso? Já tenho algo desse tipo neste dispositivo de destino?”
14:37 Acontece que já tem, certo? Então, o que veremos aqui é a avaliação do agente sobre por que não é seguro fazer essas alterações. Ele vai mostrar o raciocínio. Aqui, na definição do agente, estão as instruções de como fazer esse raciocínio, e ele vai mostrar por que isso foi bloqueado. O que você pode fazer para prosseguir? Todas as coisas que pode verificar, certo? Eu, como especialista, como especialista em redes presente aqui, vou conferir isso e ver se
15:10 faz sentido, certo? Mas não estou começando do zero, e quero fazer uma breve pausa. John Capoenko, estou vendo sua mensagem no chat. Sim, este é o seu servidor PITSMCP. Trouxe-o para o mundo do n8n e ajudei você com todas as coisas legais que tem feito. Sou seu grande fã. Só queria dizer isso. Certo. >> Também vou deixar esse link na descrição mais tarde. Então, >> com certeza. >> A propósito, para quem estiver assistindo: alguém perguntou se isso ficaria
15:40 gravado. Vai ficar. Basta conferir nosso canal no YouTube e se inscrever. A propósito, >> com certeza, sem dúvida. [risos] Deixe-me avançar um pouco. O que acontece se a alteração for válida? Certo, este é um exemplo muito simples. Digamos que eu diga: “Ei, faça a mesma configuração, mas em um dispositivo completamente diferente.” Quero ver se há algum tipo de conflito. Certo, você se lembra que mencionei duas coisas diferentes no começo: guardrails e human in the loop. Já
16:11 vimos os guardrails, como pedir gentilmente à persona do nosso agente que não se comporte mal, mas também restringir as ferramentas MCP que podemos usar e limitá-las às ferramentas somente de leitura. Certo. Agora vem o segundo tópico que mencionei: human in the loop. No fim das contas, quero que uma pessoa de verdade clique no botão para aplicar essa alteração. E aqui o exemplo é bem direto, bem simples. Mas, se a
16:43 alteração for realmente um commit, vou encaminhá-la para outra parte do workflow, que criará pequenos cards do Slack para serem enviados ao nosso chat. E você pode ver aqui este card adorável: aprovação de commit necessária, dispositivo de destino, fornecedor, de acordo com a avaliação do nosso agente. Estes são os comentários de segurança. Estas são as evidências da pré-verificação, e este é o pequeno payload do commit que vamos enviar. Isso poderia ser algo sério para todas as pessoas da área de redes
17:14 por aqui. Poderia ser uma implantação completa de BGP. Poderia ser algo sério, certo? Mas quero manter o exemplo curto, por simplicidade. Também temos aqui um banco de dados Postgres. Isso é opcional, claro. É um registro de commits, porque queremos identificar quem fez cada alteração. Então, como você pode ver, cabe a mim, o ser humano, clicar no botão ou deixar como está. Certo, esta é a parte de human in the loop de todo este caso de uso.
17:47 Então, talvez eu possa fazer uma pausa rápida aqui enquanto rolo até a outra parte do nosso workflow e dou uma olhada nos comentários para ver se há algo que eu possa responder agora. Não acho que haja uma pergunta direta sobre o workflow. Acho que o human in the loop às vezes é pouco usado, especialmente porque, para ser sincero, a maioria das pessoas simplesmente conecta um monte de agents e deixa tudo solto, quando, em
18:17 alguns casos, especialmente em infraestrutura, não dá para fazer isso de jeito nenhum. Certamente, é totalmente verdade, principalmente em infraestrutura. Queremos alguns pares de olhos ali, certo? Então, claro, depende do caso de uso. Mas quero mostrar os momentos em que queremos mesmo que alguém fique de olho na coisa, certo? Esta é uma ideia de implementação. Então, dito isso, e se eu clicar no cartão? E se eu clicar em “Please commit”? Bem,
18:49 aqui tenho outra parte do workflow. São webhooks, algo que o n8n faz muito bem. É algo realmente muito fácil de fazer. Então, basta colocar aqui alguns blocos para receber o webhook. Estou passando aqui um ID de proposta de commit, que comparo com meu ledger. Se ele estiver no meu banco de dados do Postgres, o que vou fazer é… Só um segundo. Sempre me confundo com a navegação aqui. Pronto. Ótimo.
19:21 Se o cartão não tiver expirado, vou fazer algumas validações aqui. Vou executar isso usando alguns agents independentes. A alteração ainda é válida? Muita coisa pode ter mudado nesse meio-tempo. Quero executá-la de novo com pré-validações. Se ainda for válida, o que vou fazer é finalmente aplicar o commit, fazer a alteração, criar, adicionar, destruir, seja lá o que for. Ele tem acesso completo. Dá para ver aqui que meu cliente MCP está usando todas as ferramentas, todas
19:54 as ferramentas ao nosso alcance, porque podemos fazer o que quisermos. Depois de fazer as alterações, executamos uma validação final de integridade independente pós-commit. E, se tudo der certo, mostramos os resultados aqui. Então, se eu clicar neste, ele é muito antigo. Por isso, vai me dizer que expirou. Mas aqui, com esse nível… Que bom que ele percebe que já faz um tempo e
20:25 não aplica o commit; senão, seriam dados antigos que não funcionariam. Certo. >> Claro, posso fazer isso. Então, aqui vou colocar meu acionador do webhook. Vou clicar em “Cancel” e aí vocês podem ver… Ah, bom, eu cancelei mesmo. [risos] Desculpem, eu devia ter clicado em “Commit”. Foi mal. Mas aqui vocês podem ver que ele foi substituído. “Commit canceled”. O webhook está funcionando; caso contrário, teria mostrado que expirou. Isso é muito antigo, certo? Então, é preciso começar de novo.
20:58 Enfim, desculpem. >> Não tem problema nenhum. [suspiro] >> Sob este adorável guaxinim brincando com bolhas, tenho uma alteração que realmente apliquei. Este é um banner. Vocês conhecem aqueles banners que aparecem quando você entra por SSH ou encaminha para algum canal, servidor ou seja lá o que for? Aparecem esses banners legais, tipo: “Aviso legal: se você se comportar mal, vamos atrás de você”, como se a polícia das máquinas virtuais fosse atrás de você. Certo, adicionei um desses banners: “Atenção: acesso somente autorizado. Com
21:29 grandes poderes vêm grandes responsabilidades”, a famosa frase do Uncle Ben. Recebi o cartão e cliquei em “Commit”. Todas as alterações foram aplicadas e, então, recebi esta última mensagem, este veredito. Está tudo verificado. A configuração está lá. As quatro linhas estão lá. Está tudo certo. Todos os testes passaram. E aqui vocês podem ver que a identidade do usuário conectado ao Slack está no ledger de commits
22:00 em que o status desta alteração foi marcado como aplicada. Então, dá para ver que temos uma experiência de ponta a ponta para diferentes finalidades, priorizando [fungada] proteções e human in the loop para nossos agents de infraestrutura. Certo? >> Legal. >> Perfeito. [risos] Obrigado, Leo. E não sei, comunidade do n8n, se vocês têm alguma pergunta ou dúvida, este é o momento de mandar uma mensagem rapidinha
22:30 aqui no chat. >> Sim. >> Tem uma pergunta ali. >> Sim. Certo. Vocês estão salvando os logs e as alterações em algum lugar fora do chat do Slack? [fungada] Bom, não exatamente. A única coisa que estou salvando são todas as nossas tentativas de commit neste ledger. Esse PostgreSQL é, na verdade, um container. Vou mostrar tudo isso mais tarde. Tudo isso, incluindo o n8n, é baseado em Docker Compose: meu servidor de entidade, meu banco de dados PostgreSQL,
23:03 o próprio n8n. Tenho tudo isso em um Docker Compose bem organizado. Então, sim, todas essas tentativas, com o usuário do Slack, estão sendo salvas nesse container do Postgres. Mas há formas de extrair logs e eventos do n8n — talvez esse seja um assunto para outra chamada da comunidade. O n8n tem alguns blocos bem interessantes, como os de OpenTelemetry, que podemos aproveitar e usar para enviar esses rastros à sua stack de
23:34 observabilidade favorita. Não é mesmo, Leo? >> Com certeza. E também há um recurso de agents sobre o qual acho que precisamos fazer outra transmissão ao vivo, só para falar disso, porque tudo isso pode ser adicionado ao recurso de agents. Acho que vou chamar Liam para conversar conosco sobre o assunto. Outra pergunta no chat: você pode confirmar as últimas alterações aplicadas? >> Sim, na verdade, essa é a função deste
24:04 último agent. Então, se olharmos para isso, quando aplicamos commits, sim, tudo começa aqui. Ele passa por — deixa eu ampliar — pré-commit, commit e pós-commit. Então, tudo acontece nessa sequência. Quando recebemos esta mensagem, ela é a confirmação propriamente dita das alterações enviadas. Certo. Não sei se era essa a pergunta. >> Com certeza. Sim. Acho que a próxima pergunta
24:34 é mais sobre o n8n e… >> Parece que pagamos um ator para fazer essa pergunta, porque estou absolutamente empolgado com isso. [risos] >> Ótimo. >> Sim. Existe uma opção de usar MCP para integrar IA e criar o workflow, e ela já existe há algum tempo. Só vem melhorando. Então, se você ainda usa apenas o MCP conectado ao Claude, por exemplo, para programar, está perdendo muita coisa se
25:07 não estiver aproveitando, por exemplo, as skills. Adicionar skills é basicamente dar instruções para o agent usar melhor esse MCP. Outra ótima opção que estamos desenvolvendo, e que muitos usuários ainda não conhecem, é o AI Assistant. Então, o assistente do n8n — se você atualizar o n8n agora, terá acesso a ele — é basicamente um agent que já fica dentro da interface do usuário, ao lado do
25:37 canvas e de tudo mais. Com ele, você pode criar o workflow inteiro e os testes, exatamente como faria pelo MCP, mas tudo dentro do n8n. Dá para fazer isso em uma instalação auto-hospedada. Assim, você pode conectar seu LLM favorito. E estamos publicando muitos exemplos e casos de uso no nosso canal. Então, mais uma vez, inscreva-se para acompanhar as novidades. Agora há várias perguntas. Vamos conferir. >> Claro.
26:07 >> Certo. Para equipes que lidam com um grande volume de webhooks recebidos, como o n8n trata novas tentativas e falhas em comparação com criar uma solução própria? Bom, eu diria que essa é uma questão que depende do perfil de cada pessoa. Se você é mais desenvolvedor por natureza, eu diria para simplesmente criar sua própria solução. Se você é desenvolvedor e trabalha com mais pessoas nisso, eu diria para considerar o n8n, especialmente se estiver trabalhando com pessoas não técnicas que queiram acompanhar o workflow, entendê-lo, adicionar suas próprias integrações e, de modo geral, usar o recurso no-code que temos. Nesse caso,
26:38 é melhor usar o n8n. Outra razão para usá-lo é que toda a infraestrutura já está pronta. Quero dizer, ela já está implantada na nuvem. É fácil colocá-la para funcionar. Quem tiver…
27:09 criaram seus próprios webhooks, entendem que o trabalho é, sim, configurar tudo. >> Com certeza. >> Se precisarmos usar sua tela de novo, é só me avisar. Vamos ver. Há muito mais perguntas aqui. Vamos ver. Existe uma maneira de integrar o WebEx Teams em vez do Slack a esses incríveis workflows de NA? Essa é para você.
27:41 >> Sim, existe. Também há uma quantidade abrangente de notas dedicadas ao WebEx no NA NA10. E, sim, definitivamente convido vocês a adaptarem esse workflow baseado em Slack para o WebEx. Acho que talvez eu tenha uma demonstração em algum lugar em que tudo isso foi feito com o WebEx. Não muda muita coisa. Então, se me chamar mais tarde, posso compartilhar com você.
28:11 >> Legal. Certo, próxima pergunta. Acho que é a última. Ao usar o Slack como interface para um servidor MCP, como controlar quais ferramentas ou ações cada usuário pode acionar? Acho que isso combina perfeitamente com o que você… Acho que eu diria que não há uma única maneira de fazer isso; dá para ser bem criativo. Então…
28:41 Uma coisa sobre usar essas interações baseadas em usuário é que, dependendo do que você está usando, dá para saber a identidade da pessoa. Por exemplo, com o Slack, consigo obter o nome de usuário, o hash e o ID. Então, com base nisso, posso, por exemplo — estou pensando — verificar uma integração com um cofre em que tenho essas políticas, como, sei lá, um Keycloak ou algo assim. Aí ele pode me dizer: “Este usuário tem permissão para fazer isto, aquilo e aquilo”. E então haveria uma ramificação, um bloco if no…
29:13 nosso workflow. Assim, você tem esse monte de agents, mas aí: “Ah, este é um superusuário”, e então há outra ramificação com esse outro monte de agents. Dá para ramificar visualmente essas coisas com base em um servidor RBAC centralizado ou algo do tipo, certo? Claro, estou pensando em voz alta. Essa seria uma maneira de fazer isso, certo? >> Sim, verdade. Há várias. Também tem… Não sei se o Slack faz isso, mas alguns provedores, algumas ferramentas…
29:45 permitem definir, diretamente no painel deles, a que você quer que aquele MCP tenha acesso. Então, também dá para ativar ou desativar isso. O que é outra maneira de… Certo. Você tem outro workflow para nos mostrar, se não me engano? >> Sim, tenho. >> Legal. Vou ocultar isto. Vou mostrar sua tela. >> Claro. >> Vamos ver o que você tem. >> Certo. Bem, este…
30:16 tem mais a ver com workflows totalmente automatizados. Não há nenhum humano no loop: é tudo completamente autônomo e atende a uma necessidade específica de todos vocês que trabalham com infraestrutura: relatórios de auditoria de conformidade e issues. Tudo isso está interligado. Normalmente, acionamos workflows que geram esses relatórios em algum momento da semana, provavelmente durante nosso café da manhã.
30:47 Queremos saber o que aconteceu, o que está fora dos padrões e o que precisa ser corrigido. Então, esta é uma maneira de fazer isso com o n8n. Vou mostrar bem rapidinho. Esta é uma abordagem bem linear, mas vou ampliar aqui este slide bacana. Sim, a ideia é bem simples. Temos a mesma proposta de usar um servidor MCP para qualquer infraestrutura de que você precise e que queira monitorar. Desta vez, temos tudo centralizado no GitHub. O GitHub será nossa fonte da verdade. Aqui temos as definições dos relatórios, ou seja, as coisas que queremos verificar regularmente na nossa infraestrutura. Pode ser para conformidade, auditoria ou apenas verificações de integridade. Depois, vamos armazenar os relatórios gerados — como a infraestrutura se saiu, se bem ou mal — no mesmo GitHub, e também vamos abrir tickets se…
31:21 houver algo fora dos padrões que precise da nossa atenção. Claro, você pode trocar qualquer um desses componentes quando quiser. O n8n tem um conjunto bem abrangente de nodes para muitas ferramentas diferentes. Você poderia usar o PagerDuty, o Jira, várias outras coisas, mas, aqui, por simplicidade e porque é de graça, estou usando o GitHub para tudo. Então, dentro do n8n, teremos três agents diferentes. O primeiro vai interpretar…
31:52 os relatórios que queremos gerar. Ele vai dividi-los em regras menores, que depois vamos executar com o segundo agent, o agent de relatórios. Este tem conexão apenas com ferramentas MCP somente de leitura, porque, de novo, é somente de leitura. Assim, podemos executar essas regras, obter os resultados da nossa infraestrutura, compará-los com o que está em conformidade e, então, criar um arquivo Markdown que vamos armazenar no GitHub. E o último agent…
32:23 vai analisar esses resultados e dizer: “Está tudo certo. Estamos seguros. Não há nada a fazer aqui”, ou: “Tem alguma coisa pegando fogo”. Nesse caso, preciso chamar a atenção dos nossos engenheiros. No momento, vou criar tickets no nosso sistema de gestão de tickets, que, neste caso, também é o GitHub. Então, este workflow vai levar um tempinho se eu executá-lo agora. Vou mostrar como fica no nosso repositório do GitHub. Vou compartilhar…
32:54 o link com vocês mais tarde. Este é o repositório “pits loves aentic ops”. E, se formos até a seção de relatórios e auditoria, temos esta pasta de relatórios e a definição dos relatórios. Por exemplo, talvez queiramos verificar se nossos dispositivos estão seguindo as diretrizes de hardening de segurança. A Cisco publica essas diretrizes com frequência. Por exemplo: se você quer um roteador bem…
33:25 protegido, quer ter logging, TACACS, autenticação AAA e todas essas coisas. Beleza, são diretrizes públicas. Muitos fornecedores fazem isso; não é só a Cisco, muitos outros também. Então, posso simplesmente pedir: “Quero que você busque as configurações deste dispositivo e compare com as recomendações desta diretriz”. Vou colocar esse pedido aqui neste pequeno arquivo .txt. O que vai acontecer é que…
33:57 este workflow vai buscar esses arquivos no GitHub e executar todas essas etapas, uma por uma. Primeiro, vai obter o conteúdo do arquivo e depois dividi-lo em regras menores. Se houver uma URL, vai buscá-la usando uma requisição HTTP. Depois de dividir o conteúdo, vai executar essas verificações na nossa infraestrutura, nos dispositivos-alvo, usando o cliente MCP, e então criar o relatório no local desejado.
34:30 Por fim, se houver algo que precise da nossa atenção, vai criar esses tickets no GitHub, mas também vai nos avisar com um pequeno cartão, informando se eram apenas relatórios ou relatórios com más notícias. Vamos receber isso durante o café da manhã, em um canal do Slack, certo? Temos aqui a entrega dos resultados. Exatamente. A melhor maneira de começar a manhã é com más notícias ou apagando alguma coisa em produção, quando o café não está forte o suficiente.
35:01 Então, vamos dar uma olhada? Vou acessar meus relatórios, depois os arquivos, e mostrar um dos relatórios. Na verdade, acho melhor mostrar pelo Slack. Vou até o nosso Slack. Aqui está. Vou expandir. Sim, vou ampliar um pouco mais. Aqui tenho alguns guaxinins que fizeram isso para mim antes da sessão. Sim, dá para ver que, por exemplo, este cartão era uma auditoria de memória. Minha premissa era: “Se houver…”
35:34 Então, vamos dar uma olhada, certo? Vou acessar meus relatórios, depois os arquivos, e vou mostrar um dos relatórios. Na verdade, acho melhor mostrar para vocês pelo Slack. Deixe-me acessar nosso Slack. Pronto. Vou expandir. Sim, vou aumentar um pouco mais o zoom. Aqui tenho alguns guaxinins que fizeram isso para mim antes da sessão. Sim, vocês podem ver aqui que, por exemplo, este cartão era uma auditoria de memória. Minha premissa era: ei, se houver
36:06 algo acima de um limite de 80%, algo que esteja prestes a pegar fogo, me avise. Está tudo certo. Podemos ver que temos apenas o relatório, e é isso. Certo? O relatório aqui diz que está tudo tranquilo, sabe, a versão das estatísticas. Ele justifica o que executou para chegar a esse veredito, e é isso, certo? Moleza. Mas este outro pegou fogo mesmo, tipo: “Ei, seu status de hardening… você precisa trabalhar nisso aqui, porque não está em conformidade com estas diretrizes de hardening mais recentes”
36:37 “…” Então, clico aqui — na verdade, clico para abrir uma issue — e podemos ver que isso é uma issue no GitHub. De novo, poderia ser o Jira, poderia ser o PagerDuty, poderia ser sua ferramenta de tickets favorita. Das 22 regras de hardening, passamos em duas. Falhamos em 15, e há cinco que não pudemos executar por algum motivo. Temos descobertas críticas. Aqui temos o resumo. Também temos
37:09 isso porque pedi que ele criasse uma lista de tarefas de remediação — uma lista de tarefas, desculpe — com base no próprio julgamento. Então, está tudo aqui. E aqui temos um link para o relatório de referência, onde há mais informações, certo? Podemos ver aqui todas as coisas: os escopos, a visão geral do ambiente e uma regra por linha. Aqui temos tudo o que foi avaliado, como foi avaliado e, depois, alguns riscos e considerações. Quero enfatizar uma coisa: não pretendo — quero dizer, nada
37:41 disso pretende substituir o bom julgamento de um especialista em segurança. De jeito nenhum. O que queremos oferecer é um ponto de partida, porque, idealmente, vou entregar isso ao meu engenheiro, que é especialista no assunto, e essa pessoa vai avaliar se há alguma ação a tomar ou se isso não faz sentido. Certo? >> Então, não estamos substituindo ninguém. Estamos apenas tornando o trabalho de rotina deles
38:13 do dia a dia mais fácil e otimizado. Essa é a intenção. >> Com certeza, é incrível. E precisamos disso. Quanto mais usamos agents, quanto mais usamos IA, mais precisamos garantir que isso faça parte do workflow. >> De fato. É. >> Certo. Vou tirar a tela daqui. É. E, especialmente, quando
38:43 você me mostrou esse workflow pela primeira vez, acho que comentei isso com você. Pensei imediatamente em quantas pessoas estão simplesmente usando IA, virando desenvolvedoras, digamos, e fazendo deploy de coisas em produção. Em algum momento, a equipe de infraestrutura vai ter um pesadelo, com tantos projetos no ar. Garantir que tudo esteja seguro exige uma estratégia de verdade.
39:14 >> Certo. Temos uma pergunta aqui: vocês podem fornecer esses arquivos JSON de workflow? Na verdade, eles estarão no nosso template do n8n, cujo link ficará na descrição do vídeo. E sim, o vídeo será publicado no YouTube, com todos os links na descrição. Oi, Nuts. Certo. Ah, este é um comentário muito legal: “Isso teria me ajudado anos atrás. Eu
39:46 precisava consultar manualmente a utilização por placa em um GSR para entender por que ele estava travando.” [risos] [fungada] Sim, já passei por isso. Infelizmente, ficava pulando entre mil terminais SSH, copiando e colando as coisas manualmente. Esses eram os tempos. Esses eram os tempos. >> Esses eram os tempos. [risos] Certo, tenho algumas perguntas para você, só para encerrarmos. Tem alguma coisa
40:18 que você não abordou e gostaria que as pessoas ouvissem? >> Certo. Acho que o design de ferramentas e servidores MCP merece um capítulo próprio, certo? No momento, o MCP vem ganhando força, com um pouco de controvérsia também, mas, por enquanto, é a melhor forma de trazer nossos agents, nossos LLMs, seja lá o que for, para o mundo real.
40:48 Mas, como disse o Tio Ben, “com grandes poderes vêm grandes responsabilidades”. >> É, e falar sobre como projetar essas ferramentas, especialmente para infraestrutura, merece sua própria conversa da comunidade. >> Incrível. Incrível. E, para quem quiser testar esses workflows — ou nem mesmo o workflow; talvez tenha um problema específico e queira entrar em contato com você ou consultar um documento — para onde você indicaria as pessoas?
41:19 >> Certo. Não sei se posso usar o chat desta chamada para enviar um link ou… >> Na verdade, você vai ser a primeira pessoa a testar isso. Você consegue ver o chat? Consegue mesmo ver o chat? >> Não. Bem, vamos fazer o seguinte. >> Você pode me enviar. Eu posso publicar o link. >> Certo, vou fazer isso.
41:51 Então, vou colocar aqui e enviar. Certo, acho que consegui. Porque… >> Legal. [fungada] Certo, eu… >> Enviei. >> Incrível. São dois links. O primeiro é o repositório que compartilhei com você. Lá estão todas as informações. Criei um conjunto bem completo de diretrizes para implementar isso nas suas próprias instalações
42:22 e… sabe, fazer a parte do Slack, depois a dos webhooks, isso e aquilo, leva um tempo para configurar e acertar logo de primeira. Então, investi bastante tempo para deixar tudo à prova de falhas. Dê uma olhada nesses arquivos README. Está tudo lá. Você também encontra o link para o catálogo oficial de workflows do n8n. Às vezes, como este é um projeto em evolução, de tempos em tempos publico novas versões desses workflows, e, quando isso
42:53 acontece, o URL pode mudar. Então, pode ficar tranquilo: a versão mais recente dos URLs estará neste repositório do GitHub. E, se ainda tiver dúvidas depois de consultar a documentação, mande uma mensagem para mim no LinkedIn. Compartilhei meu LinkedIn com você, Leo. Respondo a todas as mensagens, então pode mandar. Vai ser muito legal. >> Claro. E, se tiver dificuldade para implementar um template que encontrar
43:23 na nossa biblioteca de templates, use o assistente de IA. Ele deve conseguir sincronizar e até ajudar você a configurar a autenticação. Sei que aquela parte de todas as credenciais é irritante, mas faz parte do processo. Use nosso assistente para isso. E a última pergunta: o que vem por aí para a equipe DevNet? O que o público pode esperar e deve acompanhar? >> Com certeza. Nós, da Cisco DevNet,
43:58 estamos sempre trabalhando em coisas legais, coisas muito legais, como casos de uso de IA de ponta e afins. Então, a melhor forma de conferir o que estamos fazendo é acompanhar nosso canal do YouTube. Vou publicar o link aqui. Acabei de compartilhá-lo com você, Leo. >> Obrigado. Incrível. E temos o último link do dia, prometo: developer.cisco.com.
44:31 Esse é o lugar certo para tudo relacionado à automação e orquestração de redes. Temos muitos recursos: todos os nossos servidores MCP, nossas especificações de API, nossos laboratórios de aprendizagem e nossos sandboxes. Tudo é gratuito, e você pode conferir. E, se me mandar uma mensagem no LinkedIn, ficarei muito feliz em compartilhar um guia para começar e coisas do tipo. >> Incrível. Mais um comentário.
45:07 [risos] >> Poncho, obrigado por participar. Quer deixar algumas palavras finais? >> Obrigado pelo convite, Leo, e obrigado a cada um de vocês, membros da comunidade deste espaço incrível do n8n. Foi um prazer e uma honra compartilhar este tempo com vocês. >> Incrível. O prazer foi meu. E, como mencionei — mencionamos —, os dois workflows são gratuitos na biblioteca de templates. Vou deixar os
45:37 links na descrição, junto com o repositório. Obrigado a todos por assistir. Vejo vocês no próximo episódio.
Transcrição original
[00:00] Hey everyone, I’m Leo from NAN. Welcome to the live stream today. I’ve got Poncho Sonoval from Cisco DevNet with me. Poncho, good to have you here. >> I’m I’m so happy to be here. Thank you for the invitation. Leo, >> feel free to introduce yourself and tell us a bit about DevNet. >> Yeah, sure. Absolutely. So, well, um, first of all, I’m very happy to be here sharing this space with all of you who are the community of NA10. As Theo mentioned, my name is Poncho Sandoval.
[00:30] I’m a developer advocate at Cisco DevNet. And basically what I do is to bring novelty use cases and all sorts of cool stuff about programmability, orchestration, and everything in between for uh platforms, infrastructure, and data networks to our customers and partners. >> Nice. And a curiosity about you is you speak a many languages, right? >> [laughter] >> just a little bit uh a handful of them.
[01:01] Uh right now I’m living in Lisbon, Portugal, so I had to learn Portuguese to properly uh hang around here. >> Nice. >> Something that I really like. >> So many flags. So cool. >> Thank you. >> Before we get into workflows, just to set the stage, >> tell us who is this? Who are like there are more than one builds. Who are they for? Like what’s the persona? What level of code would they need to know just to
[01:32] make sure everyone is on board? >> Absolutely. Like this is a shout out to all of you here in the NA10 community who work every single day with infrastructure. Actually, I salute you. I praise you because you are the people who keep our world connected and running. you set the foundations of uh the networks that run the internet that run the AI revolution and well the use cases that we are about to have a look at have to do with making your
[02:04] housekeeping your day-to-day easier optimized by bringing AI little by little in a very responsible way I mentioned >> awesome awesome and we already have a few comments so yes this is live not pre-recorded And [laughter] we we have a a a comment alive in Portuguese sounds cool. We’ll think about that. Up until this point, we’ve only talked in Portuguese, so it’s funny talking in English now. [laughter]
[02:35] >> Exactly. >> Awesome. >> Kind of funny. >> Different poncho. Let’s dive in. And everyone drop your questions in the chat. We’ll make sure to go through them whenever possible. Let me get your screen up. >> Thank you. >> There you go. >> All right. So, uh, also shout out for all the people that are into data networks here in the audience. Uh, this is a small, you know, like Easter egg, like a blink to all of you who speak CLI. Uh, just for you to know, this is
[03:08] uh my LinkedIn. This is my GitHub. I will share the the URLs later on. And this is a nice picture that I love to share of the Camino de Santiago pilgrimage. It’s such an amazing experience. if you’re in Europe and even if you’re not, you have to do it. It’s amazing. >> Nice. >> So cool. >> Thank you. So, Leo, if you allow me, uh, let me just go here to scroll down a little bit. Just a second. Yes. Okie
[03:39] dokie. I didn’t want to put slides or anything. I just wanted to share with you a couple of things here just for you to get an idea. um me and my day-to-day within Cisco I basic I most of the time I work with people from data networks I’m talking about data centers I’m talking about service providers like all these big big big networks that are very difficult to manage and the reality is that I mean right now we’re living in the era of b coding AI agents all these different things that are not the the
[04:10] next big thing they are the big thing right here right now right >> yeah So certainly >> the thing is that the infrastructure world regardless of which infrastructure we’re talking about it could be data centers it could be virtual machines it could be cloud instances it could even be kubernetes uh clusters and whatn not all of them share the same struggle they’re not able to surf these big waves because they need to be cautious they need to take things you know with a pinch of salt because on any given uh
[04:43] application If uh AI does any sorts of misjudgment, hallucination and whatnot, we may get an exception, we may get an error, we may get something in between. If we bring this into the realm of infrastructure, we get an outage and we show up in the news the morning after, right? So, we positively don’t want to embrace AI just as it is. We need to put some things in place before being able to do experiments with it before we are
[05:14] able to adopt it little by little. And I was thinking about how to bring this to our customers and partners within Cisco for their data networks and whatnot. And we came across NA10. It’s a pretty cool solution for exploring all of this because we have very robust AI tooling within. And so we can make use of this probabilistic nature of AI but we also have the deterministic nature of this
[05:46] layout of all the nodes that we drag and drop and connect and we get the same results every single time. So in a nutshell for infrastructure probabilistic AI plus deterministic layout that strikes a nice balance and this is something that we are looking for. So having that in mind, we have been working on two different use cases that uh may cater uh you know your needs whatever infrastructure we’re talking about and well I’m here to demo them
[06:17] live and so that you can have a look at them. What >> perfect perfect that’s that’s a perfect topic because something we’ve been trying to show in our content is exactly about the blackbox thing. A lot of what people are building with AI now, especially whoever is just going through the vibe coding route without really understanding a few concepts, end up building inside of a black box. They don’t know exactly how they can handle that agent. And you’re you you showed me your workflow before. I think it’s
[06:49] perfect a perfect example to show how you can use AI and still have limit what it can access, right? >> Exactly. Absolutely true. So, uh without further ado, if you allow me, uh for for you and your wonderful community here, I want to start with the first use case that we’ve got here. This is basically a chattop’s interface via Slack for your day-to-day housekeeping with your infrastructure. The example we’re going
[07:19] to have a look at has to do with data networks. Like this could be any given data center. But don’t think that this is just for networks, that this is just for Cisco or whatever that may be. This can perfectly apply for your day-to-day housekeeping on your Kubernetes cluster, on your cloud instances. If it has an MCP server available for managing this, it can definitely be adapted into this workflow. >> Yeah, >> hands down. And maybe this is the moment
[07:51] when I ask your audience very quickly, could you please raise your hand or drop a comment if you know what MCP is? If you’ve ever worked with MCP, I’m very curious. >> I hope we have some builders there. >> Hopefully, >> we have we have an Armano from Peru. >> Oh, nice. Nice. Um, well, so let me explain you very briefly what this is about. We are going to have this workflow with four
[08:22] different agents. This will allow us to do read operations like to do queries about hey what’s going on with my infrastructure? Can you give me some alerts? Can you give me some logs? Can you give me some data in general for whatever I need to do? But also we are going to be able to change configurations, create, modify, destroy things at will. Well, not really at will because you see what’s the difference between any given agent for any given application and something catered for
[08:54] actual infrastructure. Main difference is that we need to put couple of things in the design from the get-go. That being guard rails and human in the loop. We need to actually limit the things that we can do and the moments in which we need human eyes to click that button and make that change happen or reject it all at once. So I want you to keep in mind these two words which are very important guard rails and
[09:24] human in the loop and they will make sense in a moment. This workflow we have a planning agent based on the message that we got from Slack. We are going to determine if it’s a readonly or it’s a commit operation. If it’s readon, it’s all cool. We get the information using an MCP server and we prompt it to the user. If it’s something that we need to commit, we’re going to validate it against conflicts. If it’s conflict free, we’re going to do the change and then we’re going to validate it again and bring the results back to our user.
[09:55] So it is divided into different um uh layers here. But before diving in, I want to show you live how it works. So let me go here. Thanks Leo. Let me go here to my Slack because as I mentioned before, this is based on Slack. Here I have my lovely raccoons. And it all starts [laughter] I love explaining things with raccoons. It’s the best way to explain stuff. You certainly grab attention. [laughter]
[10:28] >> Yeah, I love them. [gasps] We start with an app. It’s very easy to create apps on Slack and uh NAT has a pretty comprehensive suite of nodes that interact with your Slack bots. So, we create a bot here and we integrate it with our NA10 uh workflow. And now we’re going to be throwing a question. For example, hey packet which is the name of my bot. Uh please tell me which are the
[11:00] devices in my inventory. Okay, I will put my uh I will put this on the side if you give me one moment. Yeah, it’s here. And then this I will put it here. There we go. Lovely. I will put this Slack mention trigger and then I will throw this and we’ll see what happens. Okay, just a second wrapping things up. We have here a lovely uh just one
[11:31] second. We have here Yes, this agent here. And why can’t I navigate? Yeah, awesome. Yes, you may. Okay, so what just happened here? We got the mention of the bot and using this very simple blocks, we got that message. We got the identity of the user. We got all that stuff into NA10. Then we run it through our first agent. This is our planning agent. You have here a couple of cool things, right? All these prompts are optimized.
[12:01] All these prompts follow the agents.mmd open source standard. That’s something good to to have. And we’re basically deciding, hey, is this readon or is this a commit? Well, it’s a readonly thing. Perfect. We are going to be using our MCP server but not just as is because you see this is read only thing but we’re basically trusting our prompt to behave properly. We’re basically giving it a nice suggestion a kind suggestion
[12:32] to don’t change configurations on our devices on our inventory. But I want to be certain. I want to make sure that this AI prompt of the persona of my agent doesn’t go rogue and change things by itself. So what I’m doing is putting Yeah, it doesn’t it it makes a lot of sense. So what I’m doing here is to limit the tools that can be used through this MCP client. All the tools that you see here, they are by code, by definition,
[13:03] read only. there is no way that I can change things using these tools that this agent is limited to. This way we have probabilistic guardrails but also deterministic guardrails. It’s always awesome to have both in place. So just to keep it short, we do the queries, we connect to our infrastructure, we get the results and then we just prompt it back in this nice formatting to our user. Okay. And this is basically our
[13:33] chattops uh interaction. What happens when we want to change things? There’s going to be a couple of things in in place. So uh this may take a little bit of time. So I have here just a couple of examples already in place. So if you allow me to show you here, we’re just going to go and say, hey, I want to create this new virtual LAN uh ID 20 named voice on this switch. We normally use this villain for creating dedicated uh traffic in on our networks. We may
[14:05] have one for printers, we may have one for voice, we may have one for video and so on and so on and so on. When we create this and they already exist, they can overlap different things and they can create uh interruptions in our service like this is something that we ideally don’t want uh to have [laughter] in our network. So yeah, I throw this, it goes through this through the planning agent and then it is a commit thing, right? So it’s going to be checking, hey, using the MCP server, do
[14:37] I have this already? Do I have this sort of thing already on this target device? Well, turns out that it does, right? So what we’re going to see here is its best judgment of why it is unsafe to do this changes. It will show us here its reasoning. I have here in the definition of the agent how to do this reasoning and it will show us why this is blocked. What can you do to proceed all the things that you can check right? Me as an expert me as the network expert in the room will check this and see if it
[15:10] makes sense right but I am not starting from scratch and I want to make a brief pause. John Capoenko I see your message here on the chat. Yes this is your PITSMCP server. I brought into the realm of NA10 and help you for all the cool things that you’ve been doing. I’m your huge fan. Just wanted to to to do that. Okay. >> I’ll leave I’ll leave that link in the description as well later. So, >> absolutely. >> Whoever is watching, by the way, someone asked if this was going to stay
[15:40] recorded. It will. Just check our YouTube channel and make sure to subscribe. By the way, >> absolutely, hands down. [laughter] Uh let me move forward a little bit. What happens if the change is actually valid? Okay, this is a very very simple example. Let’s say I’m telling it, hey, do the same config but on a completely different device. I want to see if there’s a conflict of any sorts. Okay, you remember that I mentioned two different things at the beginning. Guard rails and human in the loop. We already
[16:11] saw guard rails like asking our agent persona nicely to not misbehave but also restricting the MCP tools that we can use and limit it to the read only ones. Okay. Now it comes the second uh uh topic that I mentioned which is human in the loop. At the end of the day I want to have a human being in the flesh clicking the button to push that change. And here the the example is very straightforward, very simple. But if the
[16:43] change is actually a commit, I’m going to pass it through this different part of the workflow that will create small slack cards that will be sent to our chat. And you can see here this lovely card commit approval required target device vendor to the better judgment of our agent. These are the safety comments. This is a pre-check evidence and this is the tiny little commit payload that we’re going to be pushing. This could be like a thing for serious like for all the people of networking
[17:14] out here. This could be a complete BGP deployment. This could be something serious, right? But I want to keep it short here for the sake of simplicity. And also here we have a poserous DB. This is optional of course. It’s a ledger, a commit ledger because we want identity on every single change. So, as you can see here, it’s up to me, Mr. Human Being, to click the button or to let it be. Okay, this is uh the human in the loop part of all of this use case.
[17:47] So, uh maybe I can make a quick pause here while I scroll to the other part of our uh workflow and maybe check here uh on the comments if there’s something that I could answer right now. I don’t think there’s a direct question about the workflow. I think human in the loop is sometimes under underused >> especially because I mean to be honest most people just hook up a b a bunch of agents and just let it loose when in
[18:17] some some cases especially infrastructure you can’t do that at all. Certainly absolutely true like positive on infrastructure uh we want a couple of eyes in there right so it it depends of of course of the use case absolutely but well I want to showcase you know the the the moments in which we do want human eyes on the thing okay so this is an idea of an implementation >> so having said that what if I click the card what if I click please commit well
[18:49] here I have a different uh part of the workflow. This is a web hooks which NAT does super well. Uh it’s something really really easy to do. So just put here a bunch of blocks for getting the web hook. I’m passing here an ID of prop of commit proposal that I match against my ledger. If it is there on my posress database what I will do is just one second. I always confuse here my my navigation. There we go. Awesome.
[19:21] If uh the card is hasn’t expired, I will do a couple of validations here. I will run this against a couple of independent agents. Is the is the change still valid? Many things could have changed in between. I want to run it again against prevalidations. If it is still valid, what I will do is to finally commit the thing, do the change, create, add, destroy, whatever that may be. It has full access. You can see here that my uh MCP client is using all the tools, all
[19:54] the tools at our fingertips because we’re able to do whatever we want. And then after we do the changes, we run a final independent postcomit integrity validation. And then if if it all goes well, we show the results here. So uh if I click this one, it’s it’s very old. So it will uh uh tell me that it’s expired. But then here with this level >> which just it’s good it’s good that it observes that it’s been a while and
[20:25] doesn’t commit or else it’s old data that wouldn’t work. Right. >> Certainly I can do that. So here I’m going to put my my um trigger for the web hook. I will click on cancel and then you can see uh ah well I canceled actually. [laughter] Sorry I should have clicked commit. Sorry about that. Uh but well here you can see that it got replaced. Commit canceled. The web hook is is working then otherwise it would have showed me it expired. This is very old, right? So you need to start over.
[20:58] Anyways, uh sorry about that. >> No [laughter] problem at all. [gasps] >> Under this lovely raccoon playing with bubbles. I have a change that I actually committed. So this is a banner. You know those kind of banners that when you log in via SSH or channel it to something a server or whatever that may be you get this like nice banners like hey legal notice if you misbehave we’re going to get you like like uh like virtual machines police is going to get you. Okay we I added a banner of those like hey warning authorized access only with
[21:29] great power come from great responsibility famous quote by Uncle Ben. I got the card. I clicked commit. All the changes went through and then I got this last message, this verdict. It’s all verified. The the configuration is there. The four lines are there. Everything is good. All tests passed. And then here you can see that my identity from my user logged into Slack is there in the commit ledger
[22:00] where the status of this uh change was marked as applied. So you can see that we have this end toend experience for different purposes prioritizing [snorts] guardrails and human in the loop for our agents with infrastructure. Okay, >> nice. >> Perfect. [laughter] Thank you, Leo. And I don’t know, NAT community, if you have any questions, if you have any doubts, this is the moment when you uh uh send us a tiny message
[22:30] here in the chat. >> Yeah, >> there’s a question there. >> Yes. Okay. Are you saving the logs and changes outside the Slack chat somewhere? [snorts] Um, not really. The only thing that I am saving is uh all our commit attempts in this ledger. This posgress is actually a container. All of this I will show you later. All of this including NA10 is a docker compose based like my entity server, my posgress db,
[23:03] n10 itself. I have it all on a nice docker compose. So yeah, all this attempts with uh the slack user are being saved on that pos container. However, and this may be a topic for a different uh community call, there are ways to extract logging and events from NA10. NA10 has some very interesting hotel like open telemetry uh blocks that we can definitely leverage and you can plug this traces to your favorite
[23:34] observability stack. Isn’t that true, Leo? >> Absolutely. And there’s also an agents feature that I think we need a different live stream just to cover that because all of that can be added to the agents feature. And I I think I’ll have Liam on board to to talk to us about this. Another question in the chat. So can you confirm the last committed changes? >> Yes, that’s uh actually the role of this
[24:04] last agent. So like if we have a look at it when we commit things yes it all starts here. So it goes through let me zoom in here pre pre-commit commit and postcommit. So it all happens in that sequence. So the moment we get this message this is our actual confirmation of the things that were pushed. Okay. I don’t know if if that was the question. >> Absolutely. Yeah. The next question I
[24:34] think is more around N and >> it’s like we had a paid actor to make this question because I I’m I’m absolutely [laughter] stoked about it. >> Awesome. >> Yeah. So, there’s an option to use the MCP to integrate AI to to create the workflow and this has been around for a while. Uh it’s only gotten better. So if you’re still only using the MCP attached to cloud for example to codeex you’re losing a lot if
[25:07] you’re not taking advantage of skills for example. So adding the skills is basically an instruction for the agent to better use that MCP. Now another great option that we’re building and u many users are not aware of yet is the AI assistant. So the NAN assistant uh if you update your NAN right now, you’ll have access to that is basically an agent already inside of the user interface inside of the like next to the
[25:37] canvas and everything where you can build the entire workflow, build tests exactly like you would do through the MCP but all inside of NAN. You can do this self-hosted. So you could hook up your favorite LLM. And yeah, we’re posting a lot of examples, a lot of use cases in our channel. So again, subscribe to follow up for more. There’s a bunch of questions now. Let’s check them. >> Sure.
[26:07] >> So okay, for teams handling high volume inbound web hooks, how does N handle retries and failure handling compared to rolling your own solution? Okay. So, this this is something I’d say is the question between personas where you if you’re more of a developer naturally, I’d say just build your own solution. Um, if you have if and if
[26:38] you’re a developer and work with more people on this, I’d say consider any especially if you’re working with non-technical people that want to track that want to understand the workflow that want to add their own take their own integration and overall just use the no code feature we have then >> it’s better off using it. Um, another another reason to use it is the infrastructure is all done. I mean it’s already deployed into the cloud. It’s easy to get it up. Whoever has
[27:09] built their own web hooks understand the [laughter] the job it is to yeah configure everything. >> Certainly. >> Let me if we ever need to use your screen again just let me know. Let’s check. There’s a lot more questions here. Um, let’s see. Is there a way to integrate WebEx Teams instead of Slack with these amazing NA workflows? This one’s for
[27:41] you. >> Uh, yes, there is actually also a comprehensive uh um amount of WebEx dedicated notes within NA NA10. And yeah, I definitely invite you to adapt this Slack uh uh based workflow into WebEx. I think I may have a a demo somewhere where all of this was done with WebEx. Uh it doesn’t change that much. So if you ping me later, I can share it with you.
[28:11] >> Nice. Okay, next question. I think it’s the last one. When using Slack as an interface for an MCP server, how do you control which tools or actions each user is allowed to trigger? I think this fits perfectly with your I think that would be more what I would say is that there’s not a like a single way to do this like you can get very creative with this. So it
[28:41] uh thing about using these uh like user based interactions is that depending on what you’re using you can know the identity of the person. For example with Slack I can get the username I can get their hash I can get their ID. So based on that I can for example I’m thinking I can check uh an integration with a vault where I have this policies uh like I don’t know like a keycloak or something and then it can tell me hey this user is allowed to do this and this and this and then there would be one branch one if on
[29:13] our workflow so you have all this bunch of agents but then oh this is a super user then you have this other branch with all this bunch of agents like you can visually branch these things based on a centralized uh RBAC uh server or whatever, right? That’s of course I’m brainstorming out loud. That would be one way to do it, right? >> Yeah, true. There’s many. There’s also So, I don’t know if Slack does this, but some some providers, some some tools
[29:45] allow you to set which what do you want that MCP to have access to straight from their dashboard. So, you can toggle that as well. Um, which is another way to Okay. Do you have another workflow if I’m not mistaken to to show us? >> Yes, I do. >> Yeah. Let me hide this. Let me bring up your screen. >> Sure. >> Let’s see what you have. >> Okay. All right. Well, this one has to
[30:16] do more with um like fully automated uh workflows. We don’t have any like human in the loop. It’s like everything completely autonomous and it caters for specific need of all of you here who are infrastructure people which is compliance audits reports and issues. All of these go hand in hand. We normally trigger workflows that uh generate this at any given point in the week. most
[30:47] likely during our morning coffee. We want to know what happened, what is out of line, what needs to be fixed. So this is one way to do that with N8N. So let me show you very quickly. This is a very linear approach, but I’m going to zoom here to this nice slide. Yes, it’s a very simple idea. We have the same take of having an MCP server for any given infrastructure that you need and want. And this time we have uh
[31:21] everything centralized on GitHub. GitHub is going to be our source of truth. Here we have definition of reports meaning things that we want to check on our infrastructure on a regular basis. It could be for compliance, it could be for auditing, it could be just for health checks. Then we’re going to be storing the generated reports like how good or bad it uh performed our infrastructure performed in the same GitHub and also we are going to be issuing tickets if
[31:52] there’s something out of line that needs our attention. Of course you can swap any of these components at will right like NA10 has a very comprehensive set of nodes for uh many many different tools. You could have a pager duty, you could have a Jeta, you could have all the different things, but here for the sake of simplicity and because it’s actually for free, I’m using GitHub for all the stuff. So inside of an A10, we will have three different agents. The first one will do an interpretation of
[32:23] the reports that we want to generate. It will break them into small rules that we will later execute with the second agent, the reporting agent. This one has the connection to the MCP reef only tools because again this is reef only. So we can issue those rules. We can get the results from our infrastructure compare against what is compliant and then build a markdown file that we will store on GitHub. And then the last agent
[32:54] will have a look at these results and say hey everything looks good. We’re safe and sound. Nothing to do here or something’s catching fire. So I need to get the attention of our engineers. Right now I’m going to be creating tickets in our ticketing system in this case GitHub as well. So uh I will this one will take a little bit of time if I run it right now. So I will go ahead and show you how it looks in our GitHub repository. I will share
[33:25] with you the link later. This is pits loves aentic ops. And here if we go to our reporting and auditing we have this reports f uh folder we have the definition of reports. So for example um we may want to have a look at how well our devices are performing against the hardening guidelines for security. There’s uh Cisco u like frequently publishes this guidelines like hey if you want to have a router that is well
[33:57] secured you want to get logging you want to get tacax you want to get AAA authentication you want to get all these different things cool okay these are public guidelines a lot of vendors do this it’s not only Cisco many many vendors do that so I can just go and say hey um I want you to fetch uh the configurations of this device and compare them against the recommendations of this guideline. So I’m going to put that request here in this small txt file. What’s going to happen is that
[34:30] this workflow will get those files from GitHub and one by one it’s going to run all these different things. First of all getting the contents of the file then splitting it into small rules. If this has a URL, it will fetch it using an HTTP request. Then once it’s splitted, it will run those checks against our infrastructure on our target devices using the MCP client and then create the report where we want it to be created.
[35:01] And finally, if there’s something that needs our attention, it will create those tickets um on GitHub, but also it will let us know with a small card uh about if it was just reports or reports plus bad news. We’re going to have that on our morning coffee on a Slack channel, right? We have here delivery of results. Exactly. Best way to kick off your morning, it’s either with bad news or by deleting something in production. when your coffee is not strong enough.
[35:34] So, let’s have a look at it, shall we? I’m gonna go here to my reports, then to files, and I will show you one of the reports. Actually, I think it’s better if I show it to you via Slack. Let me go here to our Slack. Here we go. I’m going to expand it. Yes, I’m going to zoom in a little bit more. Here I have some raccoons that did this for me before the session. Yes, you can see here that for example this card, it was an memory audit. My premise was, hey, if there’s
[36:06] something above an 80% threshold, something that is about to catch fire, let me know. Everything is cool. We can see that we just have the report and that’s it. Right? The report here, it says it’s all chill, you know, um statistics version. It it justifies what it ran to get this verdict and that’s it, right? Easy peasy. But then this other one, it did catch fire like hey your hardening status uh you need to get some work done here because you’re not compliant with this latest hardening
[36:37] guidelines. So I click here actually no I click to open issue and we can see here that this is an issue on GitHub. Again this could be Jada this could be pager duty this could be your favorite ticketing tool. Uh out of all the 22 harding rules, we passed two. We uh failed 15 and there is uh there are five that we couldn’t run for any given reason. We have critical findings. Here we have the summary here. We even have
[37:09] because I prompted it to do a remediation task list task list sorry based on its better judgment. So everything is here and then here we have a link to the reference report where we have more information right we can see here all the things the scopes environment overview and then one rule per row we have here all the things that were assessed how they were assessed and then here’s some risks and considerations something that I want to stress here I don’t intend I mean none
[37:41] of this is intended to replace the better judgment of a security expert? Not at all. What we want to aid is in having somewhere to start with because I’m going to ideally I give this to my engineer who is the expert on the matter and then this person will evaluate if there’s a call to action here or if this is nonsense. Right? >> So, it’s we’re not replacing anybody. We’re just making uh their their
[38:13] day-to-day housekeeping easier and more optimized. That’s intention here. >> Absolutely amazing. And we need this. The more we use agents, the more we use AI, we we we need to ensure this this is part of the workflow. >> Indeed. Yeah. >> Okay. Let me bring the screen out. Yeah. And especially I mean when
[38:43] you showed me this workflow at first I think I mentioned it with you. Uh I immediately thought about how much people are just using AI and becoming developers let’s say and just deploying things to to production and like the infrastructure team is going to have a nightmare at some point because of how many projects are up and ensuring that we can make everything is secure is is needs a real strategy behind it.
[39:14] >> Okay. So we have a question here. Can you give those workflow JSON files? So this is actually in our N template will be in the description of the video and yes this will be recorded in YouTube with all the links in the description. Hey nuts. Okay. Oh, here’s a really nice comment. This could have helped me years ago. I
[39:46] had to manually pull the utilization by card in a GSR to understand why it was crashing. [laughter] [snorts] Yes, been there, done that. Unfortunately, hopping in between a thousand SSH terminals, copying and pasting things manually. Uh, those were the days. Those were the days. >> Those were the days. [laughter] Okay, I have a few questions for you. Uh just so we can finish up. Anything
[40:18] that you didn’t cover that you wanted people to hear? >> Right. Uh I think that the design of MCP tools and servers deserves its own uh chapter, right? Uh right now MCP I mean MCP has been gaining traction with a little bit of uh controversy on the side but it’s as of now the best way to bring
[40:48] our agents, our LLMs, whatever that may be into the real world. But as Uncle Ben said, with great power comes great responsibility. >> Yeah. and uh definitely talking about how to design these tools especially for infrastructure that deserves its own community call. >> Awesome. Awesome. And for anyone who wants to try out these workflows um or not even the workflow wants they have their own specific problem and want to reach out to you or want to refer to a
[41:19] document where would you point them towards >> right um I don’t know if I can use the chat of this uh uh call to drop a link or >> um >> actually you’re going to be the first person to test that. Can you can you see the can you actually see the chat? >> No. Um well, let’s do the following. >> You can send it to me. I I can I can drop it. >> All right, I will do that.
[41:51] So, let me put this uh and send it. Okay, I think I did. So, because >> nice. [snorts] All right, I >> sent it. >> Awesome. So, it’s two links. Um so the first one is the repository that I shared with you. I there you have all the information I built a very comprehensive set of guidelines for implementing this in your own premises
[42:22] and there’s because you know like doing like the slack thing and then like the web hooks thing and this and this and that it takes some time right like to set it up to get it good the first attempt. So I put I invested a lot of time to make it bulletproof. So have a look at those rhythmi files. Everything is there. Also there you have the link to the official NA10 workflow catalog. Sometimes like like this is a living project. So time and again I upload new versions of this workflows and what that
[42:53] when that happens the URL may change. So rest assured that the latest version of the URLs is going to be there in this GitHub repository. And if after going through this documentation you still have some questions, please ping me on LinkedIn uh I I shared with you my my LinkedIn Leo. Um I reply to all the messages. So please drop a message. That would be pretty cool. >> Sure. And if you’re ever struggling in implementing a template that you find in
[43:23] our template library, use the AI assistant. It should be able to synchronize. It should be able to even help you figure out the authentication part. So all the credentials that annoying part I know it’s annoying but it’s part of the process use our our an assistant for that. And last question is what’s next for the DevNet team? What would you say the audience could expect and should watch out for? >> Absolutely. Uh we at Cisco DevNet we are
[43:58] always working on cool stuff very cool stuff like cutting AI like uh use cases and whatnot. So the best way to check what we are up to is by um checking our YouTube channel. I’m going to post the link here. So I just shared it with you Leo. >> Thank you for that. Awesome. And we have one the last link of the day, I promise. developer.isco.com.
[44:31] This is the go-to point for everything regarding networking automation and orchestration. We have a bunch of resources. We have all our MC servers, our API specifications, our learning labs, our sandboxes. Everything is for free and you can definitely check that out. And if you ping me on LinkedIn, I will be more than happy to share with you like a getting started whatnot. >> Awesome. Uh, a last comment.
[45:07] [laughter] >> Uh, Poncho, thanks for coming on. Do you have any last words? Um, thank you Leo for the invitation and thank to each and every one of you uh community members of the of this amazing NH10 space. It was such a pleasure and an honor to be sharing this time with you. >> Awesome. Likewise. And like I mentioned uh we mentioned both workflows are free in the template library. I’ll drop the
[45:37] links in the description along with the repository. Everyone thanks for watching. See you all in the next episode.