Вопрос

Я видел фрагменты решения этой проблемы по сети, но я все еще в замешательстве, поэтому я подумал, что спрошу об этом умных людей из Stack Overflow.

Мы небольшой стартап, и на данный момент наш рабочий процесс из разработка -> производство включает в себя подключение по ftp и простую загрузку кода разработчика.

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

Вот некоторые подробности:- разработка на CakePHP + MySQL - размещен в Media Temple (gs) - разработчики используют как Mac OS (Coda), так и Windows (Dreamweaver)

Итак, мой вопрос таков:как настроить правильный масштабируемый рабочий процесс?

Это было полезно?

Решение

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

1) Создавайте производственные выпуски и имейте схему версий, чтобы вы могли точно отслеживать свои производственные выпуски.Помечайте каждый релиз тегом, чтобы вы могли отслеживать его.

2) Создайте установщик.Не прибегайте к ручному копированию папок, потому что вы можете допустить ошибку.Установщик также позволяет легко отслеживать, когда что-то идет не так в процессе производства.

3) Проведите некоторый контроль качества на производстве перед развертыванием.Даже небольшой контроль качества имеет большое значение.Разработчики не являются хорошими тестировщиками, поскольку они могут быть предвзяты к "особенностям" программы.

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

Другие советы

Один из способов, которым я делал это в прошлом, - сделать так, чтобы производственный код фактически был живым клиентом subversion, вытаскивая ветку 'production'.

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

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

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

Я бы порекомендовал следующие вещи:

  1. Создайте сценарий автоматической сборки. Существует множество различных технологий и языков сценариев, которые можно использовать (я предпочитаю Ant) для извлечения ваших файлов из системы управления версиями, автоматического увеличения номеров версий, добавления тегов и создания пакетов развертывания.Это может потребовать больших усилий для настройки и решения задач, которые в настоящее время выполняют разработчики, но в долгосрочной перспективе это с лихвой окупится.Это должно освободить ваших разработчиков от повторяющейся задачи сборки и позволить им сосредоточиться на решении ваших технических проблем.Как вы знаете, разработчикам становится скучно делать одно и то же снова и снова, а когда вам становится скучно, вы начинаете совершать ошибки.

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

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

  4. Создайте резервную копию вашего SVN.Это само собой разумеется, но я работал в компании, где в нашем репозитории исходных текстов не создавались резервные копии более двух лет.Вы можете создать резервную копию, выполнив svndump, а затем скопировав полученный файл в другое место.Вы также можете просто создать резервную копию папок, в которых существует ваш репозиторий, а затем восстановить, если возникнут проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top