И снова здравствуйте! В феврале OTUS запускает новый курс «CI/CD на AWS, Azure и Gitlab». В преддверии старта курса подготовили перевод полезного материала.





Полноценный набор DevOps инструментов, мессенджер с открытым исходным кодом и ChatOps – как тут не влюбиться?

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

Почему GitLab


В экосистеме с экспоненциально растущим выбором и сложностью, GitLab предоставляет полноценную DevOps платформу с открытым исходным кодом, которая может ускорить цикл разработки, снизить затраты на нее и повысить эффективность разработчиков. От планирования и кода до развертывания и мониторинга (и в обратную сторону), GitLab объединяет множество разноплановых инструментов в один открытый набор.

Почему Mattermost ChatOps


В Mattermost мы большие поклонники GitLab, именно поэтому Mattermost поставляется вместе с GitLab Omnibus и мы работаем, чтобы быть уверенными, что Mattermost легко запускается вместе с GitLab.

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

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

Mattermost + GitLab


Полноценный набор DevOps инструментов, мессенджер с открытым исходным кодом и ChatOps – как тут не влюбиться? С помощью GitLab и Mattermost разработчики могут не только упростить свой DevOps-процесс, но и перенести его в тот же интерфейс чата, где члены команд обсуждают проблемы, кооперируются и принимают решения.

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

Itk использует GitLab и Mattermost для своевременной доставки кода и увличивает количество развертываний на продакшен за год в шесть раз
Itk располагающаяся в Монпелье, Франция, разрабатывает инструменты и приложения, которые помогают фермерам оптимизировать процессы сбора урожая, повышать его качество и эффективнее управлять рисками.

Они начали пользоваться GitLab примерно в 2014 году и в основном использовали устаревший инструмент чата для ежедневной работы, обмена сообщениями и видеозвонков. Однако, по мере роста компании, этот инструмент не масштабировался вместе с ними; не было постоянно хранящихся, легко находимых сообщений, и работа в команде становилась все труднее. Так они начали поиски альтернативы.

Вскоре после этого они обнаружили, что пакет GitLab Omnibus поставляется вместе с открытой платформой обмена сообщениями: Mattermost. Им сразу же полюбился простой функционал совместного использования кода, включая автоматическую подсветку синтаксиса и полную поддержку Markdown, а также легкость обмена знаниями, поиск по сообщениям и совместная работа всей команды над идеями для разработки новых решений, интегрированных с GitLab.

До перехода на Mattermost члены команды не могли с легкостью получать уведомления о процессе разработки. Но им хотелось иметь возможность визуально отслеживать проекты, мерджить request’ы и производить другие действия в GitLab.

Именно тогда Ромен Манески, разработчик из itk, начал писать плагин GitLab для Mattermost, который в дальнейшем позволил его команде подписываться на уведомления GitLab в Mattermost и получать уведомления о новых issue и запросах на ревью в одном месте.

На сегодняшний день плагин поддерживает:

  • Ежедневные напоминания, чтобы получать информацию о том, какие issue и merge request’ы требуют вашего внимания;
  • Уведомления – чтобы получать уведомления от Mattermost, когда кто-то упоминает вас, отправляет вам запрос на ревью или перенаправляет вам issue на GitLab.
  • Кнопки боковой панели – будьте в курсе того, сколько ревью, непрочитанных сообщений, назначений и открытых merge request’ов у вас есть на данный момент с помощью кнопок на боковой панели Mattermost.
  • Подписки на проекты – используйте команды со слешем, чтобы подписываться на важные каналы для получения уведомлений о новых merge request’ах или issue в GitLab.

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



Компания по разработке программного обеспечения повышает производительность за счет большей прозрачности и наглядности изменений в коде и конфигурации

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

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

Они также объединили GitLab и Mattermost, собрав коммиты с GitLab в один канал в Mattermost через webhooks, что позволило руководству получать представление о том, что происходит в компании в определенный день «с высоты птичьего полета». Также были добавлены обновления для управления конфигурациями и контролем версий, с помощью которых можно было получать снапшот различных изменений, внесенных во внутреннюю инфраструктуру и системы в течение дня.

Команда также настроила отдельные каналы “Heartbeat” для отправки уведомлений о событиях приложения. Отправляя такие сообщения в определенные каналы Heartbeat, вы можете не отвлекать членов команд от рабочих разговоров в обычных каналах, позволяя членам команды отдельно переключаться на вопросы, опубликованные в каналах Heartbeat.

Одним из ключевых преимуществ этой интеграции является прозрачность изменений в различных версиях и управление конфигурацией в режиме реального времени. Как только изменения коммитятся и пушатся, в канал Heartbeat в режиме реального времени отправляется уведомление. На такой канал может подписаться любой желающий. Больше никаких переключений между приложениями, лишних вопросов членам команды или отслеживания коммитов – теперь все это сосредоточено в Mattermost, в то время как управление конфигурированием и разработка приложений ведется в GitLab.

GitLab и Mattermost ChatOps повышают наглядность и производительность для ускорения разработки

Mattermost поставляется в составе пакета GitLab Omnibus, обеспечивающего готовую поддержку GitLab SSO, предварительно упакованные интеграции GitLab и поддержку PostgreSQL, а также интеграцию с Prometheus, которая позволяет осуществлять мониторинг систем и управление мерами реагирования на инциденты. Наконец, Mattermost теперь можно развернуть с помощью GitLab Cloud Native.

У команд DevOps до этого момента еще никогда не было лучшего инструмента с теми преимуществами, что есть у ChatOps. Установите GitLab Omnibus с Mattermost и попробуйте сами!

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