DevOps-инструменты, которые должен изучить каждый в 2020 году

Начни применять лучшие DevOps-инструменты уже сегодня!

DevOps-инструменты, которые должен изучить каждый в 2020 году
DevOps-революция наконец захватила мир, и DevOps-инструменты стали невероятно популярны. По данным сервиса Google Trends, количество запросов «DevOps tools» постоянно растет, и эта тенденция сохраняется.

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

Разобьем DevOps-инструменты на категории и сравним с аналогами:

  • инструменты разработки и сборки
  • инструменты для автоматизации тестирования
  • инструменты для организации деплоя
  • Runtime-инструменты
  • инструменты для совместной работы.

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

Инструменты разработки и сборки

DevOps-инструменты, которые должен изучить каждый в 2020 году
Это основа стека CI/CD-пайплайна. Всё начинается именно здесь! Лучшие инструменты в этой категории могут управлять несколькими потоками событий и легко интегрироваться с другими продуктами.

На этом этапе жизненного цикла разработки выделяют три группы инструментов:

  • система управления версиями (SCM)
  • непрерывная интеграция (CI)
  • управление данными (Data management)

В 2020 г. GIT зарекомендовал себя только с положительной стороны, поэтому ваш SCM-инструмент должен иметь безупречную поддержку для GIT. Для CI обязательное условие — способность выполнять и запускать сборки в изолированной контейнерной среде. Что касается управления данными, здесь требуется возможность вносить изменения в схему базы данных и поддерживать БД в соответствии с версией приложения.

Инструмент SCM + CI №1

Победитель: GitLab и GitLab-CI

DevOps-инструменты, которые должен изучить каждый в 2020 году
Лучший инструмент цикла DevOps 2020 г., вне всякого сомнения, GitLab, и он точно останется лидером инноваций в ближайшем будущем.

Основная функция GitLab — обеспечивать комфортное управление Git-репозиторием. Веб-интерфейс интуитивно понятен и удобен в использовании. GitLab предоставляет всё, что нужно, в бесплатной версии и поставляется как SaaS и on-prem (использование собственных ресурсов для размещения программного обеспечения).

Ни один другой SCM-инструмент не использовал непрерывную интеграцию (CI) непосредственно в вашем репозитории, а GitLab это делает уже долгое время. Чтобы использовать GitLab-CI, вы должны добавить файл .gitlab-ci.yml в корневой каталог исходного кода, и любые изменения в проекте будут запускать действия на основе того, что именно вы указали. GitLab и GitLab-CI заслуженно признаны лидерами в области непрерывной интеграции (CI-as-code).

Ключевые преимущества

  • Надежность — Продукт существует на рынке с 2013 г.; стабилен; хорошо поддерживается.
  • Открытый исходный код — Бесплатная версия GitLab не ограничивает основные функциональные возможности, которые необходимы командам разработки. Платные пакеты услуг предоставляют дополнительные полезные функции для компаний различных размеров и потребностей.
  • Engrained CI — Ни один другой инструмент на рынке не встроил непрерывную интеграцию непосредственно в SCM, как GitLab-CI. Использование Docker обеспечивает беспроблемную изолированную сборку, а встроенные отчеты упрощают ее отладку (дебаггинг). Нам не требуется сложная интеграция и управление несколькими инструментами одновременно.
  • Неограниченные интеграции — GitLab обеспечивает простую интеграцию всех необходимых DevOps-инструментов. Благодаря этому команды разработки и сопровождения пользуются единым источником информации об их приложении в любом из окружений.

Конкуренты

Участвовали в схватке, но не победили

В этой категории есть и другие популярные инструменты, однако они не так хороши, как GitLab. И вот почему:

GitHub — Это отличная SaaS-система управления версиями для небольших фирм и начальных стадий разработки. Для крупных компаний, которым важно держать IP-адреса в собственной сети, единственным решением GitHub стала виртуальная машина .OVA без поддержки систем высокой доступности. Это затрудняет обслуживание on-prem, к тому же, .OVA подойдет только для предприятий среднего бизнеса, иначе при бóльшей нагрузке сервер просто упадет. Отсутствие GitHub Actions (до недавнего времени и пока еще не в on-prem версии) или CI-as-code означает, что вам нужно выбрать отдельный инструмент CI и затем управлять этой интеграцией. Наконец, GitHub намного дороже, чем любая из версий GitLab.

Jenkins — Хотя Jenkins по умолчанию считается стандартом среди инструментов непрерывной интеграции, ему всегда недоставало возможности управления версиями. Получается, что вы используете Jenkins плюс какой-то SCM-инструмент. Слишком сложно, когда GitLab умеет и то и другое. Посредственный UX-дизайн не годится для современного веб-приложения и оставляет желать лучшего.

BitBucket / Bamboo — Должен признать его автоматически проигравшим: зачем два инструмента, когда GitLab выполняет всё полностью самостоятельно. BitBucket Cloud поддерживает функционал GitLab-CI / GitHub Action, но ни одна компания более крупная, чем стартап, не сумеет легко его внедрить. Сервер BitBucket версии on-prem даже не поддерживает BitBucket-пайплайны!

Инструмент управления данными №1

Победитель: FlywayDB

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

Ключевые преимущества

  • Версионность баз данных — Flyway позволяет создавать версии баз данных, отслеживать миграции баз данных, легко переносить или возвращать изменения схемы без дополнительного инструмента для этого.
  • Бинарный или встроенный — Мы можем выбрать: запускать Flyway как часть приложения или как бинарный исполняемый файл. Flyway проверяет совместимость версий при старте и запускает соответствующие миграции, поддерживая синхронизацию версий баз данных и приложений. Выполняя команду cmd line ad-hoc, мы обеспечиваем гибкость для существующих баз данных без перестройки всего приложения.

Конкуренты

Участвовали в схватке, но не победили

В этой области не так много инструментов. Давайте рассмотрим некоторые из них:

LiquiBase — Liquibase напоминает FlywayDB. Я бы хотел настроить его поверх Flyway, если бы в моей команде был специалист с бóльшим опытом работы с Liquibase.

Flocker — Может работать только для контейнерных приложений. Для успешного запуска баз данных в контейнерах все должно быть идеально спланировано. Я рекомендую использовать RDS (Relational Database Service) для баз данных и не советую хранить важную информацию в контейнере.

Инструменты для автоматизации тестирования

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

Пирамида тестирования (тестов) имеет 4 уровня:

  • Юнит-тесты — Это основа всего процесса автоматизированного тестирования. Юнит-тестов должно быть больше в сравнении с другими видами тестов. Разработчики пишут и запускают юнит-тесты, чтобы убедиться, что часть приложения (известная как «юнит») соответствует своей конструкции и ведет себя как положено.
  • Компонентные тесты — Основная цель тестирования компонента — проверить поведение ввода / вывода объекта тестирования. Мы должны убедиться, что функциональность тестового объекта реализована правильно согласно спецификации.
  • Интеграционные тесты — Вид тестирования, при котором отдельные программные модули объединяются и тестируются как группа.
  • Сквозные тесты — Этот этап не нуждается в пояснениях. Мы наблюдаем за работой всего приложения и делаем так, чтобы оно функционировало, как было запланировано.

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

Инструмент для интеграционного тестирования №1

Победитель: Cucumber

DevOps-инструменты, которые должен изучить каждый в 2020 году
Cucumber объединяет спецификации и тестовую документацию в единый живой документ. Спецификации всегда актуальны, так как они автоматически тестируются Cucumber. Если вы хотите собрать фреймворк для автоматизированного тестирования с нуля и моделировать поведение пользователя в веб-приложении, то Selenium WebDriver с Java и Cucumber BDD — отличный способ изучить и внедрить Cucumber в проекте.

Ключевые преимущества

  • BDD-подход (Behavior Driven Development — “разработка через поведение” в отличие от подхода “разработка через тестирование”) — Cucumber предназначен для BDD-тестирования, он изначально создавался именно для этой задачи.
  • Живая документация — Документация — это всегда боль! Поскольку ваши тесты описаны как код, Cucumber тестирует автоматически генерируемую документацию, чтобы убедиться, что тесты и документация синхронизированы.
  • Поддержка — Мы можем выбирать из множества инструментов, но именно Cucumber обладает необходимыми финансовыми ресурсами и хорошо организованной системой поддержки, чтобы помочь пользователям в любой сложной ситуации.

Конкуренты

Участвовали в схватке, но не победили

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

Инструменты сквозного тестирования

При проведении сквозного тестирования необходимо сосредоточиться на двух ключевых моментах:

  • функциональное тестирование
  • нагрузочное тестирование.

При функциональном тестировании мы проверяем, всё ли, что мы хотим, на самом деле происходит. Например, когда я нажимаю на определенные элементы моего SPA (одностраничного приложения), заполняю формы и выбираю «Отправить», данные появляются в БД, и на экране возникает сообщение «Успех!»

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

Отсутствие этих 2 видов тестирования будет существенным недостатком в вашем CI/CD-пайплайне.

Инструмент сквозного тестирования №1. Функциональное тестирование

Победитель: SoapUI Pro

DevOps-инструменты, которые должен изучить каждый в 2020 году
SoapUI долгое время находился в области тестирования API, поскольку веб-сервисы на основе SOAP были стандартом. Хотя мы больше не создаем новые SOAP-сервисы, и название инструмента не изменилось, это не значит, что он не развивался. SoapUI предоставляет отличную основу для создания автоматизированных функциональных бэкенд-тестов. Тесты можно легко объединить с инструментами непрерывной интеграции и использовать как часть CI/CD-пайплайна.

Ключевые преимущества

  • Подробная документация — SoapUI присутствует на рынке уже достаточно долго, поэтому создано множество онлайн-ресурсов, которые помогут понять, как настроить тесты.
  • Простота использования — Хотя инструмент поддерживает несколько протоколов для тестирования API, наличие в SoapUI общего интерфейса для нескольких сервисов, делает написание тестов проще.

Конкуренты

Участвовали в схватке, но не победили

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

Инструмент сквозного тестирования №1. Нагрузочное тестирование

Победитель: LoadRunner

DevOps-инструменты, которые должен изучить каждый в 2020 году
Пояснение: Когда приходит время для нагрузочного тестирования каждого элемента приложения, только LoadRunner может выполнить эту задачу. Да, дороговато и первое время сложно, но LoadRunner — единственный инструмент, который дает мне как техническому архитектору полную уверенность, что новый код будет работать в условиях экстремальной нагрузки. Кроме того, я думаю, что LoadRunner пора передать в ответственность команды разработки, а не команды тестирования.

Ключевые преимущества

  • Обширная документация — LoadRunner существует на рынке достаточно давно, поэтому создано множество онлайн-ресурсов, которые помогут понять, как настроить нагрузочные тесты.
  • Поддержка протоколов — Load Runner поддерживает от ODBC до AJAX, HTTPS и любой другой нетривиальный протокол, который ваше приложение может использовать. Мы стараемся не использовать несколько инструментов для нагрузочного тестирования, так как это только усложняет процесс.

Конкуренты

Участвовали в схватке, но не победили

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

Инструменты для деплоя

DevOps-инструменты, которые должен изучить каждый в 2020 году
Инструменты для деплоя, вероятно, наименее понятный аспект разработки. Для команды сопровождения (operation team) без глубокого понимания кода и функционала приложения сложно использовать подобные инструменты. Для разработчиков управление деплоем — новая обязанность, поэтому у них еще недостаточно опыта в работе с подобными инструментами.

Прежде всего, разделим все инструменты развертывания на три подкатегории:

  • управление артефактами
  • управление конфигурациями
  • деплой.

Инструмент управления артефактами №1

Победитель: Nexus

DevOps-инструменты, которые должен изучить каждый в 2020 году
Репозиторий артефактов Nexus поддерживает практически все основные технологии: от Java до NPM и Docker. Мы можем использовать этот инструмент для хранения всех используемых артефактов. Проксирование удаленных менеджеров пакетов также значительно ускоряет процесс сборок CI, делая пакеты доступнее для сборки. Другое преимущество — возможность получить полное представление обо всех пакетах, используемых в нескольких программных проектах, блокируя небезопасные open source пакеты (они могут выступать вектором атаки).

Ключевые преимущества

  • Техническая поддержка — Надежный продукт; хорошо поддерживается.
  • Открытый исходный код — Бесплатная версия не ограничивает основные функциональные возможности, которые нужны командам разработчиков.

Инструмент управления конфигурациями №1

Победитель: Ansible

Ansible является лидером по одной простой причине: отсутствие состояния (stateless). Ранее подобные инструменты были сосредоточены на управлении состоянием конфигурации. При запуске, такой инструмент, получив желаемую конфигурацию, будет пытаться исправить текущую конфигурацию приложения. А при новом подходе присутствуют только компоненты с отсутствием состояния. Новые версии кода являются артефактами, которые разворачивают для замены существующих. Это можно считать неким эфемерным, краткосрочным окружением.

Ключевые преимущества

  • Отсутствие состояния (stateless) — Playbook запускается с машины для деплоя и выполняется на целевых серверах. Я не беспокоюсь о состоянии удаленного (remote) объекта, благодаря использованию такого инструмента, как Packer, для создания развертываемых объектов.
  • Открытый исходный код — Как и CentOS, Ansible также поддерживается компанией RedHat. Она помогает сохранять сообщество и обеспечивает высококачественные, простые в использовании модули.
  • Тестирование с Molecule (фреймворк для Ansible) — Поскольку управление конфигурациями — это код, как и всё остальное, здесь не обойтись без тестирования. Фреймворк Molecule для тестирования ролей Ansible работает безупречно, гарантируя, что конфигурация так же качественна и соответствует тому же CI/CD-пайплайну, что и код приложения.
  • YAML — По сравнению с другими инструментами, с YAML легче разобраться. Поскольку управление конфигурациями, как правило, является новой задачей для тех, кто внедряет DevOps-практики, простота — его козырь.

Конкуренты

Участвовали в схватке, но не победили

OpsCode Chef — Я начинал карьеру в DevOps как разработчик cookbook. Ruby и Chef, конечно, очень дороги моему сердцу, но они просто не решают проблемы современных stateless, облачных приложений. OpsCode Chef — отличный инструмент для более традиционных приложений, а в этой статье мы сосредоточены на будущем.

Puppet — Puppet никогда не имел много поклонников, особенно в сравнении с Chef и Ansible. Он отлично подходит для провизионирования и работы с «железом», но современная поддержка управления конфигурациями для веб-приложения в нем отсутствует.

Инструмент для деплоя №1

Победитель: Terraform

DevOps-инструменты, которые должен изучить каждый в 2020 году
Terraform решает проблему описания вашей инфраструктуры как кода: начиная с сетевых компонентов и заканчивая полноценными образами сервера. Этот продукт прошел долгий путь с момента первого выпуска: создано огромное количество плагинов и выработано такое сильное сообщество, что вам точно помогут при любом сценарии развертывания. Способность поддерживать любой тип окружения (локально, в облаке или где-то еще) не имеет равных. Наконец, последняя версия предоставляет большую часть тех же логических функций и классов в HCL, что и любой другой традиционный язык программирования, — разработчики быстро схватывают суть и с легкостью могут освоить Terraform.

Ключевые преимущества

  • Независимость от окружения — Terraform использует функции, которые служат интерфейсом между вашим кодом Terraform, всеми API и внутренней логикой для связи с поставщиком инфраструктуры. Это значит, что я освою всего один инструмент и затем могу работать, где угодно.
  • Открытый исходный код — Сложно победить бесплатные инструменты! Поддержка сообщества на высшем уровне.

Конкуренты

Участвовали в схватке, но не победили

AWS CloudFormation — Даже если вы работаете только в облачной среде AWS, на следующем месте работы может применяться другой инструмент. Посвятить всё время и силы только одной платформе — недальновидное решение. Кроме того, многие новые сервисы AWS часто доступны в виде модулей Terraform прежде, чем они станут доступны в CloudFormation.

Runtime-инструменты

DevOps-инструменты, которые должен изучить каждый в 2020 году

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

Подкатегории Runtime-инструментов:

  • X-как-сервис (XaaS)
  • оркестрация
  • мониторинг
  • логирование.

Инструмент X-как-сервис №1

Победитель: Amazon Web Services

DevOps-инструменты, которые должен изучить каждый в 2020 году
Amazon всегда был лидером в облачных технологиях, но он не останавливается на этом: от разнообразия новых сервисов для разработчиков разбегаются глаза. Перенесите любую технологию и шаблон в AWS, и они будут собраны и запущены. Стоимость инструмента вполне обоснована: сравните ее со сборкой, управлением и обслуживанием оборудования в собственном дата-центре. Бесплатная версия позволяет экспериментировать и принять правильное решение до траты денег.

Ключевые преимущества

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

Конкуренты

Участвовали в схватке, но не победили

Azure — Azure прошел долгий путь с первого выпуска, и это похвально. Тем не менее желание отличаться от аналогов привело к странным названиям сервисов, что часто усложняет работу. Что значит «blob storage»? И, хотя код .NET работает лучше в экосистеме Microsoft, маловероятно, что вы будете использовать только .NET для каждого компонента своего приложения.

Heroku — Я бы никогда не запустил ничего кроме личного проекта на Heroku из-за низкого уровня надежности и прозрачности, поэтому компаниям не стоит использовать его в качестве платформы. Heroku отлично подходит для демонстрации чего-то в блоге, но для практического применения — “Нет, спасибо!”.

Инструмент оркестрации № 1

Победитель: OpenShift

DevOps-инструменты, которые должен изучить каждый в 2020 году
Вы, вероятно, используете Docker или другие контейнеры в вашем стеке приложений. Бессерверные приложения хороши, но они не могут подходить любой архитектуре. Запуск контейнеров без платформы оркестрации просто не сработает. Ядро Kubernetes (K8s) не имеет соперников с точки зрения безопасности и инструментария. OpenShift — единственная платформа на основе Kubernetes, которая умеет собирать Source2Image, поддерживает автоматизацию развертывания в поды, а также отслеживание и мониторинг. OpenShift может быть запущен on-prem, в облаке или on-prem и в облаке одновременно.

Ключевые преимущества

  • Встроенная система безопасности — Для управления безопасностью K8s может потребоваться научная степень. Необходимо тщательно продумать и учесть каждую деталь! Механизмы безопасности, созданные по умолчанию с помощью OpenShift, забирают лишнюю нагрузку у разработчиков и обеспечивают более безопасную платформу для приложений.
  • Решение «всё в одном» — В отличие от базового K8s, который по умолчанию не включает инструменты балансировки нагрузки, в OpenShift есть всё. Я могу использовать его для создания и размещения контейнеров, запуска инструментов CI/CD, управления внешними процессами, управления ключами и многое другое. Хотя графический интерфейс пользователя по-прежнему далек от совершенства, подход, основанный на API, означает, что все может быть описано в скрипте. В отличие от других графических интерфейсов для K8s, OpenShift значительно упрощает изучение основ Kubernetes. Даже не нужно получать ученую степень!

Конкуренты

Участвовали в схватке, но не победили

Docker Swarm — Docker Swarm попытался упростить K8s, избавившись от многих вещей. Он отлично подходит для небольших приложений, но для корпоративных приложений просто не работает. Кроме того, такие решения, как AWS ECS, используют аналогичный подход, но облегчают работу с другими сервисами, с которыми я также могу взаимодействовать (Lambda, IAM и др.).

Инструмент мониторинга №1

Победитель: New Reliс

DevOps-инструменты, которые должен изучить каждый в 2020 году
Ранние релизы New Relic хорошо справлялись с одной задачей — мониторинг APM (Application Performance Monitoring). Сейчас это полнофункциональный инструмент мониторинга, позволяющий контролировать производительность сервера, контейнера, базы данных, мониторинг опыта конечного пользователя и, конечно, мониторинг производительности приложений.

Ключевые преимущества

  • Простота в использовании — Когда я работал системным инженером, я использовал множество инструментов мониторинга, но никогда не сталкивался с таким простым и удобным в использовании, как New Relic. Это SaaS, поэтому его не нужно устанавливать у себя.
  • Сквозная видимость — Другие инструменты пытаются отслеживать один конкретный элемент вашего приложения. Например, метрика использования процессора или сетевого трафика, но всё это необходимо отслеживать комплексно, чтобы приложение работало корректно. New Relic предоставляет возможность объединить все данные, чтобы получить исчерпывающее представление о происходящем.

Конкуренты

Участвовали в схватке, но не победили

Zabbix — Моя первая и любимая система мониторинга, но она осталась в прошлом из-за отсутствия развития в облачных технологиях и в области мониторинга производительности приложений APM. Zabbix по-прежнему хорошо выполняет традиционный мониторинг серверной инфраструктуры, однако на этом всё.

DataDog — Слишком сильно ориентирован на процесс управления продакшн-окружением приложения, а не на сам код. С DevOps-командами, в которых участвуют разработчики, нам не нужно полагаться на сложные в использовании инструменты для обеспечения первоклассной поддержки.

Инструмент логирования №1

Победитель: Splunk

DevOps-инструменты, которые должен изучить каждый в 2020 году
С Splunk сложно соперничать! Долгое время он остается лидером в логировании, продолжая делать это лучше всех. С предложениями on-prem и SaaS вы можете использовать Splunk, где угодно. Существенный недостаток — его цена: Splunk по-прежнему чертовски дорогой!

Ключевые преимущества

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

Конкуренты

Участвовали в схватке, но не победили

ELK Stack (ElasticSearch, LogStash и Kibana) — Эти инструменты кажутся фаворитами, ведь вам даже не нужно продавать печень за их использование. Однако с ростом набора логов и с увеличением количества приложений на борту работа становится всё сложнее. По сравнению с Splunk, с ELK Stack я потратил гораздо больше времени на настройку инструментария перед созданием каких-либо дашбордов, чем когда-либо.

Инструменты для совместной работы

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

Подкатегории инструментов для совместной работы:

  • отслеживание задач
  • ChatOps
  • документация.

Инструмент отслеживания проблем №1

Победитель: Jira

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

Ключевые преимущества

  • Популярность — Как и многие другие инструменты, Jira используется практически везде. Небольшие команды используют дешевую, более доступную версию и получают всё необходимое, а крупные компании могут позволить лицензию подороже.
  • Интеграции — Jira — родоначальник в своей области. Этот факт и быстрое развитие продукта приводит к тому, что остальные компании выбирают Jira для создания собственных интеграций, таким образом, увеличивая ценность инструмента. Мы можем интегрировать Jira со всеми инструментами, перечисленными в этой статье, из коробки с небольшой настройкой.

Конкуренты

Участвовали в схватке, но не победили

Trello — Trello быстро завоевал популярность благодаря бесплатному инструменту Kanban. Однако, как только процессы масштабируются и вы переходите от десятков задач к тысячам, в Trello трудно ориентироваться, искать и составлять отчеты.

Pivotal Tracker — Я был большим фанатом этого инструмента, когда работал на стартап. Однако Pivotal Tracker больше ориентирован на управление продуктом, а не на технические задачи. Хотя управление продуктом в Jira немного сложнее, но его всё же можно реализовать там, не используя дополнительный инструмент.

ChatOps-инструмент №1

Победитель: MatterMost

DevOps-инструменты, которые должен изучить каждый в 2020 году
Пояснение: Возможно, самый большой сюрприз для вас в моей подборке, и это хорошая новость! MatterMost приобрел популярность, взяв лучшее от предыдущих инструментов, но включил их в on-prem. Для компаний это очень важно: MatterMost позволяет контролировать данные, а также помогает интегрировать их с инструментами, работающими локально. Нам больше не нужно выходить за пределы файрвола, чтобы проверить рабочие чаты.

Ключевые преимущества

  • Открытый исходный код — Версия MatterMost с открытым исходным кодом отлично работает как для средних, так и для больших команд. В отличие от бесплатного тарифа Slack, где удаляется история сообщений, запуск собственного сервера означает, что вы сохраняете все данные.
  • Интеграции — Поскольку API почти на 100% основан на API Slack, почти все интеграции со Slack можно использовать напрямую с MatterMost.

Конкуренты

Участвовали в схватке, но не победили

Slack — Slack крутой, но эти ребята настолько выросли, что начали искать прибыль. Приближается этап окупаемости бизнеса, который забирает их главную ценность: Slack предоставлял услуги бесплатно; наиболее важный недостаток бесплатной версии — удаление истории чата.

Microsoft Teams — Попробуйте интегрировать продукт Microsoft с чем-то, не принадлежащим Microsoft… Желаю удачи! Это всё, что я хочу сказать об этом инструменте!

Инструмент документации №1

Победитель: Confluence

DevOps-инструменты, которые должен изучить каждый в 2020 году
Создание и сохранение качественной технической документации — сложный процесс независимо от используемого вами инструмента. Хотя за последнее время на рынке появилось множество инструментов документации SaaS, однако мне было бы трудно передавать хранение технической документации о критически важных приложениях третьим лицам. Хранить данные и документы предпочтительнее on-prem, и вот как это решает Confluence.

Ключевые преимущества

  • Простота в управлении — Большинство автономных инструментов могут быть немного сложны в настройке и эксплуатации, для их поддержания требуются определенные знания. Сервер Confluence отлично работает из коробки для 10 или 10,000 пользователей.
  • Плагины — Спасибо Confluence за наличие красивой и удобной навигации из коробки, а возможность добавить плагин практически для всего раскрывает потенциал как Wiki.

Конкуренты

Участвовали в схватке, но не победили

Read the docs — Круто для open source, но даже не думайте о хранении критических знаний здесь.

MarkDown — Отлично подходит для документирования кода, но здесь трудно размещать архитектуру, процессы или другие виды документации из-за специфичного форматирования MarkDown.

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

Подведем итоги

На рынке буквально сотни инструментов DevOps, поэтому трудно сориентироваться, какие из них следует использовать и в какой момент они должны быть внедрены. Следуйте этому простому руководству по выбору инструментов DevOps для полного CI/CD-пайплайна.

Не забудьте выбрать инструменты из всех пяти категорий:

  • инструменты для разработки и сборки
  • инструменты для автоматизации тестирования
  • инструменты для деплоя
  • Runtime-инструменты
  • инструменты для совместной работы.

Главная рекомендация: Автоматизируйте всё!

Спасибо Заку Шапиро!

Источник: habr.com

Добавить комментарий