Что такое кукольный | Управление конфигурацией с помощью Puppet
На сегодняшний день наиболее зрелым инструментом для управления конфигурациями является Puppet. Но я знаю, что вам должно быть интересно, почему Puppet так популярен и что делает его уникальным по сравнению с другими инструментами управления конфигурациями.
Что такое кукольный?
Puppet — это инструмент управления конфигурацией, который используется для развертывания, настройки и управления серверами. Он выполняет следующие функции:
- Определение отдельных конфигураций для каждого хоста, а также постоянная проверка и подтверждение того, что требуемая конфигурация установлена и не изменена (если измененная Puppet вернется к требуемой конфигурации) на хосте.
- Динамическое масштабирование и уменьшение машин.
- Предоставление контроля над всеми сконфигурированными машинами, поэтому централизованное (главный сервер или репозиторий) изменение автоматически распространяется на все.
Puppet использует архитектуру Master-Slave, в которой Master и Slave обмениваются данными через безопасный зашифрованный канал с помощью SSL.
Что такое Кукольный? | Обучение DevOps | Эдурека
Теперь, когда вы знаете, что такое Puppet, давайте разберемся в причинах популярности Puppet.
Что такое марионетка — ключевые показатели
Ниже приведены несколько фактов о Puppet:
- Большая установленная база: Puppet используется более чем 30 000 компаний по всему миру, включая Google, Red Hat, Siemens и т. д., а также несколькими университетами, такими как юридические школы Стэнфорда и Гарварда. В среднем 22 новые организации в день впервые используют Puppet.
- Большая база разработчиков: Марионетка настолько широко используется, что для нее разрабатывается множество людей. У Puppet есть много участников в основном исходном коде.
- Долгий коммерческий послужной список: Puppet используется в коммерческих целях с 2005 года и постоянно совершенствуется и совершенствуется. Он был развернут в очень больших инфраструктурах (более 5000 машин), и уроки производительности и масштабируемости, извлеченные из этих проектов, способствовали развитию Puppet.
- Документация: У Puppet есть большая поддерживаемая пользователями вики с сотнями страниц документации и исчерпывающими ссылками как на язык, так и на его типы ресурсов. Кроме того, он активно обсуждается в нескольких списках рассылки и имеет очень популярный IRC-канал, поэтому, какой бы ни была ваша проблема с Puppet, легко найти ответ.
- Поддержка платформы: Puppet Server может работать на любой платформе, поддерживающей ruby, например: CentOS, Microsoft Windows Server, Oracle Enterprise Linux и т. д. Он не только поддерживает новые операционные системы, но также может работать на относительно старых и устаревших версиях ОС и Ruby. также.
Теперь очевидно, что Puppet пользуется огромным спросом во всем мире. Но прежде чем углубляться в Puppet, будет справедливо объяснить, что такое управление конфигурацией и почему это важно.
Управление конфигурацией
Системные администраторы обычно выполняют повторяющиеся задачи, такие как установка серверов, их настройка и т. д. Они могут автоматизировать эту задачу, написав сценарии, но это очень напряженная работа, когда вы работаете с большой инфраструктурой.
Для решения этой проблемы, Управление конфигурацией был представлен. Управление конфигурацией — это практика систематической обработки изменений, чтобы система сохраняла свою целостность с течением времени. Управление конфигурацией (CM) гарантирует, что текущее состояние проекта и сборки системы известно, является хорошим и надежным; и не полагается на молчаливое знание команды разработчиков. Это позволяет получить доступ к точной исторической записи состояния системы для целей управления проектами и аудита. Управление конфигурацией преодолело следующие проблемы:
- Выяснение того, какие компоненты следует изменить при изменении требований.
- Повторная реализация, поскольку требования изменились с момента последней реализации.
- Возврат к предыдущей версии компонента, если вы заменили его новой, но некорректной версией.
- Замена не того компонента, потому что вы не могли точно определить, какой компонент необходимо заменить.
Давайте поймем его важность на примере использования.
Лучший известный мне пример — Нью-Йоркская фондовая биржа (NYSE). Программный «сбой» не позволял NYSE торговать акциями почти 90 минут. Это привело к убыткам в миллионы долларов. Проблема была вызвана установкой нового программного обеспечения. Это программное обеспечение было установлено на 8 из 20 торговых терминалов, и накануне вечером система была протестирована. Однако утром он не работал должным образом на 8 терминалах. Поэтому возникла необходимость вернуться к старому программному обеспечению. Вы можете подумать, что это был провал процесса управления конфигурацией NYSE, но на самом деле это был успех. В результате надлежащего процесса управления конфигурацией NYSE оправилась от этой ситуации за 90 минут, что было довольно быстро. Если бы проблема продолжалась дольше, последствия были бы более серьезными.
Теперь, я надеюсь, вы понимаете важность управления конфигурациями. Этап управления конфигурацией можно рассматривать как основу DevOps. Это позволяет более частые выпуски программного обеспечения самым безопасным и надежным способом.
Далее давайте посмотрим на некоторые приложения Puppet.
Что такое марионетка – Приложения марионетки
Давайте разберемся с приложениями Puppet на конкретном примере. Если вы любитель покера или когда-либо играли в онлайн-игры, то наверняка слышали о Zynga. Это крупнейший в мире разработчик социальных игр. Инфраструктура Zynga использует десятки тысяч серверов как в общедоступных облаках, так и в частных центрах обработки данных. Раньше они использовали ручной процесс, включая кикстартеры и пост-установки, чтобы подключить сотни серверов к сети.
Теперь посмотрим, с какими проблемами они столкнулись в этом процессе:
- Масштабируемость и согласованность – Zynga переживала феноменальный рост, и ее инфраструктура должна была идти в ногу с отраслью. Решений на основе скриптов и ручных подходов было недостаточно для их нужд.
- Портативная инфраструктура – Компании Zynga требовался способ использовать согласованный подход к управлению конфигурацией как в общедоступной облачной инфраструктуре, так и в собственных центрах обработки данных.
- Гибкость – Учитывая разнообразие игровых свойств Zynga, для команды было важно иметь возможность быстро подобрать правильную конфигурацию для нужной машины.
- Инфраструктура – По мере взросления организации все более важным стало иметь автоматизированный метод визуализации свойств каждой машины.
Компания была достаточно умна, чтобы быстро осознать необходимость автоматизированного процесса еще до того, как они достигли быстрого масштабирования, и тогда на сцену вышел Puppet. Давайте разберемся, какой вклад в их организацию вносит Puppet.
- Скорость восстановления – Группа производственных операций может быстро развернуть нужную конфигурацию на нужной машине. Если система будет неправильно перенастроена, Puppet автоматически вернет ее обратно в последнее стабильное состояние или предоставит подробную информацию, необходимую для быстрого исправления системы вручную.
- Скорость развертывания – Puppet обеспечил значительную экономию времени на том, как операционная группа предоставляет услуги игровым студиям.
- Согласованность серверов – Платформа Puppet, основанная на моделях, обеспечивает последовательное развертывание. Согласно с Марк Стокфорд, вице-президент по производственным операциямЗинга «Очевидно, что мы сэкономили время. Прелесть использования Puppet заключается в том, что он позволяет нам каждый раз предоставлять согласованные конфигурации на наших серверах за короткий период».
- Сотрудничество – Подход, основанный на моделях, упрощает совместное использование конфигураций в рамках всей организации, позволяя разработчикам и операционным группам работать вместе, чтобы обеспечить чрезвычайно высокое качество предоставления новых услуг. Более десятка человек из команды Zynga прошли обучение работе с Puppet. Эти знания были переданы всей команде и операционным группам каждой отдельной игровой студии.