Подтвердить что ты не робот

Кто-нибудь имеет развертывание/развертывание/развертывание рабочего процесса с помощью php/mysql?

Я думаю о хорошем рабочем процессе для веб-разработки php/mysql.

У кого-нибудь есть подсказки?

4b9b3361

Ответ 1

Вот что мы делаем:

  • Каждый работает над своими проектами в своей отрасли (код, тесты и т.д.).
  • Когда все выглядит хорошо, оно сливается с Trunk
  • phpUnderControl восстанавливает Trunk, запускает все наши phpUnit, создает документацию, обновляет db и т.д.
  • Если все это проходит, мы сливаемся в Stable
  • Стабильный полностью восстанавливается, как Trunk
  • Стабильный переносится вручную на наш производственный сервер

У нас есть несколько пользовательских сценариев, которые заботятся о наших обновлениях баз данных и нашем нажатии на Production. Для нашей базы данных мы сохраняем все дельта в одной папке, а script проверяет текущий уровень БД на доступные дельта и, при необходимости, применяет их.

Для продвижения в Production у нас есть еще один script, который вытягивает все производственные данные, а затем запускает rsync, чтобы отменить изменения.

Вы не указываете, какой уровень контроля у вас есть над серверами, но общий процесс будет таким же для общего развития.

Ответ 2

Я думаю, что каждый делает эти вещи немного разными, в зависимости от конкретного приложения. Здесь наша настройка:

Перед выпуском:

  • Все совершают /trunk.
  • Когда мы хотим свернуть выпуск, мы скопируем ствол в /tags/yymmddhhiiss.
  • Мы стабилизируем тег.

Как только он стабилизируется, запустите развертывание script:

  • На рабочем сервере проверьте новый тег.
  • Сделайте дамп базы данных.
  • Остановить демон и закрыть веб-приложение (ы).
  • Переключите символическую ссылку /current, чтобы указать на только что выписанный тег.
  • Запустите сценарии миграции.
  • Перезапустите демоны и приложения.

Если нам нужно быстро выпустить небольшое изменение, мы объединим его с текущим тегом, и затем мы можем запустить гораздо более простой процесс исправления на сервере:

  • Остановить демон и закрыть веб-приложение (ы).
  • Запустить svn update
  • Перезапустите демоны и приложения.

Обратите внимание, что есть определенные инструменты, которые направлены на структурирование/автоматизацию этих процессов. Phing является одним, а Symfony имеет свою собственную пакетную систему, которая раньше была автономным проектом под названием pake. И, как будто этого недостаточно, Zend Framework собирается создать свой вариант. Все это действительно немного беспорядок, но Phing, вероятно, наиболее широко используется. Вы также можете использовать что-то не-php, например Ant или Capistrano. Мы просто используем shell-скрипты, которые в основном удовлетворяют ту же потребность.

У нас также есть непрерывная работа по сборке, которая проверяется с багажника и запускает все тесты. В настоящее время у нас просто есть базовая коллекция скриптов оболочки, но мы планируем перейти на PhpUnderControl или xinc.

Шаг миграции, возможно, заслуживает небольшого объяснения. Они содержат изменения в базе данных, а также другие задачи, которые должны выполняться для новой версии. Наше миграция сейчас немного проста; У нас просто есть папка с кучей скриптов .php и .sql, а во время миграции они выполняются последовательно. Как мы отслеживаем, какие изменения были выполнены, это освободить папку migrations сразу после создания нового тега. Вероятно, было бы разумнее использовать базу данных для регистрации изменений, которые были выполнены. Для этой цели принято считать что-то вроде ruckusing.