Инструменты DevOps: обзор инструментов девопс инженера

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

Что такое DevOps?

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

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

Преимущества DevOps

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

Инструменты DevOps

Инструменты DevOps
Все методы, применяемые в DevOps-культуре, группируются исходя из задач. Они имеют несколько категорий, в каждой из которых — свой набор инструментов. Например, для управления исходным кодом мы подобрали восемь самых популярных инструментов, для непрерывной интеграции — семь. Всего в статье 10 категорий:
  • Планирование и сотрудничество
  • Управление исходным кодом
  • Инструменты для сборки
  • Управление конфигурацией
  • Непрерывная интеграция
  • Непрерывная безопасность
  • Тестирование
  • Мониторинг
  • Облачный хостинг
  • Контейнеризация / Оркестрация

Планирование и сотрудничество

Инструменты DevOps Jira Software
Система управления проектами от Atlassian. Применяется для планирования и оценки задач спринта, а также для отслеживания проекта и ошибок в нем. JIRA — один из стандартов DevOps-инструментария, его используют и крупные организации, и небольшие команды. Совместим с разными продуктами Atlassian и других производителей. Бесплатно до 10 пользователей.
Скрин Jira
Инструмент DevOps Slack
Облачный инструмент для совместной работы над проектами. Позволяет обмениваться сообщениями и файлами. В бесплатной версии история чата удаляется. Есть интеграции с JIRA, GIT, Jenkins, Asterisk.
Скрин Slack
Инструмент DevOps Zoom
Популярнейшая онлайн-платформа для видео-конференций. Участников видно в отдельных окнах. Каждый может убрать свое изображение, отключить микрофон. В одну конференцию может добавиться до 1000 человек. Есть чат с обменом файлами. Можно вести запись (с оповещением пользователей). Есть демонстрация экрана. Для бесплатных лицензий — ограничение на конференцию в 40 минут.
Скрин Zoom
Инструмент DevOps Planview AdaptiveWork
Сложная система управления портфелями проектов и продуктов. Имеет интерактивный интерфейс. Автоматизация создания отчетов и других рутинных действий. Есть чат, а также обмен файлами и ссылками, причем с возможностью их видеть внешним пользователям. Есть функции аналитики, прогнозирования и финансового менеджмента.
Скрин Planview AdaptiveWork
Инструменты DevOps Asana
Еще один популярный инструмент для работы команд над задачами и проектами. Существует в виде web- и мобильного приложений. Имеет три варианта отображения: канбан-доски, списки и хронологические таблицы. Возможность формировать планы проектов. Бесплатно до 15 человек.
Скрин Asana

Управление исходным кодом

Инструменты DevOps SVN
Открытая система управления версиями и контроля исходного кода от Apache. Возможности:

  • Контроль изменений каталогов.
  • Настоящая история версий.
  • Атомарная фиксация изменений.
  • Метаданные с версиями.
  • Единый способ работы с данными.
Эффективные ветки и метки.

Инструменты DevOps Git
Эта распределенная система контроля версий является стандартом индустрии. Поддерживает все современные формы разработки, сохраняет целостность данных. Позволяет отслеживать изменения и проблемы в любых файлах и фиксирует их в форме коммитов. Простой интерфейс.
Скрин Git
Инструменты DevOps GitHub
Популярнейшая SaaS-система контроля версий и размещения проектов. Платформа позволяет создавать функции и запросы, управлять задачами, проверять код, отслеживать изменения и ошибки, контролировать доступ.
Скрин GitHub
Инструменты DevOps Bitbucket
Web-сервис для облачного хостинга и совместной работы над проектами от Atlassian. Основан на Git и Mercurial. Интеграция с Jira, Jenkins, Bamboo. Встроенный CI/CD. Функциональность аналогична GitHub, но с преимуществом для команд до 5 человек — бесплатное размещение приватных репозиториев.
Скрин Bitbucket
Инструменты DevOps GitLab
Открытая система хостинга и комфортного управления Git-репозиториями (публичными и приватными). Конкурент GitHub. Поддерживает полный цикл разработки. Имеет версии SaaS и On-Premise. Использует непрерывную интеграцию (CI) непосредственно в репозитории разработчика, а также совместима с другими известными CI-системами. Имеет свою базу знаний, возможность комментирования задач, CI/CD-пайплайны, возможность анализировать код и функциональность API. GitLab позволяет управлять группами пользователей и разграничением доступа к репозиториям.
Скрин GitLab
Инструменты DevOps SonarQube
Открытая платформа для непрерывного анализа и проверки качества кода по известным стандартам программирования. Решение позволяет внедрить статистический анализ кода и поиск ошибок в процесс разработки ПО. Платформа способна поддерживать разные языки программирования через плагины.
Скрин SonarQube
Инструменты DevOps Code Climate
Система для анализирования качества кода и безопасности приложений, написанный с помощью фреймворка Ruby on Rails. Позволяет производить проверку кода и поиск ошибок при помощи командной строки.
Скрин Code Climate
Инструменты DevOps Mercurial
Консольный инструмент для распределенного управления версиями объемных репозиториев. Поддерживает децентрализованную работу, ветвление проекта (с копированием изменений) и слияние репозиториев.

Инструменты для сборки

Инструменты DevOps Ant
Скриптовый набор программ с открытым исходным кодом от Apache для автоматизации компилирования, сборки, тестирования и запуска Java-приложений. Поддерживает формат XML.
Скрин Ant
Инструменты DevOps Maven
Решение для автоматизации сборки от Apache. Проект с зависимостями, каталоги и последовательность сборки также описаны в XML-файле. Применяется в большинстве случаев для Java-приложений, однако имеет плагины для интеграции с другими языками: C/C++, PHP, Ruby, Scala и пр. Из особенностей: декларативное описание проекта.
Скрин Maven
Инструменты DevOps Grunt
Инструмент для сборки JavaScript-приложений из командной строки. Для автоматизации рутинных операций (модульное тестирование, минификация, компиляция и пр) применяется встроенный менеджер задач. Распространение — под лицензией MIT через менеджер пакетов NPM.
Скрин Grunt
Инструменты DevOps Gradle
Еще одна популярная система автосборки. Основана на принципах Ant и Maven, но предоставляет DSL не в XML, а на Kotlin и Groovy. Предназначена для многопроектных сборок, поддерживает добавочные сборки и автоматически определяет обновленные части. Собирает статистику об использовании библиотек.
Скрин Gradle

Управление конфигурацией

Инструменты DevOps Puppet
Кроссплатформенная открытая клиент-серверная система централизованного управления конфигурациями ОС и ПО, установленных на нескольких компьютерах. Написана на Ruby DSL. Позволяет управлять и настраивать многочисленные серверы, определять и исправлять сбои в инфраструктуре, распознавать зависимости. Поддерживает динамическое масштабирование машин и Iac-концепцию. Имеет более пяти тысяч модулей.
Скрин Puppet
Инструменты DevOps Progress Chef
Система управления конфигурациями и автоматизации процессов сборки ПО. Языки: Ruby, Erlang и предметно-ориентированный язык для описания конфигураций. Упрощает настройку и поддержку множества серверов, интегрируется в облака для автоматизации управления текущими настройками серверов. Описания того, как управлять системой и приложениями, установленными в ней, содержатся в «рецептах».
Инструменты DevOps Ansible
Знаменитая система удаленного управления конфигурациями, лидер рынка. Автоматизирует настройку и развертывание ОС и ПО. Языки: Python и декларативный язык разметки. Основана на IaC-принципах. Поддерживает безагентную модель работы, подключаясь к удаленным виртуальным и выделенным серверам по SSH, WinRM.
Скрин Ansible
Инструменты DevOps SaltStack
Система для удаленного конфигурирования серверов и оркестрации не контейнеризованных приложений. Альтернатива для Ansible. Это открытое ПО, написанное на Python. Поддерживает IaaS-подход в управлении облачными вычислениями. Отличается скоростью работы, для обмена сообщениями использует ZeroMQ и raw tcp.
Скрин SaltStack
Инструменты DevOps Terraform
Открытое ПО для управления внешними ресурсами от HashiCorp. В DevOps чаще всего используется для безопасного и эффективного построения, развертывания и управления версиями облачной ИТ-инфраструктуры. Позволяет определять инфраструктуру в коде, изменять ее и отслеживать изменения. Также позволяет создавать свои решения. Есть бесплатная ограниченная версия (без серверной части).
Скрин Terraform
Инструменты DevOps Vagrant
Утилита командной строки для создания виртуальных машин и управления ими с помощью технологии виртуализации. Сокращает время настройки и оптимизации среды с помощью автоматизации процессов. Простая установка, IaC-подход.

Непрерывная интеграция

Инструменты DevOps Jenkins
Популярнейшая в DevOps серверная система для непрерывной интеграции и доставки. Позволяет быстро находить и исправлять баги, автоматически тестировать и запускать сборку. Поддерживает конвейерный принцип сборки и развертывания. Интегрируется с другими инструментами DevOps через множество плагинов. Может устанавливаться через Docker и работать на Windows, Mac OS и Linux, а также в контейнере сервлетов. Написан на Java.
Скрин Jenkins
Инструменты DevOps Travis CI
Облачный распределенный веб-сервис для непрерывной интеграции. В качестве хостинга исходного кода использует GitHub. Написан на Ruby. Настраивается через YAML-файл. Бесплатный для проектов с открытым исходным кодом.
Скрин Travis CI
Инструменты DevOps Bamboo
Серверное CI/CD-решение для непрерывной интеграции от Atlassian. Может использоваться в облаке и On-Premise. Встроенные рабочие процессы и среда тестирования (Git, Mercurial) позволяют обходиться без сторонних плагинов.
Скрин Bamboo
Инструменты DevOps TeamCity
Серверное ПО от JetBrains, предназначенное для непрерывной интеграции, считается аналогом Jenkins. Позволяет проводить одновременно несколько удаленных сборок, детализируя информацию о процессе. Предотвращает запуск с ошибками, нарушающими сборку кода. Перед коммитом тестирует продукт в разном программном окружении и на разных платформах. Написано на Java, поддерживает платформы на .NET, PHP и Ruby. Есть интеграция со средами разработки Visual Studio, IntelliJ IDEA, Eclipse и множеством плагинов с открытым исходным кодом.
Скрин TeamCity
Инструменты DevOps CircleCI
Платформа для непрерывной сборки и непрерывного деплоя. Быстрая настройка сервера сборки с помощью YAML-файла. Система доступна в вариантах Cloud и On-premise.
Инструменты DevOps GitLab CI
Веб-инструмент непрерывной интеграции для GitLab, автоматизирующий рутинные задачи при разработке приложений: тестирование, проверку кода, статический анализ, развертывание. Осуществляет интеграцию с использованием образа Docker из Docker Hub и ссылается на любые зависимости, доступные на Docker Hub — это позволяет не устанавливать на сервер Ant, Node.js или Maven.
Скрин GitLab CI

Непрерывная безопасность

Инструменты DevOps Snyk
Программа для обеспечения безопасности при использовании в разработке открытого исходного кода. Умеет автоматически проверять зависимости для различных экосистем (Java, JS, PHP, Python, .Net, NPM, jQuery и др) по обширной базе уязвимостей и исправлять найденные уязвимости.
Скрин Snyk
Инструменты DevOps Netsparker
Веб-приложение для автоматизации безопасности. Изучает новый коммит, сканируя его на наличие уязвимостей. Если ошибка найдена — сообщает о ней в систему отслеживания (например, GitHub или Jira) и повторно сканирует после исправления ошибки разработчиком. Интегрируется на каждом этапе SDLC.

Тестирование

Инструменты DevOps Selenium
Инструмент для автоматизации кросс-браузерного тестирования веб-приложений на Java в браузерах и ОС. Открытый исходный код, интеграция с различными DevOps-инструментами: Jenkins, Bamboo, JIRA, ALM, Teamcity. Этот веб-драйвер также применяется для решения рутинных задач администрирования сайта.
Скрин Selenium
Инструменты DevOps JUnit
Популярный фреймворк для модульного авто-тестирования ПО на Java, который лежит в основе Test-Driven Development. Позволяет запускать и писать повторяющиеся тесты (поддерживает разные аннотации). Есть интеграция с другими известными DevOps-инструментами, например, GIT, Jenkins.
Скрин JUnit
Инструменты DevOps TestNG
Тестовая среда с открытым исходным кодом, созданная для Java по мотивам JUnit и NUnit. Можно интегрировать с Selenium, чтобы настраивать и запускать сценарии тестирования. Генерирует отчеты в XSLT и HTML.
Скрин TestNG

Мониторинг

Инструменты DevOps Nagios
Открытая система непрерывного мониторинга компьютерных систем (включая серверы), приложений и сетей. Nagios осуществляет администрирование и контроль состояния систем, а также создает уведомления об отказах систем. С помощью этого решения можно контролировать всю ИТ-инфраструктуру с ведением учета событий.
Скрин Nagios
Инструменты DevOps Grafana
Это веб-платформа для аналитики и интерактивной визуализации данных мониторинга ИТ-систем, включая приложения и аппаратную часть. Реализована в виде дашбордов (приборных панелей), а также графиков и таблиц. Имеет открытый исходный код. Grafana способна собирать данные из нескольких десятков источников, в том числе из таких систем, как Elasticsearch, Prometheus, InfluxDB, AWS CloudWatch. Позволяет создавать и совместно использовать свои панели инструментов. Благодаря такой широкой функциональности активно применяется в современных стеках.
Скрин Grafana
Инструменты DevOps Sensu
Это веб-платформа для аналитики и интерактивной визуализации данных мониторинга ИТ-систем, включая приложения и аппаратную часть. Реализована в виде дашбордов (приборных панелей), а также графиков и таблиц. Имеет открытый исходный код. Grafana способна собирать данные из нескольких десятков источников, в том числе из таких систем, как Elasticsearch, Prometheus, InfluxDB, AWS CloudWatch. Позволяет создавать и совместно использовать свои панели инструментов. Благодаря такой широкой функциональности активно применяется в современных стеках.
Скрин Sensu
Инструменты New Relic
Это многофункциональное решение, сочетающее в себе аналитическую SaaS-платформу и инструмент мониторинга, который контролирует производительность серверов, баз данных, контейнеров, а также осуществляет мониторинг производительности приложений (APM) и мониторинг опыта конечного пользователя. Результаты предоставляет в отчетах в виде цветных графиков и диаграмм.
Скрин New Relic
Инструменты DevOps Datadog
Еще одна SaaS-платформа аналитики с инструментарием для мониторинга серверов, баз данных и высоконагруженных облачных приложений. Поддерживает интеграцию со сторонними приложениями и веб-серверами. Результаты мониторинга инфраструктуры визуализирует графики в режиме real-time.
Скрин Datadog

Инструменты DevOps ELK
Это решение для мониторинга ИТ-инфраструктуры состоит из трех программных компонентов. Elasticsearch — распределенная RESTful-система, сочетающая функции NoSQL-базы данных, поисковой и аналитической систем. Logstash — конвейер по одновременному парсингу логов событий из множества источников ввода и их обработки для использования в Elasticsearch. Kibana — пользовательский интерфейс для работы с логами. Подробнее читайте в нашей статье о ELK.
Скрин ELK
Инструменты DevOps Zabbix
Система для традиционного мониторинга серверной инфраструктуры (не развивается в сторону облачных технологий). Веб-интерфейс написан на PHP, для хранения данных решение использует PostgreSQL, MySQL, Oracle Database, SQLite. Клиент-серверная архитектура.
Скрин Zabbix
Инструменты DevOps Prometheus
Стандарт мониторинга инфраструктуры с открытым кодом. Решение позволяет быстро настроить и сам процесс мониторинга, и дополнительные инструменты. Prometheus работает почти с любыми системами: серверами, базами данных, виртуальными машинами, распределенной архитектурой, контейнерами. Сбор метрик осуществляется по протоколу HTTP и pull-модели либо по модели push-gateway.
Скрин Prometheus
Инструменты DevOps PagerDuty
SaaS-платформа отслеживания инцидентов. После обработки событий рассылает уведомления или осуществляет телефонные звонки дежурным в порядке важности инцидентов. Позволяет выставлять нужные настройки и устанавливать порядок дежурств.

Облачный хостинг

Инструменты DevOps AWS
Amazon Web Services — один из самых популярных облачных хостингов с обилием инфраструктурных и платформенных услуг по подписке. Настройка инфраструктуры «под ключ», гибкая масштабируемость, бесплатный пробный период.
Инструменты DevOps Azure
Облачная платформа от Microsoft, также предоставляющая PaaS- и IaaS-услуги по подписке.
Скрин Azure

Инструменты DevOps GCP
Google Cloud Platform — Еще один популярный Cloud-сервис, на это раз от компании Google. Услуги предоставляются на той же инфраструктуре, которую компания использует для своих высоконагруженных известных продуктов. Помимо платформенных и инфраструктурных услуг имеются инструменты для прикладного программирования.
Скрин GCP

Контейнеризация / Оркестрация

Инструменты DevOps Docker
Эта платформа контейнеризации с открытым исходным кодом — один из важнейших инструментов DevOps. Позволяет осуществлять распределенную разработку и автоматический запуск приложений с изолированием их в контейнеры, обеспечивая приложениям безопасность и гибкость. Используя Docker, можно «упаковать» приложение в контейнер со всем его окружением и зависимостями. Образы контейнера можно использовать в других системах. Также решение позволяет тестировать продукт в разных средах, упрощать отладку с помощью встроенных отчетов, применяться вместо виртуальных машин.
Инструменты DevOps Kubernetes (K8s)
Знаменитый многофункциональный оркестратор контейнеризированных приложений, стандарт отрасли. Позволяет группировать, автомасштабировать и управлять большим количеством контейнеров, обеспечивая приложениям высокую безопасность. С помощью K8s приложения могут работать на кластере компьютеров, а не на одной машине. Подробнее о решении читайте в наших статьях «Kubernetes для начинающих: как он появился, что умеет и из чего состоит» и «Внедрение Kubernetes – когда это необходимо?».
Скрин Kubernetes (K8s)
Инструменты DevOps CRI-O
инструмент контейнеризации,
Популярная альтернатива Docker, позволяющая запускать контейнеры в исполняемой среде, совместимой с OCI. Решение было разработано с участием компаний: IBM, Red Hat, Intel, Hyper, SUSE.
Скрин CRI-O
Инструменты DevOps Swarm
Docker Swarm — это решение для кластеризации и объединения в виртуальные хосты контейнеров Docker. Подходит для некрупных приложений. Имеет REST API-интерфейс, совместимый с API Docker, что позволяет использовать его инструменты для работы с кластерами контейнеров без дополнительных сущностей.
Инструменты DevOps Nomad by HashiCorp
Оркестратор контейнерных и неконтейнерных приложений, совместимый с другими представителями стека разработчика HashiCorp — Terraform, Vagrant. Поддерживает работу с Docker, используется в крупных ЦОДах, имеет хорошую документацию.

Вывод

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

Не пропустите последние новости. Подписывайтесь!