Инструменты 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 в компании разных масштабов.

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