Каковы плюсы / минусы работы Chef/Puppet через равные промежутки времени?

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

Они говорят, что слишком опасно запускать его на регулярной основе в производственном процессе, поскольку они не уверены, является ли код идемпотентом.

Мои запросы:

  • Кто из вас использует инструменты Orchestration только для начальной загрузки? Разве это не похоже на вождение Bugatti на 20 миль в час по переулкам?
  • Есть ли какие-либо проблемы, возникающие при запуске этого через регулярные интервалы, когда вы увеличиваете масштаб? Как бы вы справились с этим? (Один из известных мне способов - запустить агентов в одиночном режиме и позволить им загружать кулинарные книги из некоторого репозитория / артефакта, которые могут одновременно обрабатывать несколько загрузок, а не перегружать сервер Puppet/Chef).
  • Как я могу побудить команду исправить код, чтобы он был идемпотентным, и регулярно запускать агент? Или перейдите от Chef к чему-то простому, например, bash, чтобы уменьшить затраты на поддержку / написание кода.
  • Правильно ли я сказал, что мы используем инструменты не так, как они должны использоваться?
  • Я что-то здесь пропускаю / пропускаю?

1 ответ

оркестровка для начальной загрузки

Есть такие инструменты, как Terraform, которые на самом деле сосредоточены на этой части процесса. Я также использую ansible для некоторых специальных задач, которые не нужно часто повторять.

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

проблемы с регулярным бегом

Если вы пишете плохие рецепты, вы можете очень быстро уничтожить всю продукцию. Наличие некоторого процесса, где роли высвобождаются в QA и проверяются перед переходом к постановке, а затем проходят повторную проверку перед переходом к продукту. Шеф-повар имеет встроенные механизмы тестирования. Подобные методы могут быть использованы с другими.

как поощрять регулярный запуск

Сначала я бы сосредоточился на проблемах, которые чистят под ковром. Если вы не запускаете свои рецепты часто, вы не заметите, когда они начнут не работать из-за изменений в ОС или ваших приложениях.

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

Вы правы?

В основном. Если это работает достаточно хорошо для них, они могут не видеть никакой необходимости что-либо менять. Возможно, вам придется придумать демонстрацию, чтобы показать ценность и сделать ее реальной для людей. Или, возможно, вам придется подождать, пока ваша организация станет зрелой и сможет справиться с тем, чему вы учите.

чего не хватает?

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

Еще одна вещь, которую я видел, это истощение памяти. Приложение постепенно жует память, пока шеф-повар больше не может функционировать. Надеюсь, у вас есть мониторинг уровней памяти и работает ли шеф-повар, чтобы поймать такого рода вещи.

Помимо производительности и памяти, я бы посоветовал прочитать книгу типа Release It, которая многое объясняет о том, как создавать надежные производственные системы.

Другие вопросы по тегам