Многие инструменты для DevOps платные, но при достаточной сноровке и желании можно найти немало бесплатных аналогов.

Современная разработка год от года становится сложнее: на смену одним языкам программирования приходят другие, меняются техники написания кода и специфика его использования, свои требования к программистам предъявляют новые области промышленности (Интернет вещей, машинное обучение, робототехника, виртуальная и дополненная реальности) — всё это заставляет инженеров «оставаться в тонусе», занимаясь не только кодированием, но и самообучением. Последнее, к слову, пригодится не только для изучения языков программирования — одними ими программирование не ограничивается, — но и для овладения целыми методологиями и практиками создания кода, которые появились в последнее время — Agile, Scrum, DevOps.

Анжела Стрингфеллоу разместила на сайте Stackify.com подборку программ и инструментов, которые, по её мнению, упростят DevOps-инженерам решение некоторых специфических задач. Вот первая десятка.

Jenkins

Сервер автоматизации с открытым исходным кодом, который используется как DevOps-инструмент для обработки циклических задач. Движок Jenkins хорошо масштабируется, что позволяет бесшовно вносить в код правки и вовремя выявлять возникающие проблемы.

Главные особенности:

  • Jenkins — самодостаточная Java-программа, которая готова к работе с Windows, Mac OS X и другими Unix-подобными ОС прямо «из коробки»;
  • бесшовная интеграция и непрерывная поставка кода;
  • простая установка, лёгкость конфигурирования при помощи веб-интерфейса;
  • центр обновления программы включает несколько сотен дополнительных плагинов, расширяющих её возможности.

Стоимость: бесплатно

Vagrant

За разработкой этого решения стоит компания HashiCorp. По сути, Vagrant — это комплекс решений, состоящий из программ Packer, Terraform, Vault, Nomad и Consul, который позволяет предприятиям и организациям развернуть в защищённой среде инфраструктуру для любых приложений. В частности, Vagrant пригодится командам разработчиков для создания и последующей настройки облегчённых, устойчивых и легкопереносимых сред разработки. Среди других его достоинств — простота организации рабочих процессов; плюс к этому Vagrant обладает встроенными инструментами автоматизации, что высвобождает командам дополнительное время на организацию и настройку сред разработки.

Главные особенности:

  • установка Vagrant не требует особой сноровки и осуществляется в несколько кликов. Список поддерживаемых систем: Mac OS X, Windows и популярные Linux-дистрибутивы;
  • вместо ISO-образов программа позволяет хранить образ системы в так называемых боксах. Vagrant — это что-то вроде обёртки над системой виртуализации. Для её работы часто используют VirtualBox, но драйвера есть и для VMware, и даже для Amazon EC2;
  • тестирование отдельных приложений, запускаемых в синтетической среде, далекой от реального окружения. Изменения параметров ОЗУ и CPU для виртуальных машин на лету;
  • Vagrant синхронизирует каталог проекта с каталогом внутри виртуальной машины. Не нужно заботиться об обновлении версий файлов внутри нее — все происходит автоматически. Управление окружением производится с помощью минимального набора команд. В самом простом случае работа с Vagrant сводится к двум командам: vagrant up (запуск) и vagrant halt (остановка);
  • упрощенное клонирование одинаковых рабочих окружений.

Стоимость: бесплатно

Nagios

Программа стала едва ли не промышленным стандартом для мониторинга ИТ-инфраструктуры. При помощи Nagios DevOps-команда сможет выявлять и устранять проблемы подключения к сети, а также контролировать состояние вычислительных узлов и служб, оповещая администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу. Первоначально Nagios была разработана для работы под Linux, но она также хорошо работает и с другими ОС, такими как Solaris, FreeBSD, AIX и HP-UX.

Главные особенности:

  • пакет Nagios XI контролирует критически важные компоненты инфраструктуры, такие как приложения, услуги, сетевые протоколы, показатели системы и сетевую инфраструктуру;
  • Nagios Log Server упрощает анализ данных журналов;
  • Nagios Network Analyzer требуется для анализа трафика в сети клиента и последующего обнаружения потенциальных угроз безопасности. Параллельная проверка служб и возможность определять иерархии хостов сети с помощью «родительских» хостов;
  • в Nagios можно настроить отправку оповещений (с помощью почты, пейджера, SMS или любым другим способом, определенным пользователем через модуль системы) — она пригодится в случае возникновения проблем со службой или хостом.

Стоимость: Nagios Network Analyzer — от 995 долл.; Nagios XI и Nagios Log Server — от 1995 долл.

Sumo Logic

Этот облачный сервис собирает, управляет и анализирует данные, диаграммы, логические схемы. Он обладает аналитическим движком и предоставляет все необходимые приложения и данные в режиме реального времени — на сервере или в облаке. Призван помочь компаниям извлечь максимум пользы из их данных, контролировать содержимое журналов, которые генерируются VMware-системами, в том числе выполнять расширенный анализ их быстродействия и производительности.

Команды разработчиков могут быстро анализировать и диагностировать проблемы функционирования производственных приложений, а ИТ-специалисты — находить «дыры» в безопасности, «зарытые» в терабайтах данных.

Главные особенности:

  • сборка, запуск и обеспечение безопасной работы приложений в средах AWS, Azure или гибридных приложений;
  • умение работать с журналами не только из сторонних сред, но и из конкретных виртуальных машин;
  • Sumo Logic способен выявить проблемы, связанные с нерациональным распределением системных ресурсов, модификацией конфигураций и переносом виртуальных станций;
  • платформа реального времени, аналитика машинных данных и данных временных рядов.

Стоимость: Sumo Logic Free — бесплатно, если объём обрабатываемых данных в день не превышает 500 Мб (1-3 пользователя); Sumo Logic Professional — 90 долл. в месяц за 1 Гб (от 3 до 20 пользователей); Sumo Logic Enterprise — 150 долл. в месяц за 1 Гб (от 20 пользователей).

RabbitMQ

Это мультипротокольная Open Source-платформа, которая выступает связующим ПО для обмена сообщениями между компонентами программной системы.

Главные особенности:

  • включает программные инструменты для передачи сообщений между брокерами (приложениями, выполняющими функцию очереди);
  • выступает в роли безопасной платформы для отправки и получения, а также для транзитного хранения сообщений;
  • гарантирует последовательную обработку, позволяющую контролировать потоки данных в системе и запускать асинхронную обработку там, где это необходимо, не беспокоясь, что одна операция выполнится раньше другой, от результата которой она зависит;
  • гибкая маршрутизация, кластеризация, высокая доступность очереди;
  • открытость приложения, распространяющегося по лицензии Mozilla Public License, и реализация открытого протокола AMQP, библиотеки для которого существуют во всех основных языках и платформах программирования. В том числе и для Node.js.

Стоимость: бесплатно

Apache ActiveMQ

Открытый проект Apache ActiveMQ используется разработчиками как сервер на основе очередей сообщений. Он быстро работает, в нём имеется возможность кросс-языкового обмена сообщениями, поддержка протоколов, JMS 1.1 и J2EE 1.4, а также шаблоны для интеграции корпоративных приложений.

Главные особенности:

  • поддержка OpenWire (предназначен для облегчения передачи данных или событий между различными VCL/CLX-компонентами) для создания высокопроизводительных клиентов на базе Java, Cи, C++ и C#;
  • расширенные функции, такие как группы сообщений, групповые символы, виртуальная и комбинированная маршрутизации;
  • поддержка Spring, одного из самых популярных фреймворков для J2EE; имеется встроенный механизм конфигурации XML-дескрипторов;
  • кластеризация, хранение сообщений с возможностью использовать различные базы данных, кэширование и ведение журналов.

Стоимость: бесплатно

OverOps

Это решение применяется для обнаружения ошибок в работе приложений на Java, Scala, Clojure и Groovy. Позволяет выявлять ошибки в коде на старте JVM при помощи агента, которые могут возникнуть в продуктивной среде из-за реальной пользовательской активности.

Главные особенности:

  • определяет переменные состояния кода и выдаёт ошибки, повлекшие сбой программы;
  • повышает эффективность работы и экономит время разработки, которое в противном случае ушло бы на «просеивание логов»;
  • проактивное обнаружение ошибок при развертывании готовых приложений;
  • сайт платформы содержит детальные инструкции для интеграции со многими технологиями и фрейморками, такими как Play, TomCat и др.

Стоимость: OverOps Lite на одного пользователя и одну Java-машину — бесплатно; Pro — 109 долл. в месяц ежегодный план плюс 14-дневная пробная версия для более 25 пользователей; Enterprise — цена оговаривается с разработчиком.

Squid

Это кэширующий прокси-сервер для HTTP, HTTPS, FPT и др. Поддерживает широкий набор кэширующих протоколов, таких как ICP, HTCP, CARP и WCCP. Применяемое Squid кэширование улучшает время отклика веб-сервера; может работать в режиме «обратного прокси», распределяя запросы между несколькими серверами, балансируя нагрузку и/или обеспечивая отказоустойчивость. В некоторых сценариях может использоваться как DevOps-инструмент.

Главные особенности:

  • гибкие средства управления доступом;
  • работает на большинстве популярных операционных систем, включая Windows;
  • выпускается под открытой лицензией GNU GPL;
  • предлагает улучшенную производительность за счёт оптимизации потока данных между клиентом и сервером;
  • имеются списки контроля для доступа к ресурсам и определения ряда действий.

Стоимость: бесплатно

MySQL

Этот самая популярная открытая СУБД. Гибкость MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей.

Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Главные особенности:

  • сокращает стоимость разработки, упрощает развертывание и управление критически важными бизнес-приложениями;
  • обладает высокой производительностью, надежностью и масштабируемостью;
  • кросс-платформенность; портирована на большое количество платформ и имеет API для языков Delphi, Cи, C++ др.;
  • быстрая установка, простота управления.

Стоимость: оговаривается с разработчиком

Docker

Этот инструмент коллективной работы применяется для быстрой сборки приложений из компонентов (контейнеров) и позволяет DevOps-командам создавать, переносить и запускать распределенные приложения в любой среде. Контейнеры Docker можно использовать не только для вычислительных операций, но и для создания хранилищ данных. В основе лежит открытый код.

Работа Docker на программном уровне представляет из себя дополнительный уровень абстракции, что сравнимо с технологией виртуализации операционных систем.

Главные особенности:

  • пакетирование контейнеров включает программные зависимости, что обеспечивает их переносимость и делает разработку, тестирование и развертывание предсказуемым;
  • работа вне зависимости от структуры данных;
  • изоляция приложений способствует устранению конфликтов и повышает безопасность;
  • налаженная культура отношений DevOps-разработчиков ускорят внедрение в Docker новых функций и поиск уязвимостей.

Стоимость: Community Edition — бесплатная, Enterprise Edition Basic — 750 долл. в год, Enterprise Edition Standard — 1500 долл. в год, Enterprise Edition Advanced — от 2000 долл. в год.