Aprenda sobre o papel que os Bots têm no DevOps

Você sabe dizer onde os Bots se encaixam no pipeline DevOps?

Algumas das principais tendências de DevOps são:

  • DevOps assembly lines automation
  • Alertas inteligentes e acionáveis de ferramentas de monitoramento
  • Monitor e infra-estrutura de orquestração
Colaboração aprimorada:

Com o aumento da adoção do DevOps, as organizações enfrentam hoje muitos desafios no ciclo de vida de entrega de serviços de ponta a ponta.

Para aplicativos com configurações de ambiente complexas, a criação, a configuração e a implementação de um novo ambiente é dispendiosa, demorada e propensa a erros.

  • Devido a intervenções manuais, mover/promover o código entre os ambientes envolve riscos e pode causar interrupções.
  • As equipes de desenvolvimento buscam maximizar a mudança escrevendo novos códigos ou aprimorando o código existente, enquanto as equipes de operações procuram minimizar as alterações para acompanhar os principais indicadores de desempenho (KPIs) e os contratos de nível de serviço (SLAs). Essas metas são opostas por natureza e criam uma cultura de culpa entre as equipes de desenvolvimento e operações.
  • As organizações são incapazes de manter o desenvolvimento, o teste e a produção em sincronia devido a falhas no processo e na ferramenta. Um processo manual, não pode colmatar esta lacuna na consistência: assim interrupções na produção são comuns.

Vários mecanismos de colaboração permitem que as equipes trabalhem e aprendam juntas para produzir melhores resultados. A figura abaixo descreve o ciclo de vida de ponta a ponta do DevOps. A colaboração entre as fases é essencial para o sucesso da transformação de DevOps da sua empresa.

O que são ChatOps e Bots?

ChatOps é um termo cunhado pelo GitHub para descrever “colocar ferramentas no meio de uma conversa”. Em um pipeline típico de CI/CD, há várias ferramentas com as quais você interage e que têm funcionalidades variadas, como gerenciamento de código-fonte (SCM), gerenciamento de defeitos, integração contínua, implantação continua e outros. Essas são todas as ferramentas discretas, mas não há nada que as una juntas. É aqui que o ChatOps entra em jogo.

Um bot é a ponte entre a ferramenta de colaboração e as ferramentas DevOps. O bot recebe uma solicitação do usuário na forma de um comando de chat por meio de uma ferramenta de colaboração, analisa a solicitação e executa um conjunto de comandos na ferramenta DevOps de destino.

Os principais componentes do ChatOps e bots são:

Ferramenta de colaboração/aplicativo de bate-papo: esse é o sistema de bate-papo inicial que conecta as várias partes interessadas e permite que elas interajam entre si e os sistemas ao seu redor.

O bot: este é o núcleo do ChatOps. Um bot é a cola entre sua ferramenta de colaboração e seus sistemas. Facilita um canal de comunicação bidirecional onde você pode buscar informações relevantes dos sistemas e agir sobre as suas informações recebidas. Um bot se encaixa entre sua ferramenta de colaboração e as ferramentas de DevOps, por exemplo, Hubot, Lita, ErrBot ou AWS Lex.

Onde os bots se encaixam no pipeline de DevOps:

Os bots podem provar ser um acelerador em vários estágios do pipeline de CI/CD. Abaixo estão os detalhes da integração com várias ferramentas de DevOps em cada fase do ciclo de vida:

  • Planejamento proativo – JIRA
  • Gerenciamento de Requisitos – JIRA
  • Integração Contínua – Jenkins
  • Implantação contínua – Ansible, Chef
  • Monitoramento contínuo – Nagios, Grafana, Splunk
  • Feedback contínuo – JIRA

Um chatbot desempenha um papel importante em reunir as diferentes equipes em uma única sala de bate-papo persistente para fazer a triagem e resolver o problema em questão. Além de solucionar problemas e triagem, os bots podem ser usados para vários outros trabalhos comuns, como:

  • Limpar servidores.Iniciando trabalhos de criação e implantação.
  • Rotating logs do servidor.
  • Aplicativo de integração nas ferramentas de monitoramento.
  • Coletando métricas de ferramentas como o Nagios ou o AppDynamics.
Modelo Técnico de Bot:

Para atingir as metas mencionadas, precisamos ter uma plataforma de bot de suporte em funcionamento. A proximidade das ferramentas com o bot garante a qualidade da implementação e abre novas oportunidades de automação.

Como o diagrama mostra, o chatbot está hospedado em uma ferramenta de chat como o Slack. Isso pode estar na plataforma de nuvem ou em um aplicativo de bate-papo/comunicador existente. O bot é integrado a um banco de dados de referência de pares de valores-chave, que é alimentado com as respostas. A chave pode ser o nome do aplicativo para recuperar dados ou qualquer ID exclusivo que reduza o número de leituras. Uma consulta da chave definida correspondente à chave secundária é executada no banco de dados de resposta e uma resposta é enviada de volta ao chatbot. Dependendo do número de saídas, as consultas podem ser definidas e armazenadas no banco de dados de resposta.

DevOps Bots: Casos de Uso:

Abaixo estão alguns exemplos de casos de uso para bots. Isso inclui o ciclo de vida completo do DevOps.

Planejamento proativo:

Crie novas histórias de usuários em ferramentas de planejamento de sprint e atribua sprints a equipes. Atualize sprints e backlogs de produtos.

Construção e Integração Contínua:

Execute tarefas de construção e relate as estatísticas do trabalho de construção. Realize compilações diárias / noturnas e relate o status da compilação para as equipes relevantes.

Implantação contínua:

Execute trabalhos de implantação e execute implantações em vários ambientes. Reverter implantações em caso de falhas, verificações de status, executar ações pós-implantação, como reinicializações da JVM.

Provisionamento de Infraestrutura e Gerenciamento de Configuração:

Inicie os trabalhos do Chef para provisionar infraestrutura ou provisionar ambientes de aplicativos. Ative o monitoramento e a reinicialização de serviços e servidores.

Monitoramento Contínuo:

Forneça estatísticas de aplicativos ou execute pesquisas de dados diárias e métricas de captura.

Feedback Contínuo:

Monitorar a integridade do aplicativo e executar análises.

Principais métricas de medição:

Para obter otimização e melhorar o desempenho do processo de entrega contínua, a medição métrica é a chave. Esses indicadores ajudarão a tomar certas ações corretivas e preventivas com base nos resultados. Abaixo estão alguns dos principais indicadores de métricas que podem ser medidos.

Redução de Esforço:

Indica a redução de esforços humanos/manuais para tarefas como o acionamento de uma construção ou implementação ou coleta de métricas a partir de ferramentas de monitoramento.

Taxa de Redução de Erro Humano Redução:

do esforço necessário devido a retrabalho causado por erros humanos.

Reduzir:

o tempo de triagem do problema indica o tempo necessário para resolver problemas em que várias partes estão envolvidas e a triagem de problemas é necessária.

Conclusão:

Os bots de DevOps podem melhorar significativamente a eficiência da equipe, bem como a capacidade de uma equipe de responder a emergências. Eles economizam tempo e dinheiro, são divertidos de construir e usar e podem ter um impacto positivo no moral da equipe, além de aumentar a produtividade geral das equipes. Isso se aplica às equipes de engenharia e operações. As empresas que adotam a digitalização buscam parceiros com uma mentalidade de engenharia que saiba como reunir equipes ágeis colaborativas com o mais recente conhecimento de plataformas de código aberto e de ferramentas DevOps.

Fonte: devops.com

Siga os canais da Kumulus nas redes sociais: