• »
  • »

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

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

За 45 минут наш архитектор разберется в вашей IT-инфраструктуре и даст конкретные рекомендации по улучшению

Что такое DevOps?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мониторинг

Логотип Nagios
Открытая система непрерывного мониторинга компьютерных систем (включая серверы), приложений и сетей. Nagios осуществляет администрирование и контроль состояния систем, а также создает уведомления об отказах систем. С помощью этого решения можно контролировать всю ИТ-инфраструктуру с ведением учета событий.
Логотип Grafana
Это веб-платформа для аналитики и интерактивной визуализации данных мониторинга ИТ-систем, включая приложения и аппаратную часть. Реализована в виде дашбордов (приборных панелей), а также графиков и таблиц. Имеет открытый исходный код. Grafana способна собирать данные из нескольких десятков источников, в том числе из таких систем, как Elasticsearch, Prometheus, InfluxDB, AWS CloudWatch. Позволяет создавать и совместно использовать свои панели инструментов. Благодаря такой широкой функциональности активно применяется в современных стеках.
Интерфейс Grafana
Интерфейс Grafana (Источник)
Логотип Sensu
Это веб-платформа для аналитики и интерактивной визуализации данных мониторинга ИТ-систем, включая приложения и аппаратную часть. Реализована в виде дашбордов (приборных панелей), а также графиков и таблиц. Имеет открытый исходный код. Grafana способна собирать данные из нескольких десятков источников, в том числе из таких систем, как Elasticsearch, Prometheus, InfluxDB, AWS CloudWatch. Позволяет создавать и совместно использовать свои панели инструментов. Благодаря такой широкой функциональности активно применяется в современных стеках.
Использование Sensu
Использование Sensu
Логотип New Relic
Это многофункциональное решение, сочетающее в себе аналитическую SaaS-платформу и инструмент мониторинга, который контролирует производительность серверов, баз данных, контейнеров, а также осуществляет мониторинг производительности приложений (APM) и мониторинг опыта конечного пользователя. Результаты предоставляет в отчетах в виде цветных графиков и диаграмм.
Интерфейс NewRelic
Интерфейс NewRelic (Источник)
Логотип DataDog
Еще одна SaaS-платформа аналитики с инструментарием для мониторинга серверов, баз данных и высоконагруженных облачных приложений. Поддерживает интеграцию со сторонними приложениями и веб-серверами. Результаты мониторинга инфраструктуры визуализирует графики в режиме real-time.
Интерфейс DataDog
Интерфейс DataDog (Источник)
Логотип ELK Stack
ELK Stack — это решение для мониторинга ИТ-инфраструктуры состоит из трех программных компонентов. Elasticsearch — распределенная RESTful-система, сочетающая функции NoSQL-базы данных, поисковой и аналитической систем. Logstash — конвейер по одновременному парсингу логов событий из множества источников ввода и их обработки для использования в Elasticsearch. Kibana — пользовательский интерфейс для работы с логами. Подробнее читайте в нашей статье о ELK.
Elastic Stack
Elastic Stack (Источник)
Логотип Zabbix
Система для традиционного мониторинга серверной инфраструктуры (не развивается в сторону облачных технологий). Веб-интерфейс написан на PHP, для хранения данных решение использует PostgreSQL, MySQL, Oracle Database, SQLite. Клиент-серверная архитектура.
Интерфейс ZABBIX
Интерфейс ZABBIX
Логотип Prometheus
Стандарт мониторинга инфраструктуры с открытым кодом. Решение позволяет быстро настроить и сам процесс мониторинга, и дополнительные инструменты. Prometheus работает почти с любыми системами: серверами, базами данных, виртуальными машинами, распределенной архитектурой, контейнерами. Сбор метрик осуществляется по протоколу HTTP и pull-модели либо по модели push-gateway.
Схема работы Prometheus
Схема работы Prometheus
Логотип PagerDuty
SaaS-платформа отслеживания инцидентов. После обработки событий рассылает уведомления или осуществляет телефонные звонки дежурным в порядке важности инцидентов. Позволяет выставлять нужные настройки и устанавливать порядок дежурств.

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

Логотип Amazon Web Services
Amazon Web Services — один из самых популярных облачных хостингов с обилием инфраструктурных и платформенных услуг по подписке. Настройка инфраструктуры «под ключ», гибкая масштабируемость, бесплатный пробный период.
Логотип Azure
Облачная платформа от Microsoft, также предоставляющая PaaS- и IaaS-услуги по подписке.
Интерфейс Microsoft Azure
Интерфейс Microsoft Azure (Источник)
Логотип Google Cloud Platform
Google Cloud Platform — Еще один популярный Cloud-сервис, на это раз от компании Google. Услуги предоставляются на той же инфраструктуре, которую компания использует для своих высоконагруженных известных продуктов. Помимо платформенных и инфраструктурных услуг имеются инструменты для прикладного программирования.
Продукты Google Cloud Platform
Продукты Google Cloud Platform (Источник)

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

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

Вывод

Для того, чтобы эффективно применять перечисленные решения для автоматизации процессов разработки, важно обладать соответствующими компетенциями уже на этапе их ввода в бизнес-процессы. Вы можете доверить установку этих инструментов девопс-инженерам и архитекторам Git in Sky, у которых большой опыт внедрения методологии DevOps в компании разных масштабов.
Наши клиенты
и реализованные проекты
Git in Sky реализовал 250+ проектов в разных отраслях. Основные группы наших клиентов и кейсы:
Давайте обсудим
ваш проект
Оставьте заявку — наш специалист свяжется с вами для детального обсуждения задачи
Также можете позвонить по номеру
8 800 222 19 68
Читайте также