[Перевод] 4 инструмента автоматизации для DevOps, заслуживающих внимания — по версии TechRepublic
Это небольшой обзор по средствам автоматизации и тестирования для инженеров DevOps с портала TechRepublic с целью «сверки часов». Наверняка многие специалисты в командах разработки периодически задаются вопросом, — является ли используемые ими инструменты DevOps и QA современными и лучшими на рынке, не отстали ли они от мировых трендов? Не претендуя на глубину мыслей, —, а в этом Хабр уникален и вне конкуренции, —зарубежные статьи могут попробовать дать ответы на такие вопросы.
Знание (и применение) наиболее функциональных и популярных средств автоматизации и тестирования, принятых в мировой ИТ-индустрии, полезно не только как практический инструментарий, но и как пиар на пресейл-встречах с заказчиками. Когда в рамках подготовки к контракту подрядчик упоминает использование лучших тулов, это показывает профессионализм и компетентность команды и помогает в заключении сделки. Иными словами, создает доверие к опыту и скиллам сотрудников подрядчика и уверенность в том, что команда сможет справиться с ТЗ, дедлайнами, и обеспечить стабильность продукта.
Примечание: Переводная версия статьи была расширена за счет комментария от DevOps специалиста компании SSP SOFT и ссылок на дюжину статей Хабра по практике использования упомянутых в обзоре инструментов.
Полезные средства автоматизации для разработчиков и инженеров DevOps
В этом обзоре будут рассмотрены четыре инструмента автоматизации с точки зрения автора, Энрике Корралеса. Он контрибьютор TechnologyAdvice (группы сайтов, включающей Developer.com, CodeGuru, HTMLGoodies, TechRepublic), и пишет на темы мобильной разработки, фронтенда, управления проектами и DevOps.
Вот эти 4 инструмента, о которых пойдет речь в обзоре:
· Gradle — рекомендуемый выбор для разработчиков, которым нужен быстрый и гибкий инструмент автоматизации сборки билдов с большим комьюнити. Очень известный и давний на рынке инструмент, но по-прежнему популярен.
· Maven — пожалуй, наилучший выбор для разработчиков, которым нужен инструмент автоматизации с открытым исходным кодом, с минимумом затрат на освоение и быстрой установкой. Еще один ветеран рынка, который имеет большое коммьюнити и сегодня.
· Travis CI — этот тул будет хорошим выбором для разработчиков, которым нужен удобный облачный инструмент автоматизации с дружественным интерфейсом.
· Katalon Studio отлично подойдет для новичков как простой в использовании инструмент автоматизации тестирования по типу Low-code, и при этом подходящий для работы с большими и сложными приложениями.
Комментарий Владимира Евсеева, тимлида компании SSP SOFT по продуктам автоматизации из этого обзора:
«В разных странах есть разночтения в том, какие продукты следует относить к средствам автоматизация DevOps. Например, с моей точки зрения, в российских компаниях, занимающихся разработкой ПО, под такую классификацию из обзора относят только Gradle, но не Maven. Причем, и Gradle, и Maven — оба продукта это скорее менеджеры зависимостей, но не тулы автоматизации. Правильнее сравнивать CI инструменты Jenkins, TeamCity, GitLab CI, и это лишь автоматизация поставки. Девопсы автоматизируют свой труд с помощью Ansible, и основна язадача у девопса это подготовить сервер для последующего развертывания сервиса или других инфраструктурных компонентов. Считаю сам список продуктов для обзора зарубежным автором весьма дискуссионным и жду комментариев под статьей».
Gradle
Gradle — это быстрый и гибкий инструмент автоматизации сборки ПО с открытым исходным кодом. К фичам Gradle можно отнести следующий набор возможностей:
Мультипроектные сборки
Кастомизация
Управление зависимостями
Тестирование
Развертывание
Интеграции
Gradle помогает билдить несколько проектов одновременно, что делает его очень полезным для крупных проектов с несколькими разрабатываемыми продуктами. API позволяет настраивать билды в соответствии с потребностями проекта. Этот инструмент автоматизации также управляет зависимостями для поддержки актуальных версий в проекте.
Достоинства Gradle
Вот эти характеристики Gradle делают этот инструмент полезным в DevOps и QA:
Высокая производительность
Наличие бесплатной версии
Гибкость инструментария и возможность его кастомизации.
Gradle считается довольно быстрым билдером по сравнению с другими инструментами автоматизации сборки. Его бесплатная версия во многом удовлетворяет потребности индивидуальных разработчиков, в том числе по поддерживаемым языкам программирования и платформам.
Минусы Gradle
У широких возможностей Gradle есть и обратная сторона в виде некоторых недостатков:
Сложность в применении
Требование опыта и технических навыков у пользователей
Не подходит для новичков.
Притчей во языцех стала обширная документация Gradle, которая является несомненным плюсом продукта, но устанавливает довольно высокий порог для освоения этого инструмента.
Ценовая политика Gradle
Пользователям предлагается версия Gradle Enterprise в двух вариантах (см. pricing plans):
На бесплатном плане доступны неограниченное число сканирований сборок, визуальная временная шкала сборок, данные о производительности, график зависимостей, пользовательские значения, теги, данные о среде, данные о поведении тестов и расширенный консольный журнал.
Корпоративный план Core предлагает управление узлами распределенного кэша, контроль доступа, анализ кросс-сборок, агрегирование сбоев сборок, комплексные метрики сбоев, Enterprise REST API и многое другое.
На странице ценовой политики Gradle также предлагаются расширения инструментария для удовлетворения дополнительных потребностей в производительности, таких как распределение тестов, аналитика отказов при тестировании и предиктивный выбор тестов.
На Хабре о Gradle
Статей о Gradle на Хабре довольно много, у этой темы даже есть собственный хаб (тематический раздел на ресурсе), что само по себе говорит о значимости и популярности продукта в ИТ-коммьюнити. Вот только некоторые из этих статей:
· Не бойтесь использовать Gradle
«В Gradle можно погрузиться, достичь просветления и творить чудеса», — из комментариев к статье.
· Gradle для тестировщика
Здесь про автоматизацию тестирования для джавийного стека от разработчика с 10-летним опытом.
· Как проверить наличие обновлений зависимостей в Gradle?
Разработчикам приходится поддерживать зоопарк библиотек в проектах. Когда каждая новая библиотека добавляет работы по поиску, обновлению и миграции библиотек на новые версии, то поиск обновлений можно автоматизировать.
Сайт по продукту: https://gradle.com
Maven
Apache Maven — это инструмент автоматизации сборки с открытым исходным кодом, лидирующий по популярности в категории open-source. Созданный более 20 лет назад для Java-разработчиков, Maven и сегодня является популярным DevOps-инструментом, используемым Agile-командами разработчиков. Благодаря способности помогать в сборке, возможностям публикации и развертывании нескольких проектов одновременно, функциям управления зависимостями и релизами и многим другим, Maven занял достойное место в этом обзоре.
Функциональные возможности Maven
К числу особенностей, делающих Maven популярным средством автоматизации DevOps, относятся:
Высокая производительность
Простота расширения функциональных возможностей
Работа в минимальных конфигурациях
Билды на основе моделей (Model-based builds)
Документация
Управление зависимостями и релизами.
Maven повышает производительность инженеров DevOps, позволяя разработчикам быстро приступать к работе над новыми проектами и модулями, а также одновременно работать над несколькими проектами. Программа автоматизации легко расширяется с помощью подключаемых модулей, написанных на Java или скриптовых языках, а также обширного репозитория библиотек и метаданных.
При появлении новых возможностей у продукта, пользователям не придется беспокоиться о трудоемкой настройке Maven. Кроме того, поддерживается возможность сборки на основе моделей и быстро генерируемой документации, построенной на основе метаданных, что экономит время для проекта. Наконец, Maven предлагает управление зависимостями (переходные зависимости, задачи Ant, автоматическое обновление и т.д.) и управление релизами.
Достоинства Maven
Разработчики и инженеры DevOps ценят Maven за следующие достоинства:
Open-source
Дружественность к пользователю
Целостность процессов
Генерация документации
Поскольку Maven имеет открытый исходный код, разработчики могут использовать его бесплатно, что является отличной новостью, — особенно, если у команды ограниченный бюджет. Инструмент прост в использовании и настройке, последователен, так как использует стандартизированный подход, позволяющий легко тиражировать будущие процессы, и обеспечивает создание документации без лишних хлопот.
Минусы Maven
Как и у всякого продукта, у Maven есть определенные недостатки:
Не подходит для новичков.
Ограниченная документация по продукту
Медленная работа на некоторых процессах.·
Несмотря на то, что Maven удобен в использовании, он может оказаться непригодным для новичков, не знакомых с конфигурациями и терминологией процессов автоматизации и т.д. По мнению Энрике Корралеса, часть пользователей жалуется на недостаток документации и огрехи поддержки, а также есть претензии к производительности при работе со сложными проектами.
Ценовая политика Maven
Поскольку Maven является инструментом DevOps с открытым исходным кодом, разработчики могут пользоваться им бесплатно. Однако дополнительные расширения и плагины являются, как правило, платными.
На Хабре о Maven
В комментариях к статьям о Maven пользователи часто спорят о плюсах и минусах продукта. Вот характерные комментарии:
— «Maven даёт чёткую структуру и правила, не позволяет писать внутри себя скрипты (без откровенных костылей), всё описывается декларативно. Конфиги Maven может поддерживать и изменять любой программист в команде, там не образуется легаси».
— «У maven (перед Gradle) есть единственное преимущество… оно выражается в принципе: безобразно, зато единообразно».
На Хабре большая история статей о Maven, а самые ранние датируются аж 2008 годом. Пройдитесь поиском по ресурсу, чтобы познакомиться с мнением авторов по этому продукту. Вот некоторые статьи, которые показались особенно интересными:
· Gradle в сравнении с Maven: Производительность, совместимость, сборка и многое другое
Размер вашего проекта, потребность в кастомизации и некоторые другие переменные могут помочь вам сделать выбор.
· Введение в Maven от Balaji Varnasi и Sudha Belida (перевод)
Статья 2018 года по мотивам перевода книги «Introducing Maven» с кучей полезностей для новичков, однако многие вещи с тех заметно изменились.
· Релизим проект на Java с Maven на новый лад
Как одно из нововведений, Maven привнес стандартную систему версионности. Версия хранилась в файле проекта и изменялась всякий раз, когда выпускали новый релиз. Со временем, версионность Maven стала доставлять больше проблем, чем преимуществ — в статье предлагается, как это поправить.
Сайт продукта: Maven — Welcome to Apache Maven
Travis CI
Автоматизированные средства CI/CD обеспечивают разработчикам управление версиями, необходимое для релиза готовых продуктов. Travis CI как раз из них, он ускоряет процесс развертывания для разработчиков программного обеспечения за счет быстрого поиска ошибок. Система ревизий позволяет командам разработчиков ПО легко находить нужные сегменты кода и файлы репозитория. Если ваши процессы CI/CD нуждаются в улучшении, используйте Travis CI для оптимизации вашего процесса разработки.
Если давать определение продукту, то Travis CI — это простой в обслуживании облачный CI/CD-инструмент с автоматизацией буквально по одной команде, поддерживающий более 30 языков кодирования. Еще одно определение: Travis CI — это сервис continuous integration для проектов на GitHub.
Функциональные возможности Travis CI
К основным возможностям Travis CI, обеспечившим его популярность в сообществе DevOps, относятся:
Поддержка множества языков программирования
Тестирование в нескольких средах.
Автоматизация по одной команде
Интеграция со сторонними разработчиками
Автоматизированная проверка качества кода.
Мультиязычная матрица сборки Travis CI поддерживает более 30 языков программирования. Разработчики могут запускать и тестировать одновременно в разных средах, а также автоматизировать задачи по проверке, интеграции и развертыванию с помощью одной команды. Этот DevOps-инструмент интегрируется с популярными сторонними инструментами разработчиков, такими как Slack, Perforce, Docker и т.д., а также имеет функцию, позволяющую отлавливать сбои и ошибки в коде буквально на «автопилоте».
Достоинства Travis CI
К достоинствам Travis CI относятся:
Простота использования
Возможность облачного хостинга
Минимальный код
Поддержка множества языков программирования.
Разработчики, которым нужен инструмент автоматизации, не требующий специфических знаний и скиллов, как раз и найдут его в лице Travis CI. Благодаря облачному хостингу, разработчики могут пользоваться функциями Travis CI с минимальными затратами времени и усилий на настройку инструмента.
Кроме того, Travis CI содержит гораздо меньше собственного кода (примерно на треть меньше), чем конкурирующие инструменты и является достаточно гибким благодаря поддержке более 30 языков.
Минусы Travis CI
Облачный хостинг диктует свои правила продаж, поэтому минусы Travis CI в основном связаны с этим моментом:
Отсутствие бесплатного плана подписки.
Высокая стоимость для малого бизнеса и индивидуальных разработчиков.
Поддержка клиентов, работа которой вызывает нарекания.
Низкобюджетные команды разработчиков могут отказаться от использования Travis CI в связи с отсутствием бесплатного тарифного плана. Кроме того, стоимость инструмента для разработчиков слишком быстро увеличивается по мере роста потребности в дополнительных одновременных заданиях. Пользователи также жалуются на медленное реагирование службы поддержки на их проблемы с продуктом.
Ценовая политика Travis CI
Стоимость подписки на Travis CI зависит от выбора облачного или более дорогого корпоративного варианта. В свою очередь, облачная подписка может оплачиваться помесячно или на год, что также влияет на цену. На момент написания статьи цены на облачные решения при годовой подписке были следующие:
Bootstrap: 64 долл. в месяц (одно одновременное задание)
Стартап: 119 долл. в месяц (два параллельных задания)
Малый бизнес: 229 долл. в месяц (пять одновременных заданий)
Premium: 449 долл. в месяц (10 одновременных заданий)
Platinum: от 729 долл. в месяц (до 300 одновременных заданий).
Стоит добавить, что любой облачный тарифный план предоставляет неограниченное число репозиториев, коллабораторов и минут для сборки, а также бесплатную пробную версию. Выбрав тарифный план Enterprise, вы заплатите 34 долл. за 1 пользователя в месяц и сможете разместить Travis CI на on-premises сервере или в своем частном облаке. План Enterprise предлагает премиум-поддержку, Subversion и Perforce CI/CD.
Travis CI на Хабре
Работа с Travis CI периодически освещается в статьях на Хабре, но таких публикаций заметно меньше, чем по инструментам Maven и Gradle. Более того, на Хабре не наблюдается свежих публикаций, что наводит на мысль о невысокой популярности продукта у русскоязычных разработчиков.
Скорее всего, свою роль в распространенности Travis CI играет отсутствие бесплатной версии. А еще облачный хостинг чреват утечкой сведений о пользователях в открытый доступ. Вот некоторые из статей, показавшихся весьма достойными:
· Как настроить Travis CI для проекта .NET Core + PostgreSQL
Публикация о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL.
· Travis CI: автоматическая загрузка собранных модулей на GitHub
Описание процесса автоматической сборки приложения в Travis CI на примере Андроид-приложения.
· Обнаружена утечка данных Travis CI в период с 3 по 10 сентября 2021
Уязвимость Travis CI привела к перехвату злоумышленниками таких данных защищенной среды, как токены API, ключи для подписи и сведения из учетных записей.
Сайт продукта: https://travis-ci.com
Katalon Studio
Katalon Studio является Low-code инструментом для автоматизации тестирования, который отличается простотой использовании и интуитивно понятным интерфейсом. Он особенно привлекает тех пользователей, кто не обладает глубокими знаниями в области программирования, чтобы создавать автоматизированные тестовые сценарии. Опытные пользователи также найдут немало преимуществ, применяя Katalon Studio.
Katalon Studio используется для автоматизации тестирования API, веб-приложений, мобильных и настольных приложений с большим числом функций и может запускаться на платформах Windows, macOS и Linux.
Примечание при переводе. Не совсем понятно, почему Энрике Корралес включил Katalon Studio в список средств автоматизации DevOps, так как продукт скорее относится к категории инструментария QA. Собственно, именно в обзорах по автоматизированному тестированию Katalon Studio и упоминается в числе лучших продуктов. Но, поскольку у нас перевод, то последуем за автором.
Функциональные возможности Katalon Studio
К числу полезных фугкциональных возможностей Katalon Studio относятся:
Тестирование, управляемое данными (Data-driven testing)
Тестирование по ключевым словам (Keyword-driven testing)
Тестирование API
Самовосстанавливающиеся тесты
Запись/воспроизведение тестирования
Отчеты.
Katalon Studio позволяет разработчикам автоматизировать тесты с различными наборами данных. Это особенно ценно для тестирования приложений, работающих с конфиденциальными данными. Программа автоматизации также поддерживает тестирование по ключевым словам, что позволяет разработчикам создавать многократно используемые тестовые сценарии для нескольких приложений.
Тестирование API удобно для проверки работы внутренних приложений и сервисов, и в случае обнаружения ошибочно функционирующих тестов Katalon автоматически их исправит. Для создания автоматизированных тестов Katalon Studio записывает и воспроизводит действия пользователей в приложениях, а также предлагает подробную отчетность в качестве помощи для устранения неполадок.
Достоинства Katalon Studio
К плюсам Katalon Studio относятся:
Наличие бесплатной версии.
Low-code UX
Дружественный пользовательский интерфейс
Поддержка нескольких сред.
Бесплатная версия программы является преимуществом для команд, имеющих ограниченный бюджет, и при этом продукт уже имеет базовые возможности автоматизации тестирования. Low-code подход делает Katalon Studio удобным для новичков, а интерфейс прост в навигации и удобен для пользователя. Еще одним плюсом является то, что программа автоматизации работает в различных средах (Windows, macOS, Google Chrome, Firefox, Android, iOS и т.д.).
Минусы Katalon Studio
Среди недостатков Katalon пользователи называют следующие:
Недостаточная производительность (прим. перевода: что неудивительно для Low-Code приложений)
Медленная поддержка
Высокие требования к памяти для on-premises компьютеров.
Некоторые пользователи жалуются, что производительность Katalon Studio оставляет желать лучшего, а сам инструмент автоматизации может иногда тормозить или зависать. Отмечается медленное реагирование службы поддержки. Поскольку компания Katalon является относительно новой и имеет небольшое коммьюнити, вероятность того, что коллеги быстро помогут, остается невелика. Кроме того, приложение для настольных компьютеров может занимать много памяти при загрузке или выполнении тестов.
Ценовая политика Katalon Studio
Katalon Studio имеет три ценовых плана:
Free: бесплатно базовая автоматизация тестирования для новичков и небольших команд
Enterprise: 2000 долл. в год (167 в месяц)
Ultimate: индивидуальное ценообразование.
В тарифном плане Free предлагается автоматизация тестирования мобильных, веб-, API- и настольных приложений. Enterprise добавляет отладку, пользовательские отчеты и расширенное тестирование API. А в Ultimate добавляется круглосуточная поддержка и персональный менеджер по внедрению.
Katalon Studio на Хабре
Katalon Studio не очень часто упоминается на Хабре, и в основном это случается в обзорах, посвященных тестированию приложений.
· Каталон в студию
Публикация об опыте автоматизации тестирования веб-приложения с помощью Katalon Studio
· Лучшие инструменты для тестирования API в 2023 году
Автоматизированное тестирование API особенно полезно при Agile с ее короткими циклами разработки, что повышает необходимость постоянного тестирования промежуточных сборок.
· Топ 10 инструментов автоматизации тестирования 2023
В области тестирования ПО инструменты автоматизации, безусловно, играют ключевую роль. В статье кратко описываются наиболее популярные инструменты и фреймворки для автоматизации тестирования, применение которых поможет компаниям идти в ногу с тенденциями в отрасли.
Сайт продукта: https://katalon.com
4 инструмента автоматизации — какой выбрать?
Для пользователей из России наиболее привлекательным выбором, несомненно, являются продукты open-source (Maven), или имеющие бесплатные версии (Gradle, Katalon Studio). Проверка «на санкционность» показала, что на момент подготовки публикации сайты всех
4-х вендоров открывались с российского IP-адреса (хотя это может измениться). Иными словами, бесплатные версии получить пока можно. И да, речь не идет о проверке доступности покупки версий уровня Enterprise или Premium, т.к. здесь к политике вендора добавляются ограничения на проведение платежей.
К числу полезных функций, на которые следует обращать внимание в программном обеспечении для автоматизации, относятся управление конфигурацией, отчетность, управление рабочими процессами, CI/CD, мониторинг, оркестровка, поддержка контроля версий и надежная защита. Также следует обратить внимание на наличие большого количества сторонних интеграций с популярными инструментами разработчика для расширения функциональности, если это необходимо, и поддержку используемых языков программирования.
Автор перевода будет признателен за конструктивные комментарии к статье и вашему участию в опросе об использовании продуктов из обзора в ваших компаниях. Думаю, всем будет интересно посмотреть на результаты голосования коллег по профессии.