Каковы плюсы / минусы работы Chef/Puppet через равные промежутки времени?
Я всегда работал там, где они регулярно запускали Puppet. Таким образом, распространение изменений было легко и на лету. В новой команде они не одобряют регулярного запуска агента шеф-повара. Они используют его только для начальной загрузки ОС, а затем убивают ее. Я не понимаю, зачем кому-то использовать инструмент управления конфигурацией, такой как Chef, без необходимости регулярно его запускать. Что бы мы ни делали при начальной загрузке, это можно сделать с помощью базовых сценариев оболочки - установите программное обеспечение xyz, скопируйте файл конфигурации, перезапустите службу.
Они говорят, что слишком опасно запускать его на регулярной основе в производственном процессе, поскольку они не уверены, является ли код идемпотентом.
Мои запросы:
- Кто из вас использует инструменты Orchestration только для начальной загрузки? Разве это не похоже на вождение Bugatti на 20 миль в час по переулкам?
- Есть ли какие-либо проблемы, возникающие при запуске этого через регулярные интервалы, когда вы увеличиваете масштаб? Как бы вы справились с этим? (Один из известных мне способов - запустить агентов в одиночном режиме и позволить им загружать кулинарные книги из некоторого репозитория / артефакта, которые могут одновременно обрабатывать несколько загрузок, а не перегружать сервер Puppet/Chef).
- Как я могу побудить команду исправить код, чтобы он был идемпотентным, и регулярно запускать агент? Или перейдите от Chef к чему-то простому, например, bash, чтобы уменьшить затраты на поддержку / написание кода.
- Правильно ли я сказал, что мы используем инструменты не так, как они должны использоваться?
- Я что-то здесь пропускаю / пропускаю?
1 ответ
оркестровка для начальной загрузки
Есть такие инструменты, как Terraform, которые на самом деле сосредоточены на этой части процесса. Я также использую ansible для некоторых специальных задач, которые не нужно часто повторять.
Однако, как правило, рекомендуется запускать управление конфигурацией по крайней мере каждый час. Предоставление или удаление доступа часто происходит с помощью этих механизмов, и задержка обновлений может вызвать проблемы соответствия или удобства использования. В одном крупном магазине мы разделили кукол на две части, чтобы можно было приостановить работу приложений, не нарушая "теневую куклу", которая обрабатывает обновления контроля доступа и "не может быть отключена".
проблемы с регулярным бегом
Если вы пишете плохие рецепты, вы можете очень быстро уничтожить всю продукцию. Наличие некоторого процесса, где роли высвобождаются в QA и проверяются перед переходом к постановке, а затем проходят повторную проверку перед переходом к продукту. Шеф-повар имеет встроенные механизмы тестирования. Подобные методы могут быть использованы с другими.
как поощрять регулярный запуск
Сначала я бы сосредоточился на проблемах, которые чистят под ковром. Если вы не запускаете свои рецепты часто, вы не заметите, когда они начнут не работать из-за изменений в ОС или ваших приложениях.
Тогда я бы сказал, что изменения могут быть сделаны везде довольно быстро, когда это необходимо. Интервал между запусками шеф-повара должен составлять максимальное количество времени, которое вы готовы подождать, пока изменения не распространятся по вашей среде.
Вы правы?
В основном. Если это работает достаточно хорошо для них, они могут не видеть никакой необходимости что-либо менять. Возможно, вам придется придумать демонстрацию, чтобы показать ценность и сделать ее реальной для людей. Или, возможно, вам придется подождать, пока ваша организация станет зрелой и сможет справиться с тем, чему вы учите.
чего не хватает?
Главное, что вы, похоже, не рассматриваете, - это возможное влияние на производительность. Если приложение действительно чувствительно к вещам, работающим в фоновом режиме, вы можете увидеть меньшую пропускную способность или большую задержку во время работы шеф-повара. Если это так, вам нужно скорректировать свои рецепты или разрешить запускать только в непиковое время.
Еще одна вещь, которую я видел, это истощение памяти. Приложение постепенно жует память, пока шеф-повар больше не может функционировать. Надеюсь, у вас есть мониторинг уровней памяти и работает ли шеф-повар, чтобы поймать такого рода вещи.
Помимо производительности и памяти, я бы посоветовал прочитать книгу типа Release It, которая многое объясняет о том, как создавать надежные производственные системы.