03067 г. Киев
бульвар Вацлава Гавела, 4
+38 (044) 333 65 51
+38 (067) 333 65 51
[email protected]
[email protected]

15 инструментов DevOps с открытым исходным кодом для частного облака

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

Такой подход применим и для облачных рабочих нагрузок. Также методы DevOps стали стандартами де-факто для разработчиков и команд QA, особенно при использовании частного облака в качестве платформы разработки или целевой платформы. Разумеется, не все аспекты облачных операций покрываются практикой DevOps. Например, многие связанные с оборудованием операции не совпадают — вы не можете использовать программный инструмент для физического подключения серверов к коммутатору оборудования, но даже в этом случае вы можете использовать инструменты и методы DevOps для проверки возможности подключения и документирования процесса настройки сети. Также растущий спрос на программно-ориентированную сеть (SDN) дает возможность DevOps чувствовать себя комфортно в новых областях.

В этой статье мы рассмотрим 15 инструментов DevOps для частного облака в нескольких категориях.

Инструменты управления конфигурацией

Chef — использует язык DSL (Domain-specific language) для своих файлов конфигурации, которые называются “рецептами” (с расширением .rb). Рецепт определяет ресурсы, а также их состояние, например: пакет должен быть установлен, файл должен существовать, служба должна быть запущена и т. д. Chef проверяет, что все определенные ресурсы имеют указанное состояние и, если необходимо, применяют изменения, если фактическое состояние любого ресурса отличается от указанного. Данный инструмент может использоваться в режиме клиент / сервер или в автономном режиме. В любом случае, он должен быть установлен на узле или виртуальной машине, которую вы хотите настроить.

Puppet — использует специальный язык для своих конфигурационных файлов, которые называются Puppet manifests (с расширением .pp). Его можно использовать в автономном режиме или в режиме клиент / сервер. Puppet клиент (агент) должен быть установлен на каждом узле или виртуальной машине, которую вы хотите настроить. Он собирает конфигурацию сервера с помощью инструмента Facter и генерирует каталог для конкретного сервера. Инструмент может использоваться для настройки Unix-подобных или Windows-узлов / виртуальных машин.

Ansible — использует модули для определения задач настройки. Модули могут быть написаны на стандартном языке сценариев (Python, Bash, Ruby и т. д.). Ansible поддерживает специальные задачи: административные задачи, которые должны выполняться на нескольких узлах / виртуальных машинах. Ansible имеет безрисковую архитектуру: вам не нужно устанавливать Ansible на узлы / виртуальные машины, которые вы хотите настроить (однако для таких узлов должен быть установлен Python), Ansible настраивает узлы / виртуальные машины через SSH или через PowerShell (машины Windows). Может использоваться для настройки Unix-подобных или Windows-узлов / виртуальных машин.

Salt (или SaltStack) — поддерживает режимы сервера / агента или может работать без агента. В последнем случае Salt использует SSH для подключения к управляемому узлу / VM. Инструмент использует исполняемые модули, написанные на Python, которые содержат функции для определения задач настройки. Файлы состояний (расширение .sls) определяют задачи в формате YAML.

Инструменты для подготовки запасных частей

Cobbler использует DHCP-сервер для обработки загрузочного сервера и перенаправляет его на TFTP-сервер, где его можно скачать в качестве загрузочного файла PXE и ​​загрузочного образа с операционной системой. Затем Cobbler использует Linux Kickstart (для операционных систем на базе Red Hat) или Preseed (для операционных систем на базе Debian) для автоматической установки и настройки операционной системы. Конфигурация системы, которая должна быть обеспечена, определяется профилем (Cobbler поддерживает несколько профилей). После инициализации узла Cobbler гарантирует, что узел загрузится в подготовленную операционную систему вместо PXE. Cobbler содержит клиент командной строки и веб-клиент.

Ironic — это проект OpenStack, который использует PXE для предоставления серверов и IPMI для включения / выключения компьютеров. Ironic содержит Ansible playbooks (проект bifrost) для установки и запуска Ironic в автономном режиме без других компонентов OpenStack. Ironic также содержит клиент командной строки и веб-клиент.

Инструменты оркестровки

MCollective — это структура для создания серверных оркестровых или параллельных систем исполнения заданий. Поддерживается децентрализованная инвентаризация и автоматическое обнаружение сервера. MCollective должен быть установлен на управляемые узлы / виртуальные машины, а MCollective-клиент — на управляющей машине. Инструмент использует плагины агентов для расширения своей функциональности. MCollective серверы и клиенты не связываются напрямую, вместо этого они используют промежуточное ПО (обычно RabbitMQ) в режиме публикации / подписки. Это позволяет клиенту MCollective отправлять запросы на передачу на сервер MCollective, также поддерживаются прямые запросы / ответы.

Juju позволяет развертывать сложные приложения на нескольких облачных платформах. Для настройки сервера могут использоваться инструменты управления конфигурацией, такие как Ansible, Chef, Puppet. Juju содержит клиент командной строки и веб-клиент. Juju использует так называемые “charms” для определения поведения агентов, а “charm hooks” — это реальные задачи, которые необходимо выполнить (установить программное обеспечение, запустить или остановить службу и т. д.).

Apache Brooklyn позволяет моделировать, контролировать и управлять вашими приложениями с помощью автоматизации на основе политик. Для моделирования Apache Brooklyn использует концепцию blueprint, которая определяет приложение с точки зрения компонентов, их конфигураций, их взаимосвязей и сценариев развертывания. Проект написан в YAML. Apache Brooklyn поддерживает множество приложений “из коробки”, имеет веб-интерфейс для развертывания, мониторинга и управления приложениями. Кроме того, Apache Brooklyn поддерживает множество мест развертывания, включая облачные платформы.

Cloudify позволяет вам определять конфигурации приложений, службы и зависимости в файле YAML. Такой файл называется “blueprint”. Cloudify, используя blueprint в качестве входных данных, может развертывать и управлять приложением. Cloudify поддерживает несколько облачных платформ и виртуализованных сред. Blueprint также определяет жизненный цикл вашего приложения. Для этапа развертывания приложения Cloudify поддерживает инструменты управления конфигурацией, такие как Chef and Puppet.

Docker Machine — это инструмент, который позволяет вам устанавливать Docker на предоставленные узлы. Позже такие узлы могут управляться удаленно. Например, вы можете запускать образы Docker на управляемых узлах с одного управляющего устройства.

Инструменты непрерывной интеграции

Jenkins — это сервер автоматизации с множеством плагинов для создания, тестирования, развертывания и автоматизации приложений. Обычно используется в качестве инструмента CI / CD для разработки программного обеспечения. Jenkins jobs (сборки) могут инициироваться различными триггерами, такими как фиксация в системе управления версиями, по расписанию, путем доступа к определенному URL-адресу сборки или после завершения других сборок.

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

Мониторинг и логирование

Zabbix — это решение для мониторинга сетевых сервисов и оборудования. Zabbix хранит собранные данные в реляционной базе данных, такой как MySQL, PostgreSQL и т. д. Zabbix позволяет отслеживать простые службы, такие как HTTP. Агенты Zabbix могут быть установлены на Windows и Unix-подобных серверах для мониторинга параметров системы, таких как загрузка процессора, использование памяти и диска и т. Д. Кроме того, агенты могут использоваться для мониторинга стандартных служб и пользовательских приложений. Zabbix поддерживает мониторинг через SNMP, SSH и т. д.

ELK — это комбинация Elasticsearch, Logstash, Kibana в качестве полного инструмента для ведения журнала, его анализа, поиска и визуализации. Elasticsearch — это инструмент поиска, основанный на Apache Lucene. Logstash- это инструмент для сбора, парсинга и хранения журналов, который может быть проиндексирован Elasticsearch. Logstash поддерживает множество источников данных, парсеров и фильтров. Logstash обычно используется в сочетании с Lumberjack, инструментом, который обеспечивает реализацию syslog и может перенаправлять локальные события журнала в Logstash. Lumberjack использует SSL для шифрования журналов при их отправке по сети. Kibana является плагином визуализации для Elasticsearch.

Share

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *