Implementación de un bot de ChatOps compatible con varias plataformas de chat para interactuar con un entorno basado en microservicios

Arenas Rodríguez, David (2017). Implementación de un bot de ChatOps compatible con varias plataformas de chat para interactuar con un entorno basado en microservicios. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: Implementación de un bot de ChatOps compatible con varias plataformas de chat para interactuar con un entorno basado en microservicios
Author/s:
  • Arenas Rodríguez, David
Contributor/s:
  • García Martín, Julio
Item Type: Final Project
Degree: Grado en Ingeniería Informática
Date: June 2017
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Lenguajes y Sistemas Informáticos e Ingeniería del Software
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

ChatOps, un término atribuido a GitHub, representa un modelo de desarrollo de software en el que la mayor parte de las operaciones se realizan a través de un chat, donde un equipo se comunica con un bot que interpreta comandos escritos por los usuarios y permite automatizar numerosas tareas del flujo de trabajo. Éstas pueden ser prácticamente cualquier cosa: desde revisión de código, compilación, tests, actualización y despliegue de servicios, hasta avisos, control y asignación de tareas, control de versiones, conexión con servicios de terceros, etc. Los bots más conocidos y usados a día de hoy son Hubot, Lita y Err, y se pueden conectar con servicios de chat como Slack, Campfire, Rocket.Chat, Mattermost… Este proyecto ha consistido en programar desde cero un bot similar a los ya existentes, pero con las siguientes características: -Que sea en Go. -Que sea modular y se pueda extender. -Que sea capaz de conectarse a entornos de microservicios. -Que se puedan ejecutar comandos interactivos (mantener un contexto de conversación con el bot). -Que sea compatible con varios clientes de chat, aunque en el proyecto sólo se implementará un adaptador para un servicio de chat en concreto: Rocket.Chat.---ABSTRACT---ChatOps, a term attributed to GitHub, represents a software development model in which most operations are performed through a chat, where members of a development team communicate with a bot that interprets commands written to it and allows the team to automate several workflow tasks. These can be actually any kind of task, from code review, compilation, testing, updating and deploying services, to notifications, control and assignment of tasks, version control, connection with third party services, etc. The most popular and used bots today are Hubot, Lita and Err, and can be connected with chat services like Slack, Campfire, Rocket.Chat, Mattermost, and others. This project has consisted of programming from scratch a bot similar to the existing ones, but with the following characteristics: -It must be written in Go. -Its design has to be modular and extensible. -It should be able to connect to microservice environments. -It should allow users to run interactive commands (maintain a conversation context with the bot). -It must be compatible with several chat clients, although in this project only one adapter will be implemented for a specific chat service: Rocket.Chat.

More information

Item ID: 47758
DC Identifier: http://oa.upm.es/47758/
OAI Identifier: oai:oa.upm.es:47758
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 14 Sep 2017 11:44
Last Modified: 14 Sep 2017 11:45
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM