Chatops com Chatbot
Chatops: com certeza você já ouviu este termo algumas outras vezes.
E na verdade tudo aqui se trata de comunicação: pessoas, ferramentas, processos, muita automação e transparência!
Sou suspeito em dizer que esse tema, dentro do Universo DevOps não é mais peça opcional há muito tempo, vamos entender o porquê, agora!
O Desafio
Shoow! Temos um grande projeto a ser entregue, e é dos grandes!
Nosso time de desenvolvimento é um time misto em skills e níveis, contamos com Desenvolvedores Junior/Pleno/Senior, Testers, Designers e um arquiteto direcionando o time!
E alguns fatos aleatórios deste time:
- Todos tem acesso aos servidores;
- A comunicação é feita por email;
- As pessoas fazem home office (e também ficam doentes);
- Muitas das atividades nos servers são repetitivas e feitas de forma manual;
- O conhecimento não está ao alcance de todos;
Você também já deve ter pensado... Mas, se DevOps trata de colaboração, trabalho em equipe, interação e feedback rápido, temos grandes lacunas a preencher.
E está correto! Nossa missão agora é viabilizar a comunicação e automação sob tudo que faz o time ser menos produtivo!
Nossa chave agora se chama ChatOps!
Missão DevOps! ChatOps com Chatbot: Integre Mattermost, Jenkins, Gitlab
A Solução Proposta
Neste primeiro overview, vamos explorar algumas possibilidades que podem compor a Solução Proposta.
Messaging Workplace
Precisamos de um 'ponto de encontro', um canal de comunicação aberta, entre todo o time!
Reduzir o uso de emails, facilitar a comunicação e a colaboração.
A ferramena escolhida para desempenhar esta função foi o Mattermost, e nós o veremos na próxima aula.
Ok... O que nós devemos/queremos de ter aqui? Talvez...
- Notificações sobre novos tickets
- Alertas de Infraestrutura?
- Detecção de anomalias?
- Alterações em nosso código fonte?
E vamos um pouco mais além...
Chatbot
Que tal complementarmos nossa solução com um BOT?
Um robô, o que ele poderia fazer pelo time? Que tal...
Deployments?
Nosso bot será um ótimo candidato para interagir com sua ferramenta de deployment.
Sempre tenha em mente que, jamais deve-se por si só, deixar essa responsabilidade com o BOT, e sim com uma ferramenta de entrega adequada. Nosso bot irá se comunicar com essa ferramenta e facilitar a vida dos times.
Estado Atual do Ambiente?
O BOT poderia nos responder perguntas como:
- Quantos servers tenho disponível por ambiente?
- Quais aplicações e versões estão rodando dentro de um server em específico?
- Me mostre as últimas linhas de log da aplicação.
Acesso a arquivos em específico?
Precisa fazer o download de algum arquivo completo de log, ou configuração (caso permitido pela política de segurança) ou algum outro recurso?
Outros temas
O que mais faria sentido ao seu time?
- Marcar reuniões;
- Monitorar algum tópico específico no Twitter;
- Checar a previsão do tempo;
- Bater o ponto;
- Pedir a pizza! :laughing:
Pense nisso...
Porém, sempre tenha em mente que, uma das chaves para o sucesso é começar o mais simples possível e evoluir com a necessidade do time!
Em outras palavras, projetar um Megazord interplanetário para uma equipe que está apenas iniciando, normalmente não é a melhor estratégia, a evolução deve ser direcionada por todos.
E lembre-se sempre: na maioria dos casos, o BOT irá se integrar com outras ferramentas, muita cautela para não delegar ao robô responsabilidades que não lhe pertencem.
Sem mais, acredite, o robô fará parte da equipe, e muitas vezes você terá vontade de levar ele ao happy hour! :robot:
O que NÃO fazer com seu ChatBot em Ambiente ChatOps?
E por último, e não menos importante, vamos bater um papo do que não se deve fazer:
Vamos em frente!