Как Вы применяете методы разработки как управление версиями, тестируя и непрерывная интеграция/развертывание с системным администрированием?

Я нашел, что наличие меньшего количества экземпляров PHP или самое большее стольких же экземпляров PHP сколько nginx экземпляры, улучшило устойчивость существенно.

К сожалению, и это причиняет боль мне для высказывания этого, но после многих месяцев выполнения веб-сайта интенсивного трафика в соответствии с этой конфигурацией, я нашел, что он лучше повторно развернул его на EC2 рабочий Apache + mod_php, который надежен. Поскольку это находится на EC2, я могу масштабировать количество требуемого сока (даже если это - больше, чем nginx). Таким образом, хотя это может стоить больше, это существенно уменьшает количество усилия по обслуживанию, вовлеченного в то, чтобы заставлять это работать.

Это - позор действительно, потому что я честно ненавижу апача и люблю nginx, но что я могу сказать?

18
задан 25 May 2012 в 04:40
3 ответа

Краткий ответ: «Управление развертыванием ОС», «Управление конфигурацией» и «Пакетирование программного обеспечения». Далее следует длинный ответ.

Я хотел бы добавить к ответу Дэниела Питтмана подробное описание того, что образует «систему» ​​в системном администрировании.

Система или среда будет состоять из:

  • Серверов
  • Операционная система
  • Конфигурация
  • Пакеты поставщика; и
  • Локальные пакеты

Эти процессы охватывают такие процессы, как:

  • Развертывание ОС или создание образов
  • Управление конфигурацией
  • Управление пакетами программного обеспечения
  • Аудит / ведение журнала
  • Мониторинг
  • Резервное копирование

И вы хотели бы, чтобы они были объединены вместе, чтобы помочь вам в достижении нефункциональных целей, таких как:

  • Повторяемость
  • Ремонтопригодность
  • Измеримость
  • Производительность
  • Отслеживаемость
  • Тестируемость
  • Изменяемость

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

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

Существует множество инструментов, которые помогут вам в этом, некоторые из них упомянуты Дэниелом. Вот некоторые другие:

  • Kickstarts (на основе RedHat), Preseed (на основе Debian),
15
ответ дан 2 December 2019 в 20:22

В мире Windows эти проблемы, связанные с управлением жизненным циклом приложений, решаются с помощью System Center 2012.

] В System Center Virtual Machine Manager (SCVMM) службы определяются с помощью «шаблонов служб» (например, классическая трехуровневая служба), а среды выполнения определяются как «облака» (например, разработка, постановка, производство). Шаблоны служб могут быть версированы и развернуты (автоматическим способом) в различных облаках. Под прикрытием SCVMM выполняет работу по предоставлению, развертыванию и настройке виртуализированного оборудования (виртуальные машины и т. Д.) И программного обеспечения (ОС, компоненты приложений и т. Д.).

System Center Service Manager - это часть, которая связывает все это из точки процесса - зрения. Например, управление проблемами и контроль изменений.

1
ответ дан 2 December 2019 в 20:22

Заявление об ограничении ответственности: я являюсь одним из разработчиков Puppet.

Очевидный способ - просто применить концепции: определить цикл разработки / тестирования / производства и протолкнуть через них изменения. Используйте контроль версий для отслеживания систем.

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

Инструменты, такие как Chef , Puppet , Salt и CFEngine ] являются популярными инструментами для решения этой второй проблемы. Они работают в общем направлении превращения системного администрирования в центральное решение, которое вы можете контролировать и тестировать.

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

16
ответ дан 2 December 2019 в 20:22

Теги

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