Системы управления конфигурацией. Чем отличаются Chef, SaltStack, Puppet, CFEngine и Ansible?::Журнал СА 6.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

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

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6227
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6933
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4216
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3006
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3807
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3821
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6316
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3170
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3460
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7278
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10646
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12365
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13999
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9124
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7079
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5388
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4617
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3427
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3155
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3402
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3025
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Системы управления конфигурацией. Чем отличаются Chef, SaltStack, Puppet, CFEngine и Ansible?

Архив номеров / 2014 / Выпуск №6 (139) / Системы управления конфигурацией. Чем отличаются Chef, SaltStack, Puppet, CFEngine и Ansible?

Рубрика: Администрирование /  Инструменты

Сергей Житинский СЕРГЕЙ ЖИТИНСКИЙ, генеральный директор Git in Sky (ООО «Жить в небе»), sergey@gitinsky.com

Александр Чистяков АЛЕКСАНДР ЧИСТЯКОВ, главный инженер Git in Sky (ООО «Жить в небе»), alex@gitinsky.com

Системы управления конфигурацией
Чем отличаются Chef, SaltStack, Puppet, CFEngine и Ansible?

В статье рассматриваются четыре важнейшие группы свойств систем управления конфигурацией, по которым делается сравнение популярных CM-инструментов

Компьютеры, которые работают в качестве серверов, должны обладать в первую очередь повышенной надежностью и бесперебойностью в работе. Для этого, кроме прочего, им нужно обеспечит очень хорошую управляемость. Это достигается многими технологиями и, в том числе, применением программных систем управления конфигурациями. По-английски эти системы называются Configuration Management (CM).

На рис.1 изображена типичная организация компонентов программного CM-инструмента в общем случае. Operator – это вы – системный инженер, который эксплуатирует систему. В Repository хранятся вводные данные – спецификации, которые описывают инфраструктуру или сервер. Спецификация переводится в profile на Translation Agent. Эти данные передаются (или забираются) на управляемые узлы (managed devices) и превращаются там в набор исполняемых команд при помощи компонента внедрения (deployment agent).

Рисунок 1. Общая схема работы CM-системы

Рисунок 1. Общая схема работы CM-системы

CM-системы позволяют настраивать сервера не руками, а программным способом. Они автоматизируют труд системных администраторов, превращая их в системных инженеров. Серверы при этом настраиваются быстро и безошибочно (если, конечно, сами управляющие скрипты-рецепты-плейбуки были написаны без ошибок). Кроме того, система управления конфигурацией позволяет следить за изменениями состояния сервера и поддерживать на нем стабильную эталонную конфигурацию.

Решение подобной задачи необходимо, как правило, на довольно крупных системах, так как позволяет экономично эксплуатировать большой парк однотипных серверов. Однако теперь все чаще можно встретить использование CM на небольших проектах, изначально закладывающих в архитектуру несколько ролей серверов и стандартных окружений (разработка-тест-продакшн).

Управление конфигурацией через код, хранимый в репозитории, существенно повышает управляемость процессом настройки и администрирования ИТ-инфраструктуры. Эта парадигма приобрела даже свою собственную аббревиатуру – IaaC – Infrastructure as a Code.

Поскольку интерес к CM-продуктам неуклонно растет, в данной статье мы попытались проанализировать и сравнить самые популярные из них.

История возникновения популярных CM-инструментов

Первая система управления конфигурацией, появившаяся на рынке, была CFEngine. Основатель и бессменный руководитель проекта CFEngine – норвежский ученый Марк Бургес, работающий в университете города Осло.

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

Почти одновременно, в 1994 году, выходит LCFG – CM-система на Perl, разработанная в Эдинбургском университете. В отличие от CFEngine, система использовала централизованную архитектуру с обработкой запросов узлов на центральном сервере.

В 1998 году появляется еще несколько систем – ISConf, PIKT, STAF. Честно говоря,мы не исследовали их подробно, важно, что на этом рынке уже была конкуренция.

В 2002 году выходит CFengine2 – версия, в которой вводятся понятия convergence to desired state и self-healing. Эти парадигмы позволяли управляемым компьютерам самостоятельно обнаруживать отклонения от желаемого состояния и возвращаться к нему путем выполнения определенных команд или операций.

В 2000-е годы появляется еще несколько разработок, из которых самой популярной становится BCfg2 на Python. В этой системе не было изначально модульности и она не позволяла подняться выше уровня абстракции «Configuration files» (см. ниже). Но система была написана на Python и поэтому привлекла к себе внимание сообщества «питонщиков».

В 2005 году один из продвинутых пользователей CFEngine2 Luke Kanies решает сделать свой продукт, в связи с тем, что он был недоволен тем, как Марк Бургес управлял развитием CFEngine.

Действительно, ученые, при всем к ним уважении, редко бывают хорошими управленцами или бизнесменами. Так родился Puppet, отличительными особенностями которого стал движок моделей на основе графов состояний, простой и понятный DSL-язык описаний на основе Ruby и изначальная ориентированность на сообщество разработчиков. Все эти инновации были востребованы рынком, поэтому Puppet стал активно внедряться в промышленную эксплуатацию.

В 2008 году Марк Бургес и его проект CFEngine3 ответили Puppet более удобным языком описаний и новой стройной концепцией, которая называлась Theory of Promises – теория обещаний. В одноименной книге Бургес попытался описать «обещания» как технический объект, а не юридически-моральный, как было принято до него. Концепция была внедрена в продукт и теперь, если вы хотите настроить сервер при помощи CFEngine3, вы должны разобраться, что такое «обещание» и кто кому их дает среди серверов вашего проекта.

В 2009 году несколько активных членов сообщества Puppet во главе с Adam Jacobs в свою очередь решили отпочковаться и создать свой продукт, который они назвали Chef. В отличие от Puppet, и его якобы «недетерминированности», в Chef все операции идут в том порядке, в котором их написал программист. Кроме того, язык описаний (DSL) в Chef – это просто Ruby, что позволило привлечь разработчиков на этом популярном языке к созданию первичной базы скриптов (в терминологии Chef – рецептов).

В 2011 разработчики суперскоростного пакета обмена сообщениями ZeroMQ создают свою CM-систему SaltStack, преимуществом которой является именно скоростная коммуникация между узлами сети.

В 2012 стартовал проект Ansible – система управления конфигурациями, с возможностью решения ad-hoc задач, без софтверного агента на управляемом узле. Работает через SSH, на управляемом узле требуется только Python версии 2.4+. Как следствие эта программа не позволяет управлять зависимостями между узлами инфраструктуры.

Как видим, пакетов достаточно много, познакомиться с ними можно в Википедии [1]. Причем это сравнение не содержит проприетарные инструменты от компаний IBM, HP, Microsoft, Dell и других серьезных производителей решений.

Мы выбрали для анализа только самые известные из Open Source решений, которые используются на реальных проектах и, что немаловажно, используются реальными клиентами нашей компании Git in Sky, то есть мы имели опыт работы с ними в реальных задачах.

Итак, эти инструменты:

  • CFEngine3 (Community Edition v3.5.0);
  • Puppet (v2.7.*);
  • Opscode Chef (v11.6.0);
  • SaltStack (v2014.1.0);
  • Ansible (v1.5).

Методология сравнения

В своем исследовании мы опирались на методологию [2], разработанную в 2010 году в бельгийском университете Katholieke Universiteit Leuven.

Статью целиком читайте в журнале «Системный администратор», №6 за 2014 г. на страницах 35-39.

PDF-версию данного номера можно приобрести в нашем магазине.


Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru