Каковы плюсы и минусы регулярного запуска Chef / Puppet?

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

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

Мои вопросы:

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

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

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

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

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

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

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

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

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

вы правы?

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

Чего вам не хватает?

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

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

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

3
ответ дан 3 December 2019 в 01:49

Теги

Похожие вопросы