Найти в Дзене
Git in Sky

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

Оглавление

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

Что такое DevOps?

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

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

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

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

-2

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

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

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

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

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

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

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

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

Мониторинг

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

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

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

-3

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

-4

Облачный инструмент для совместной работы над проектами. Позволяет обмениваться сообщениями и файлами. В бесплатной версии история чата удаляется. Есть интеграции с JIRA, GIT, Jenkins, Asterisk.

-5
-6

Популярнейшая онлайн-платформа для видео-конференций. Участников видно в отдельных окнах. Каждый может убрать свое изображение, отключить микрофон. В одну конференцию может добавиться до 1000 человек. Есть чат с обменом файлами. Можно вести запись (с оповещением пользователей). Есть демонстрация экрана. Для бесплатных лицензий — ограничение на конференцию в 40 минут.

-7
-8

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

-9
-10

Еще один популярный инструмент для работы команд над задачами и проектами. Существует в виде web- и мобильного приложений. Имеет три варианта отображения: канбан-доски, списки и хронологические таблицы. Возможность формировать планы проектов. Бесплатно до 15 человек.

-11

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

-12

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

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

Эффективные ветки и метки.

-13

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

-14
-15

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

-16
-17

Web-сервис для облачного хостинга и совместной работы над проектами от Atlassian. Основан на Git и Mercurial. Интеграция с Jira, Jenkins, Bamboo. Встроенный CI/CD. Функциональность аналогична GitHub, но с преимуществом для команд до 5 человек — бесплатное размещение приватных репозиториев.

-18
-19

Открытая система хостинга и комфортного управления Git-репозиториями (публичными и приватными). Конкурент GitHub. Поддерживает полный цикл разработки. Имеет версии SaaS и On-Premise. Использует непрерывную интеграцию (CI) непосредственно в репозитории разработчика, а также совместима с другими известными CI-системами. Имеет свою базу знаний, возможность комментирования задач, CI/CD-пайплайны, возможность анализировать код и функциональность API. GitLab позволяет управлять группами пользователей и разграничением доступа к репозиториям.

-20
-21

Открытая платформа для непрерывного анализа и проверки качества кода по известным стандартам программирования. Решение позволяет внедрить статистический анализ кода и поиск ошибок в процесс разработки ПО. Платформа способна поддерживать разные языки программирования через плагины.

-22
-23

Система для анализирования качества кода и безопасности приложений, написанный с помощью фреймворка Ruby on Rails. Позволяет производить проверку кода и поиск ошибок при помощи командной строки.

-24

Консольный инструмент для распределенного управления версиями объемных репозиториев. Поддерживает децентрализованную работу, ветвление проекта (с копированием изменений) и слияние репозиториев.

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

-25

Скриптовый набор программ с открытым исходным кодом от Apache для автоматизации компилирования, сборки, тестирования и запуска Java-приложений. Поддерживает формат XML.

-26
-27

Решение для автоматизации сборки от Apache. Проект с зависимостями, каталоги и последовательность сборки также описаны в XML-файле. Применяется в большинстве случаев для Java-приложений, однако имеет плагины для интеграции с другими языками: C/C++, PHP, Ruby, Scala и пр. Из особенностей: декларативное описание проекта.

-28
-29

Инструмент для сборки JavaScript-приложений из командной строки. Для автоматизации рутинных операций (модульное тестирование, минификация, компиляция и пр) применяется встроенный менеджер задач. Распространение — под лицензией MIT через менеджер пакетов NPM.

-30
-31

Еще одна популярная система автосборки. Основана на принципах Ant и Maven, но предоставляет DSL не в XML, а на Kotlin и Groovy. Предназначена для многопроектных сборок, поддерживает добавочные сборки и автоматически определяет обновленные части. Собирает статистику об использовании библиотек.

-32

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

-33

Кроссплатформенная открытая клиент-серверная система централизованного управления конфигурациями ОС и ПО, установленных на нескольких компьютерах. Написана на Ruby DSL. Позволяет управлять и настраивать многочисленные серверы, определять и исправлять сбои в инфраструктуре, распознавать зависимости. Поддерживает динамическое масштабирование машин и Iac-концепцию. Имеет более пяти тысяч модулей.

-34

-35

Система управления конфигурациями и автоматизации процессов сборки ПО. Языки: Ruby, Erlang и предметно-ориентированный язык для описания конфигураций. Упрощает настройку и поддержку множества серверов, интегрируется в облака для автоматизации управления текущими настройками серверов. Описания того, как управлять системой и приложениями, установленными в ней, содержатся в «рецептах».

-36

Знаменитая система удаленного управления конфигурациями, лидер рынка. Автоматизирует настройку и развертывание ОС и ПО. Языки: Python и декларативный язык разметки. Основана на IaC-принципах. Поддерживает безагентную модель работы, подключаясь к удаленным виртуальным и выделенным серверам по SSH, WinRM.

-37
-38

Система для удаленного конфигурирования серверов и оркестрации не контейнеризованных приложений. Альтернатива для Ansible. Это открытое ПО, написанное на Python. Поддерживает IaaS-подход в управлении облачными вычислениями. Отличается скоростью работы, для обмена сообщениями использует ZeroMQ и raw tcp.

-39

-40

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

-41
-42

Утилита командной строки для создания виртуальных машин и управления ими с помощью технологии виртуализации. Сокращает время настройки и оптимизации среды с помощью автоматизации процессов. Простая установка, IaC-подход.

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

-43

Популярнейшая в DevOps серверная система для непрерывной интеграции и доставки. Позволяет быстро находить и исправлять баги, автоматически тестировать и запускать сборку. Поддерживает конвейерный принцип сборки и развертывания. Интегрируется с другими инструментами DevOps через множество плагинов. Может устанавливаться через Docker и работать на Windows, Mac OS и Linux, а также в контейнере сервлетов. Написан на Java.

-44

-45

Облачный распределенный веб-сервис для непрерывной интеграции. В качестве хостинга исходного кода использует GitHub. Написан на Ruby. Настраивается через YAML-файл. Бесплатный для проектов с открытым исходным кодом.

-46
-47

Серверное CI/CD-решение для непрерывной интеграции от Atlassian. Может использоваться в облаке и On-Premise. Встроенные рабочие процессы и среда тестирования (Git, Mercurial) позволяют обходиться без сторонних плагинов.

Добавьте описание
Добавьте описание
-49

Серверное ПО от JetBrains, предназначенное для непрерывной интеграции, считается аналогом Jenkins. Позволяет проводить одновременно несколько удаленных сборок, детализируя информацию о процессе. Предотвращает запуск с ошибками, нарушающими сборку кода. Перед коммитом тестирует продукт в разном программном окружении и на разных платформах. Написано на Java, поддерживает платформы на .NET, PHP и Ruby. Есть интеграция со средами разработки Visual Studio, IntelliJ IDEA, Eclipse и множеством плагинов с открытым исходным кодом.

-50
-51

Платформа для непрерывной сборки и непрерывного деплоя. Быстрая настройка сервера сборки с помощью YAML-файла. Система доступна в вариантах Cloud и On-premise.

-52

Веб-инструмент непрерывной интеграции для GitLab, автоматизирующий рутинные задачи при разработке приложений: тестирование, проверку кода, статический анализ, развертывание. Осуществляет интеграцию с использованием образа Docker из Docker Hub и ссылается на любые зависимости, доступные на Docker Hub — это позволяет не устанавливать на сервер Ant, Node.js или Maven.

-53

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

-54

Программа для обеспечения безопасности при использовании в разработке открытого исходного кода. Умеет автоматически проверять зависимости для различных экосистем (Java, JS, PHP, Python, .Net, NPM, jQuery и др) по обширной базе уязвимостей и исправлять найденные уязвимости.

-55
-56

Веб-приложение для автоматизации безопасности. Изучает новый коммит, сканируя его на наличие уязвимостей. Если ошибка найдена — сообщает о ней в систему отслеживания (например, GitHub или Jira) и повторно сканирует после исправления ошибки разработчиком. Интегрируется на каждом этапе SDLC.

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

-57

Инструмент для автоматизации кросс-браузерного тестирования веб-приложений на Java в браузерах и ОС. Открытый исходный код, интеграция с различными DevOps-инструментами: Jenkins, Bamboo, JIRA, ALM, Teamcity. Этот веб-драйвер также применяется для решения рутинных задач администрирования сайта.

-58
-59

Популярный фреймворк для модульного авто-тестирования ПО на Java, который лежит в основе Test-Driven Development. Позволяет запускать и писать повторяющиеся тесты (поддерживает разные аннотации). Есть интеграция с другими известными DevOps-инструментами, например, GIT, Jenkins.

Добавьте описание
Добавьте описание
-61

Тестовая среда с открытым исходным кодом, созданная для Java по мотивам JUnit и NUnit. Можно интегрировать с Selenium, чтобы настраивать и запускать сценарии тестирования. Генерирует отчеты в XSLT и HTML.

Добавьте описание
Добавьте описание

Мониторинг

-63

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

Добавьте описание
Добавьте описание
-65

Это веб-платформа для аналитики и интерактивной визуализации данных мониторинга ИТ-систем, включая приложения и аппаратную часть. Реализована в виде дашбордов (приборных панелей), а также графиков и таблиц. Имеет открытый исходный код. Grafana способна собирать данные из нескольких десятков источников, в том числе из таких систем, как Elasticsearch, Prometheus, InfluxDB, AWS CloudWatch. Позволяет создавать и совместно использовать свои панели инструментов. Благодаря такой широкой функциональности активно применяется в современных стеках.

-66
-67

Это веб-платформа для аналитики и интерактивной визуализации данных мониторинга ИТ-систем, включая приложения и аппаратную часть. Реализована в виде дашбордов (приборных панелей), а также графиков и таблиц. Имеет открытый исходный код. Grafana способна собирать данные из нескольких десятков источников, в том числе из таких систем, как Elasticsearch, Prometheus, InfluxDB, AWS CloudWatch. Позволяет создавать и совместно использовать свои панели инструментов. Благодаря такой широкой функциональности активно применяется в современных стеках.

-68
-69

Это многофункциональное решение, сочетающее в себе аналитическую SaaS-платформу и инструмент мониторинга, который контролирует производительность серверов, баз данных, контейнеров, а также осуществляет мониторинг производительности приложений (APM) и мониторинг опыта конечного пользователя. Результаты предоставляет в отчетах в виде цветных графиков и диаграмм.

-70
-71

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

Добавьте описание
Добавьте описание
-73
-74

Это решение для мониторинга ИТ-инфраструктуры состоит из трех программных компонентов. Elasticsearch — распределенная RESTful-система, сочетающая функции NoSQL-базы данных, поисковой и аналитической систем. Logstash — конвейер по одновременному парсингу логов событий из множества источников ввода и их обработки для использования в Elasticsearch. Kibana — пользовательский интерфейс для работы с логами. Подробнее читайте в нашей статье о ELK.

-75
-76

Система для традиционного мониторинга серверной инфраструктуры (не развивается в сторону облачных технологий). Веб-интерфейс написан на PHP, для хранения данных решение использует PostgreSQL, MySQL, Oracle Database, SQLite. Клиент-серверная архитектура.

-77
-78

Стандарт мониторинга инфраструктуры с открытым кодом. Решение позволяет быстро настроить и сам процесс мониторинга, и дополнительные инструменты. Prometheus работает почти с любыми системами: серверами, базами данных, виртуальными машинами, распределенной архитектурой, контейнерами. Сбор метрик осуществляется по протоколу HTTP и pull-модели либо по модели push-gateway.

-79
-80

SaaS-платформа отслеживания инцидентов. После обработки событий рассылает уведомления или осуществляет телефонные звонки дежурным в порядке важности инцидентов. Позволяет выставлять нужные настройки и устанавливать порядок дежурств.

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

Amazon Web Services — один из самых популярных облачных хостингов с обилием инфраструктурных и платформенных услуг по подписке. Настройка инфраструктуры «под ключ», гибкая масштабируемость, бесплатный пробный период.

-81

Облачная платформа от Microsoft, также предоставляющая PaaS- и IaaS-услуги по подписке.

-82
-83

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

-84

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

-85

Эта платформа контейнеризации с открытым исходным кодом — один из важнейших инструментов DevOps. Позволяет осуществлять распределенную разработку и автоматический запуск приложений с изолированием их в контейнеры, обеспечивая приложениям безопасность и гибкость. Используя Docker, можно «упаковать» приложение в контейнер со всем его окружением и зависимостями. Образы контейнера можно использовать в других системах. Также решение позволяет тестировать продукт в разных средах, упрощать отладку с помощью встроенных отчетов, применяться вместо виртуальных машин.

-86

Знаменитый многофункциональный оркестратор контейнеризированных приложений, стандарт отрасли. Позволяет группировать, автомасштабировать и управлять большим количеством контейнеров, обеспечивая приложениям высокую безопасность. С помощью K8s приложения могут работать на кластере компьютеров, а не на одной машине. Подробнее о решении читайте в наших статьях «Kubernetes для начинающих: как он появился, что умеет и из чего состоит» и «Внедрение Kubernetes – когда это необходимо?».

-87
-88

инструмент контейнеризации, Популярная альтернатива Docker, позволяющая запускать контейнеры в исполняемой среде, совместимой с OCI. Решение было разработано с участием компаний: IBM, Red Hat, Intel, Hyper, SUSE.

-89
-90

Docker Swarm — это решение для кластеризации и объединения в виртуальные хосты контейнеров Docker. Подходит для некрупных приложений. Имеет REST API-интерфейс, совместимый с API Docker, что позволяет использовать его инструменты для работы с кластерами контейнеров без дополнительных сущностей.

-91

Оркестратор контейнерных и неконтейнерных приложений, совместимый с другими представителями стека разработчика HashiCorp — Terraform, Vagrant. Поддерживает работу с Docker, используется в крупных ЦОДах, имеет хорошую документацию.

Вывод

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