Знайте ключевые различия (обновлено)
Сегодня специалисты DevOps управляют большим количеством серверов с большим количеством приложений, чем когда-либо прежде. Для решения все более сложных задач были внедрены десятки инструментов управления конфигурацией (CM), таких как Ansible и Puppet. Консультанты ГБ говорит, что управление конфигурацией является «жизненно важным процессом», а C2S Consulting Group утверждает, что CM «необходимо в модели DevOps для поддержки непрерывной интеграции».
Инструменты CM позволяют администратору выполнять задачи на нескольких серверах одновременно, а также развертывать несколько приложений одним щелчком мыши. Но как решить, какой инструмент лучше всего соответствует вашим потребностям? В этой статье мы рассмотрим темы, которые дадут вам четкое представление о различиях между Ansible и Puppet.
Совершенствуйте свои навыки управления проектамиСертификация PRINCE2® Foundation и PractitionerИзучить курс
Фон
Puppet существует с 2005 года и считается крупнейшим игроком на рынке CM с наибольшей долей. Он производится орегонской компанией по разработке программного обеспечения Puppet, основанной Люком Кейнисом. Он был разработан на Ruby, имеет открытый исходный код и работает на всех основных операционных системах: Linux, Unix, Mac OS и Windows. Oracle и Google, а также другие известные компании используют свои серверы данных с помощью Puppet. Коммерческая версия Puppet Enterprise также доступна через PuppetLabs и включает профессиональную поддержку, но некоторые пользователи жалуются, что PuppetLabs слишком агрессивно подталкивает компании к ее покупке. Некоторые пользователи также говорят, что Puppet медленно принимает запрошенные изменения, такие как добавление новых функций и исправление ошибок.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Ansible был представлен в 2012 году компанией AnsibleWorks, сейчас принадлежит Red Hat и занимает гораздо меньшую долю рынка, чем Puppet, что кажется вполне естественным, поскольку Puppet существует гораздо дольше. Как и Puppet, он имеет открытый исходный код, а также имеет корпоративную версию (Ansible Tower). Но в отличие от Puppet, он был разработан на Python (а не Ruby), должен быть легким и иметь быстрое развертывание. Поскольку Python встроен в большинство систем Unix и Linux, запуск и запуск Ansible можно выполнить довольно быстро, а его безагентный характер упрощает установку и использование. Кроме того, CLI принимает команды практически на любом языке, что является большим преимуществом. Ansible включает сотни модулей для поддержки широкого спектра интеграций, включая Amazon Web Services (AWS). Ansible только недавно начал поддерживать Windows.
Более подробную информацию о Ansible и Puppet с точки зрения настройки, языка, графического пользовательского интерфейса, CLI и других функций и использования самих инструментов см. в отдельных разделах ниже.
Ansible против Puppet: простота настройки и использования
Многие считают, что Ansible проще в установке и использовании. Puppet основан на моделях и создан с учетом требований системных администраторов. Он соответствует архитектуре клиент-сервер (или агент-мастер); вы устанавливаете Puppet Server на один или несколько серверов, а затем устанавливаете Puppet Agent на все узлы, которыми хотите управлять. Puppet использует собственный декларативный язык (также называемый доменно-ориентированным языком или DSL). Компания утверждает, что установка занимает от 10 до 30 минут, в зависимости от окружающей среды и потребностей.
У Ansible есть мастер, но на клиентских машинах нет агентов — все функции выполняются по протоколу SSH. Отсутствие агентов — одна из особенностей, наиболее рекламируемых в дискуссиях о простоте Ansible. А Ansible использует синтаксис YAML. Сложные задачи обрабатываются в файлах конфигурации, называемых playbooks, а команды можно писать практически на любом языке программирования. Кроме того, Ansible написан на Python, который встроен в большинство развертываний Unix и Linux, что делает установку еще проще и быстрее.
Несмотря на то, что Puppet в некоторых отношениях более сложен, он имеет преимущества перед Ansible в использовании. Важным из них является то, что если у вас есть синтаксические ошибки, их можно легко выделить в Puppet перед запуском задачи. В Ansible задачи выполняются по порядку, и вы не будете знать, завершится ли конкретная задача неудачно, пока она не будет выполнена. А YAML — не самый простой язык для отладки.
Ansible против Puppet: управление и планирование
Управление Ansible и Puppet фокусируется на конфигурациях push и pull. В Puppet клиент извлекает конфигурации с сервера, тогда как в Ansible сервер передает конфигурации узлам для мгновенного развертывания. Кроме того, в Puppet вам придется писать конфигурации на языке Puppet, как уже упоминалось, тогда как в Ansible вы используете YAML, который близок к английскому.
Что касается планирования, то в настройках по умолчанию Puppet Agent проверяет каждые 30 минут, чтобы убедиться, что узлы находятся в желаемом состоянии. Бесплатная версия Ansible не включает такую возможность; для этого вам потребуется использовать корпоративную версию Ansible Tower.
В целом, Ansible не хватает некоторых расширенных функций, которые есть у Puppet и других более зрелых конкурентов.
Ansible против Puppet: доступность
И Ansible, и Puppet имеют резервные копии на случай сбоя, а это означает, что доступность никогда не прерывается. У Ansible есть вторичный узел на случай сбоя активного узла, а у Puppet — более одного главного узла на случай сбоя исходного узла.
Ansible против Puppet: масштабируемость
Оба инструмента хорошо масштабируются, что означает, что они могут без проблем справиться с большим увеличением количества узлов. Однако обычно считается, что масштабируемость в Ansible проще.
Ansible против Puppet: модули
Puppet Forge — это репозиторий/библиотека Puppet; Ansible называется Ansible Galaxy. Forge огромен (почти 6000 модулей), и модули могут быть помечены как одобренные/поддерживаемые Puppet, так что вам не придется тратить время на те, работа которых не доказана. В Galaxy нет этой функции, поэтому вам, возможно, придется потратить некоторое время и усилия на внесение изменений вручную.
Ansible против Puppet: графический интерфейс
Графический пользовательский интерфейс (GUI) Puppet более развит, чем у Ansible. Он используется для просмотра, управления и мониторинга; для более сложных задач вы, вероятно, будете использовать интерфейс командной строки CLI, основанный на Ruby.
На момент своего появления Ansible был инструментом, работающим только из командной строки. Теперь вы можете получить пользовательский интерфейс, если используете корпоративную версию, но он ни в коем случае не идеален. Фактически, графический интерфейс иногда не синхронизируется с командной строкой и не может выполнять все те же функции, что и CL.
Совершенствуйте свои навыки управления проектамиСертификация PRINCE2® Foundation и PractitionerИзучить курс
Ansible против Puppet: поддержка
Поскольку Puppet существует на несколько лет дольше, чем Ansible, вы, вероятно, уже можете догадаться, что у него будет больше поддержки и большее сообщество разработчиков — и вы будете правы. Существует специальный портал поддержки с базой знаний, а также предлагаются два уровня профессиональной поддержки: Стандартный (входит в комплект) и Премиум. Вы также можете получить доступ к техническому менеджеру по работе с клиентами (TAM) или принять участие в сообществе Puppet (тысячи людей), посещая мероприятия или участвуя в других каналах. Puppet также предлагает «Состояние DevOpsежегодный отчет, который является отличным ресурсом для изучения тенденций DevOps.
Ansible предлагает два уровня профессиональной поддержки для своей корпоративной версии. Также по всему миру проводится более 200 встреч; ежегодное большее собрание пользователей и участников под названием AnsibleFest; и списки рассылки по темам, например, общие вопросы, вопросы для разработчиков и объявления. В целом, у него меньшее сообщество разработчиков и пользователей, чем у Puppet, а также ресурсы поддержки и устранения неполадок в Интернете.
Ansible против Puppet: цены
Как уже упоминалось, базовые версии Puppet и Ansible бесплатны и имеют открытый исходный код. Что касается коммерческих версий, вы будете платить в зависимости от необходимого вам уровня поддержки следующим образом.
Сколько стоит «Марионеточное предприятие»?
Вы можете бесплатно опробовать Puppet Enterprise на 10 узлах. Это стоит около 100 долларов США за узел в год при стандартном плане поддержки; Премиум-поддержка составляет 199 долларов США за узел в год.
Сколько стоит Ansible Tower?
Ansible Tower имеет три уровня цен: 1. Самостоятельная поддержка (то есть поддержка не включена) составляет 5000 долларов США в год для максимум 100 узлов; 2. Стандарт (также известный как поддержка 8×5) стоит 10 000 долларов США в год для максимум 100 узлов или 13 000 долларов США в год с Ansible Engine; и 3. Премиум (поддержка 24×7) — 14 000 долларов США в год для до 100 узлов или 17 500 долларов США с Ansible Engine.
Учитесь бесплатно! Подпишитесь на наш канал YouTube и станьте частью более чем 400 тысяч счастливых учеников.
Выберите правильную программу DevOps
В этой таблице сравниваются различные программы DevOps, предлагаемые Simplilearn, на основе нескольких ключевых функций и деталей. В таблице представлен обзор продолжительности курсов, навыков, которые вы приобретете, дополнительных преимуществ, а также других важных факторов, которые помогут вам принять обоснованное решение о том, какой курс лучше всего соответствует вашим потребностям.
Название программы | Магистерская программа DevOps-инженера | Последипломная программа в DevOps |
Гео | Все | Все |
Университет | Простое обучение | Калифорнийский технологический институт |
Продолжительность курса | 11 месяцев | 9 месяцев |
Требуется опыт кодирования | Базовые знания | Базовые знания |
Навыки, которые вы изучите | Более 40 навыков, включая Ansible, Puppet, Chef, Jenkins и т. д. | Более 10 навыков, включая CI, CD, DevOps в облаке, автоматизацию развертывания и т. д. |
Дополнительные преимущества | Сертификация магистров Проекты из реальной жизни Изучите более 40 навыков и инструментов | Калифорнийский технологический институт Карьерные услуги Мастер-классы преподавателей Калифорнийского технологического института |
Расходы | $$ | $$$ |
Изучите программу | Изучите программу |
Так что же лучше: Ansible или Puppet?
Ответ: это зависит. Оба инструмента превосходны по разным причинам, и у каждого есть преимущества и недостатки. Основные различия между Ansible и Puppet означают, что правильный выбор действительно зависит от конкретных потребностей вашей организации. Многие используют Ansible для небольших, быстрых и/или временных развертываний, тогда как Puppet часто используется для более сложных или долгосрочных развертываний. Если у вас есть в основном фиксированный набор машин, которые нужно обслуживать, Puppet может быть лучшим вариантом, тогда как, если ваши машины часто переинициализируются, Ansible может быть подходящим вариантом.
Хотите узнать больше об этих важных инструментах DevOps? Вы можете получить более глубокое понимание DevOps с помощью Последипломная программа по DevOps или продвиньтесь в своей карьере с курсом DevOps Engineer
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)