8º NODESCHOOL
Campinas

Bem vindos ao

Ou converse com a gente depois da talk
Slack: bit.ly/nodeschool-campinas
Palestrar: bit.ly/nodeschool-manda-talks
Seja mentor: bit.ly/nodeschool-seja-mentor



Patrocinadores
Programação
• 18:30 às 19:00 - Conversas iniciais e apresentação
• 19:00 às 20:00 - Talk: ChatOps e ChatBots com Hubot
• 20:00 às 20:30 - Coffee, troca de idéias e micos em público
• 20:30 às 22:00 - Workshops
Workshops
Para iniciantes
- Javascripting
- Learnyounode
Para quem quer se aprofundar
- Elementary-electron
- functional-javascript-workshop
- promise-it-wont-hurt
$ whoami
Victor Perin- Co-Organizador NodeSchool
- Desenvolvedor NodeJS
(e outras tecnologias como PHP e C#) ¯\_(ツ)_/¯ - Apaixonado por tecnologia
- Comunidades > Empresas
- O cara do perfil que nem parece com ele

victorperin.ninja
me@victorperin.ninja

ChatBots e ChatOps com Hubot
- ChatBots
- DevOps
- ChatOps
- Hubot
Essa palestra vai de apresentar conceitos, por isso não iremos nos aprofundar muito.

Bots, Chat Bots, etc
O que é um Chat Bot?







Basic Workflow

Vantagens
- Não precisa baixar
- Mais intimidade com o usuário
- Design de interface já existente
- Divertido
- Memes

Bons exemplos



AceBot.ai
SlackBot
Hubot
DevOps






Exemplo de DevOps

DevOps não é ferramenta,
é uma cultura!
- Não se instala
- Não se compra
- Não se certifica
ChatOps
Automação a partir do chat

De onde veio isso ai?


Workflow básico


Dicas rápidas para ChatOps
- Lembre-se, cultura é SEMPRE o mais importante
- Comece a automatizar tudo o que for possível
- Tornar o bot mais humano e engraçado ajuda muito na adoção
(cuidado para não abusar de mais) - Chama todo mundo pra começar a escreve-lo
- Comece a organizar seus canais/salas de conversa
Hubot
se fala NewBot
Resumo
- NodeJS
- JavaSctript ou CoffeeScript
- Multiplataforma
- Simples e rápido de configurar
- Modularizado por padrão
- Feito pelo GitHub
Estrutura básica

Adaptors
Multiplataforma!!
Oficiais
- Shell
- Campfire
Third-party
- Slack
- Rocket.Chat
- Messenger
- Telegram
- Skype
- Gtalk
- SMS
- etc...
PS: todos são pacotes do NPM
Scripts
module.exports = (robot) => {
robot.hear(/badger/i, res =>
res.send("Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS")
);
robot.respond(/open the pod bay doors/i, res =>
res.reply("I'm afraid I can't let you do that.")
);
robot.hear(/I like pie/i, res =>
res.emote("makes a freshly baked pie")
);
robot.respond(/open the (.*) doors/i, res => {
doorType = res.match[1];
if(doorType == "pod bay")
res.reply("I'm afraid I can't let you do that.");
else
res.reply("Opening #{doorType} doors");
});
robot
.http("https://midnight-train")
.get( (err, res, body) => {
// sua lógica aqui
});
robot.router.post('/hubot/chatsecrets/:room', (req, res) => {
const room = req.params.room;
const data = req.body.payload ? JSON.parse(req.body.payload) : req.body;
const secret = data.secret;
robot.messageRoom(room, "I have a secret: #{secret}");
res.send 'OK';
});
};- Dentro da pasta scripts
- Ordenados por nome
- Conseguem:
- ouvir
- responder
- fazer requests http
- receber requests http
- etc...
- NodeJS
Instalação
$ npm install -g yo generator-hubot
$ mkdir meuhubot
$ cd meuhubot
$ yo hubot
Execução
$ npm install
$ export VARIAVEIS_DO_SEU_ADAPTOR=huehue
$ ./bin/hubot --adaptor={seu adaptor} --name={nome do seu bot, dentro do seu chat}Exemplo
$ npm install
$ export HUBOT_SLACK_TOKEN=xoxb-YOUR-TOKEN-HERE
$ ./bin/hubot --adapter slack --name robo_tope
Dúvidas?
Reclamações?
Sugestões?
me@victorperin.ninja
ou no slack do NodeSchool Campinas
ChatOps e ChatBots Multiplataforma com Hubot
By Victor Perin
ChatOps e ChatBots Multiplataforma com Hubot
- 867