Я хотел бы получить лучший контроль над своей средой развертывания, но разделяю ответственность за системное администрирование с ИТ-отделом, у которого есть свои (не полностью автоматизированные) процессы начальной загрузки экземпляров виртуальных машин, управления пользователями организации и выполнения обновлений безопасности.
Могу ли я получить пользу от использования Chef (возможно, Chef-Solo), даже если начальное состояние системы будет вне моего контроля и будет периодически меняться из-за обновлений безопасности вне Chef (а также, возможно, другого ручного вмешательства)? Я не могу ввести другой рабочий процесс в ИТ-отделе.
Их обязанности:
Мои обязанности:
Насколько я могу судить, это противоречит идее полностью контролируемой среды, которая стоит за такими инструментами, как Chef, и оставляет место для расхождений между производственными средами и между ними и моей промежуточной средой (локальная виртуальная машина, которую ИТ-специалисты никогда не трогают).
Стоит ли «заморачиваться» с таким инструментом, как Chef? Чем мой рабочий процесс должен отличаться от полностью контролируемой среды?
Я бы сказал, что вы используете Chef даже больше, чем в случае, когда вы все контролируете. Я думаю, вы неправильно представляете, что Chef должен для вас сделать.
Chef не контролирует всю окружающую среду. На самом деле есть вещи, которые вам, вероятно, не стоит пытаться снабжать Chef. Инициализация (которая в основном предоставляется вашим ИТ-отделом) - это проблема, которую Chef и другие системы CM на самом деле не решают. Chef вступает во владение после установки ОС и настройки основных сетевых подключений. На самом деле нет большой разницы между тем, что предоставляет ваш ИТ-отдел, и тем, что вы получите от AWS.
Chef (и другие хорошие специалисты) заботятся о том, чтобы конфигурация была стабильной и воспроизводимой. В вашем случае это кажется идеальным, как будто что-то вмешивается в вашу конфигурацию, вы хотите, чтобы она была восстановлена как можно скорее. Вы можете использовать Chef для управления конфигурацией в той или иной степени, в какой захотите.
Если у вас есть производственное приложение, требующее настройки, вам потребуется система управления конфигурацией для этого приложения. Chef может быть подходящим инструментом, а может и не быть, но вам что-то нужно. Ваш CM может быть таким же простым, как хранение файлов конфигурации в системе контроля версий и использование файла makefile для их установки. (Штраф за разовую услугу на одной машине, но не более того.)
Вам нужно задать вопрос: в каком масштабе вы работаете и каким количеством услуг вам нужно управлять? Chef - это умножитель силы, но он усиливает как хорошее, так и плохое. Если вы сделаете ошибку, вы сделаете ее ВЕЗДЕ. Так что для этого требуются некоторые средства тестирования и изрядная начальная работа. Но эта сила позволяет вам работать в гораздо большем масштабе.
Если у вас есть больше машин или больше сервисов для управления, чем у вас есть пальцы на одной руке, то я бы хотя бы попробовал использовать Chef и посмотреть, сработает ли он для вас.
Помимо того, что это не «лучшая практика», я бы сказал, что использование шеф-повара (-solo) может принести некоторую пользу.
Если вы действительно «владеете» стеком приложений, которым хотите управлять, вы можете управлять им с помощью chef. Обновления безопасности должны - AFAIK - не мешать этому, поскольку они обычно являются обновлениями приложения (-binary), а не конфигурации, которой вы хотели бы управлять. Но если другая команда изменит права доступа к каталогам / файлам вашего стека приложений, возникнет проблема, поскольку они, вероятно, не поймут, почему это меняется каждый час.
Другая возможность заключается в том, что вы используете резервные копии, которые шеф-повар делает для каждого файла, которого он касается, и сравниваете их с ожидаемым состоянием - после этого вы можете объединить возможные изменения конфигурации команды, но будет некоторое несогласованное состояние на время, которое вам нужно. слияние
поэтому мой вывод был бы таков: если вы просто хотите управлять - скажем - apache на каком-то сервере, я думаю, вы могли бы сделать это с любым управлением конфигурацией - если другая команда не пытается изменить ту же конфигурацию