Многие инструменты для 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 Мб
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 долл. в месяц ежегодный план плюс
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 долл. в год.