Статьи

Введение в ChatOps: Devops встречает IM

Эта статья спонсируется VictorOps . Спасибо за поддержку спонсоров, которые делают возможным SitePoint!

Разработчики часто используют электронную почту в качестве основного способа общения. Будь то оповещения о простоях, 500 ошибок или фиксации в репозитории — все они перенаправляются на вашу учетную запись электронной почты, так что все можно найти в одном месте.

Но электронная почта не совсем подходит для такого рода задач. Электронная почта затрудняет общение в реальном времени, и разговоры могут легко стать громоздкими, с большими задержками и отсутствием непосредственности, особенно когда вы общаетесь с людьми в разных часовых поясах.

Чат, с другой стороны, предлагает более быстрый способ решения проблемы. Вы можете видеть, кто находится в сети в определенный момент, вы можете делиться информацией с несколькими людьми, чтобы быстро получать отзывы, и вы даже можете выполнять действия прямо из клиента чата, посредством интеграции с такими сервисами, как Hit GubHub.

Мы прошли долгий путь со времен Yahoo, AOL и Microsoft Messenger. Чат больше не просто текстовое взаимодействие между двумя людьми — оно превратилось в нечто большее, что-то продуктивное .

Эта статья расскажет о новой тенденции использования ChatOps, обрисовывает в общих чертах некоторые популярные способы использования чата в настройках devops, а затем расскажет, как можно продвинуть ваши ChatOps с помощью расширенных интеграций с VictorOps .

Давай поговорим

Популярный в GitHub, ChatOps ставит инструменты в центр разговора. Поскольку группы разработчиков часто распространяются по всему миру, существует необходимость в централизованной системе связи, которая также автоматизирует определенные процессы, такие как непрерывное развертывание. GitHub начал тенденцию со своим ботом, Hubot .

В индустрии высоких технологий используется множество популярных приложений чата. Недавно я писал об использовании Slack для совместной работы на рабочем месте , но HipChat также популярен. Большинство лучших клиентов чата предлагают прямой обмен сообщениями, несколько каналов для различных предметов или областей, а также расширенные возможности обмена файлами и интеграции.

Эти приложения способны изменить мир к циклу разработки. Существуют различные инструменты и команды на основе чата для различных задач, таких как запуск новых экземпляров виртуальных машин, отправка информационных бюллетеней или развертывание кода на вашем главном сервере. Традиционно каждая из этих задач включает в себя работу с различными инструментами, но с помощью программируемых ботов чата эти задачи могут быть выполнены с помощью простых команд, запускаемых в приложении чата.

Представьте, что вы подключаетесь к Amazon Web Services для запуска экземпляров с помощью одной команды чата или развертываете свой последний коммит на сервере с помощью интеграции GitHub. Или как проверить количество посетителей вашего сайта через систему аналитики? Возможно, вы просто счастливы проверить прогресс своей команды через Trello или Asana в своем приложении чата?

ChatOps может повысить эффективность вашей команды, экономя время, которое иначе было бы потрачено впустую на избыточные процессы.

Стандартное приложение чата, безусловно, полезно для улучшения взаимодействия с разработчиками. Но когда дело доходит до того, чтобы помочь командам разработчиков управлять инцидентами, интеграция с платформой оповещения по вызову и управления, такой как VictorOps , еще лучше.

VictorOps и радости быть «по вызову»

Концепция присутствия по вызову заимствована из области медицины. Врачи и медсестры должны быть доступны в любое время для управления чрезвычайными ситуациями, поэтому они часто следуют за реестром, чтобы быть уверенным, что кто-то всегда на палубе. Точно так же в мире разработчиков может произойти ошибка или простои вашего сайта или службы, когда вы спите, особенно с услугами пользователей в разных часовых поясах. До сих пор у вас, вероятно, был назначен член команды для обработки таких ошибок, и они получали оповещения по электронной почте, когда что-то пошло не так.

VictorOps стремится сделать этот процесс немного более элегантным, предоставляя централизованную систему для решения проблем в реальном времени, общения с членами команды и последующего изучения того, что пошло не так, как только кризис прошел.

Домашняя страница VictorOps

Давайте посмотрим, как VictorOps управляет кризисным управлением и отправляет исходящие уведомления и входящие оповещения, прежде чем мы поговорим о том, как интегрировать сервис с существующим приложением чата HipChat.

Отчет об ошибках в VictorOps

Если вы назначили кого-то по вызову для определенного сайта или приложения в VictorOps, инциденты также будут отображаться на временной шкале VictorOps следующим образом:

Отчет об инциденте

Электронное письмо также отправляется заинтересованной стороне.

Инцидент по электронной почте

Если вы не будете доступны, сотрудник может взять на себя обязанности по вызову за вас. Когда вы вернетесь на борт, вы можете забрать их обратно. Бот VictorOps Victor, с которым вы будете официально представлены позже, объясняет это довольно хорошо, когда вам впервые дают тур.

Объяснение бота VictorOps

Если вы не удовлетворены только тем, что электронное письмо было отправлено кому-то при создании инцидента, не разочаровывайтесь. VictorOps поддерживает веб-хуки, которые позволяют выполнять пользовательские действия с помощью обратного вызова из VictorOps.

Исходящие уведомления — Webhooks

Возможно, вы привыкли к веб-зацепкам, особенно если вы знакомы с непрерывной интеграцией . С помощью webhooks вы можете указать обратный вызов из приложения VictorOps, когда об инциденте сообщается другому приложению. Этот обратный вызов может использоваться для выполнения различных функций — запуска или остановки процесса на сервере, отправки писем, создания страницы состояния или чего-либо еще, что приходит вам в голову.

POST запрос отправляется из VictorOps в ваше приложение, содержащее инцидент, сводку и сообщение. Он идентифицируется и аутентифицируется HTTP-заголовком X-Victorops-Signature .

Например, если вы запускаете приложение, написанное на ядре PHP, и возникает ошибка MySQL, трассировка ошибки может отображаться на веб-странице. Вы можете избежать этого, используя webhook, который временно показывает страницу с ошибкой, пока вы решаете проблему.

Чтобы узнать больше об использовании веб-хуков, перейдите к документации , в которой подробно описаны этапы генерации и аутентификации.

Входящие оповещения — конечные точки REST

Теперь вы знаете, как работают веб-зацепки, что если вы захотите обратить вспять поток информации и рассказать о чем-нибудь VictorOps ? Это где конечные точки REST входят в картину.

VictorOps принимает оповещения из любого источника через HTTPS запрос. Вы можете создавать оповещения, используя эти запросы.

Подробнее о конечных точках REST и руководстве по настройке интеграции VictorOps .

Интеграция HipChat с VictorOps

Теперь у вас есть некоторые сведения о том, что VictorOps может делать из коробки, давайте посмотрим, как интегрировать его в существующее приложение чата.

VictorOps в настоящее время обеспечивает простую интеграцию с HipChat, хотя интеграция с Slack также ожидается в ближайшее время. Эта интеграция связывает вашу временную шкалу VictorOps с определенной комнатой чата на HipChat. Все, что размещено на HipChat, немедленно передается в VictorOps, и наоборот.

Чтобы настроить интеграцию HipChat, вам нужно всего лишь выполнить несколько простых шагов.

  • В вашей интеграции VictorOps включите интеграцию HipChat для создания уникального URL. Вы можете выбрать типы сообщений для отправки и как они должны отображаться в настройках
  • В настройках HipChat выберите комнату чата для интеграции и добавьте созданный URL-адрес в качестве новой частной интеграции.

Это действительно так просто. Как только вы закончите с этим, сообщения на HipChat передаются в VictorOps и наоборот. Вы можете управлять временной шкалой VictorOps из вашего любимого приложения чата, объединяя функции обоих. Подробное руководство со скриншотами по интеграции смотрите в документации VictorOps .

Давайте проверим это. Вот я отправляю сообщение на HipChat.

Сообщение на HipChat

Перейдите к VictorOps, чтобы увидеть эффект.

VictorOps получает сообщение HipChat

Давайте попробуем обратное, я опубликую сообщение на временной шкале VictorOps.

Размещение на VictorOps

И там это на HipChat.

HipChat получает сообщение VictorOps

Вы никогда не пропустите ничего, независимо от того, какое приложение у вас открыто!

Интеграция Hubot

Личность виктора

Хотя VictorOps предоставляет чат-бота @victor , который довольно дружелюбен и помогает вам настроить вещи в первый раз, вы, возможно, захотите перенести собственный Hubot из GitHub на шкалу времени VictorOps, для некоторой расширенной функциональности и некоторого удовольствия.

Для этого вам необходимо следовать инструкциям по настройке Hubot , а затем интегрировать VictorOps в Hubot. Грубо говоря, вам нужно будет выполнить следующие шаги (при условии, что у вас уже установлен NodeJS).

  • Установите генератор Hubot от GitHub.

     npm install -g yo generator-hubot 
  • Установите hubot в его собственную директорию на вашем сервере.

     yo hubot 

Установка Hubot

  • Добавьте адаптер VictorOps к зависимостям Hubot, отредактировав файл package.json и запустив npm install .

     ... "dependencies": { "hubot-victorops": ">=0.0.2", ... } ... 
  • Получите ключ VictorOps с панели мониторинга VictorOps в разделе интеграции ( https://portal.victorops.com/dash/your-company-slug/#/advanced ).

  • Запустите Hubot, используя адаптер VictorOps с ключом.

     HUBOT_VICTOROPS_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx bin/hubot --adapter victorops 

Запуск ключа адаптера Hubot

Как только он будет запущен, вы можете использовать его в своем графике! Для производства рассмотрите возможность сохранения HUBOT_VICTOROPS_KEY в качестве переменной среды. Если вам нужна пользовательская функциональность, вы можете создавать свои скрипты в CoffeeScript в каталоге scripts . Базовый пример предоставляется по умолчанию для вашей справки.

Вы можете начать с основной команды справки, которая поможет вам увидеть список, который вы можете использовать, чтобы опробовать несколько разных вещей. Включая некоторые менее продуктивные виды деятельности!

Hubot в лучшем виде

Беда с Hubot

Последние мысли

ChatOps предлагает множество преимуществ по сравнению с традиционными методами общения. Мы предоставили вам базовый обзор концепции, советы по ее распространению в вашей организации и руководство по дальнейшему развитию с помощью платформы оповещения и управления по вызову VictorOps и Hubot, расширенного (а иногда и вредного!) Чата. бот.

Если вы хотите получить больше информации о ChatOps, VictorOps проведет живой вебинар « ChatOps Unplugged », на котором они познакомятся с ChatOps, объяснят преимущества ChatOps, приведут конкретные примеры того, что можно сделать, инструменты, которые вы можете использовать чтобы выполнить их (в том числе Hubot), и как начать.