Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как грамотно собирать и выкатывать проект на PHP? 
V
    Опции темы
Royan
Дата 27.3.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Уважаемые гуру PHP, пожалуйста, поделитесь информацией какими средствами сборки проекта вы пользуетесь. Какой аспект интересует. Положим вы разрабатываете проекта на каких-то отладочных серверах, а потом выкатываете этот проект в production. Как и с помощью чего вы делаете?


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
ksnk
Дата 27.3.2009, 16:44 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Eclipse + Ant.

Сделана на Ant задача по сборке всего архива(zip) проекта и частичного архива, из измененных после какой-то даты.

Архив заливается на сайт по ftp с помощью Total Comander'а. Очень удобно smile
FTP-плагин для eclips'а оказался неудобен, слишком жесткий, не работает через прокси... 
У меня есть локальный сервер для отладки,  демонстрационный, на котором показывается и доводится проект и боевой, который на момент отладки проекта может быть еще даже и не известен. На каждый из них возникает желание "пробросить" изменения...

База сливается Sypex dumper'ом. PHPMyAdmin не годится для слива действительно больших баз...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
IZ@TOP
Дата 27.3.2009, 20:05 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



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

Мы пользуемся довольно простым вариантом:

1. Вся разработка ведется в Subversion (системе контроля версий).
2. Каждый девелопер имеет свой JAIL в FreeBSD с приближенными к PRODUCTION условиями.
3. Существует тестовый сервер, на котором производится тестировние.
4. Выкладка на PRODUCTION осуществляется через скрипты с набором команд "svn export". На каждом сервере свой набор скриптов и свой набор выгружаемых апликаций. Можно стартовать скрипты на каждом сервере ручками, либо использовать самописную утилиту, которая это сделает за нас.
5. Существует система выкладки hot fix-ов, позволяющая разливать небольшие изменения (по файлу, например).

Вот, вроде бы и вся техника.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
SamDark
Дата 27.3.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



Предварительно ничего не собирается. По триггеру на коммит в SVN в ветку production код автоматом разворачивается на сервер.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
solenko
Дата 28.3.2009, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



IZ@TOP, SamDark, вы упустили самый неприятный момент -- синхронизация баз. Мы обчно пишем вручную update скрипты, но это жуть как неудобно. Особенно если система хранит в базе не только банные но и настройки (обновлять таким образом проект на друпале просто тихий ужас). Как эту проблемму решаете?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 28.3.2009, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



Видимо, следует еще уточнять примерный срок изготовления/активной отладки проекта и количество человек в команде. 
В моем случае 1-3 недели + 1 человек ;-) После этого - эпизодические нерегулярные апдейты.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
IZ@TOP
Дата 28.3.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(SamDark @  27.3.2009,  21:41 Найти цитируемый пост)
Предварительно ничего не собирается. По триггеру на коммит в SVN в ветку production код автоматом разворачивается на сервер.

У нас 3 прокси, 8 веб-морд, 15 mysql серверов, 90+ файловых помоек и несколько серверов приложений, процесс выкладки занимает около часа. Production-версия сохраняется в теге как release-дата. Впрочем, о чем говорить, если у каждого девелопера в песочнице поднято как минимум две инстанции Memceched и с пяток MySQL, а сам проект насчитывает возле восьми виртуальных хостов под разные приложения проекта.

Цитата(ksnk @  28.3.2009,  02:30 Найти цитируемый пост)
Видимо, следует еще уточнять примерный срок изготовления/активной отладки проекта и количество человек в команде. 

2 дня-неделя. До кризиса было 9 человек в команде, сейчас 2-е. Тестами занимается отдел тестирования, обычно на один проект выделяется от 2-х и до 5 человек.

Добавлено @ 15:21
Цитата(solenko @  28.3.2009,  02:11 Найти цитируемый пост)
IZ@TOP, SamDark, вы упустили самый неприятный момент -- синхронизация баз

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


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
nerezus
Дата 28.3.2009, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

Архив заливается на сайт по ftp с помощью Total Comander'а. Очень удобно
 Иногда как-то не с руки десяток мегабайт заливать, чтобы после непредвиденной ошибки(да например разные данные в БД) заливать снова через минуту.

Цитата

вы упустили самый неприятный момент -- синхронизация баз.
 Нет желания ворочать гигабайты данных ;)
Крупный проект - десятки гигов.

Это сообщение отредактировал(а) nerezus - 28.3.2009, 23:43


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
ksnk
Дата 28.3.2009, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 1
Всего: 386



nerezus, 
Цитата

Архив заливается на сайт по ftp с помощью Total Comander'а. Очень удобно
 Иногда как-то не с руки десяток мегабайт заливать

Архив содержит, как правило, только измененные файлы. Полный архив качается только один раз. В TC - одно окно с корнем сайта, другое окно - "раскрытый" архив (с сохранением структуры каталогов).


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
solenko
Дата 29.3.2009, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



Цитата(IZ@TOP @  28.3.2009,  14:16 Найти цитируемый пост)
Что есть синхронизация баз?

Внесение изменений в структуру в соответствии с новым кодом, изменение данных (в основном служебных)
Цитата(IZ@TOP @  28.3.2009,  14:16 Найти цитируемый пост)
Вы себе представляете PRODUCTION базу и ее размеры?

Представляю. И что это меняет? Менять то ее все равно прийдется.
Цитата(IZ@TOP @  28.3.2009,  14:16 Найти цитируемый пост)
Если проект состоялся, всевозможные обновления базы довольно редки, за исключением тех моментов, когда добавляется новый функционал, что бывает раз в месяц-два, в среднем. 

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

Цитата(nerezus @  28.3.2009,  22:43 Найти цитируемый пост)
Нет желания ворочать гигабайты данных ;)
Крупный проект - десятки гигов.

Т.е. инзменения в базу вы не вносите в принципе? smile А гигами ворочать приходится. Некоторые баги репродьюсятся только на продакшн данных. Естественно, обратно на продакшн уходят только скрипты а-ля патч, но вот готовить их руками крайне неудобно.

Это сообщение отредактировал(а) solenko - 29.3.2009, 12:53


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
IZ@TOP
Дата 29.3.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(solenko @  29.3.2009,  13:48 Найти цитируемый пост)
Внесение изменений в структуру в соответствии с новым кодом, изменение данных (в основном служебных)

Не, ну запихать юзеров в ридонли и прогнать на мастерах несколько апдейтов не проблема. А служебные данные - отдельный разговор.

Цитата(solenko @  29.3.2009,  13:48 Найти цитируемый пост)
Представляю. И что это меняет? Менять то ее все равно прийдется.

Обновлять структуру - одно. Синхронизировать полностью БД dev-test-production - совсем другое.

Цитата(solenko @  29.3.2009,  13:48 Найти цитируемый пост)
Все зависит от проекта. Обин из проектов попал к нам уже состоявшимся и вот уже год как три фултайм девелопера его развивают. Релиз каждый месяц и изменений вносится дай боже. И этот "раз в месяц" синхронизировать базу не очень то приятно руками.

Раз в месяц - не вижу сложности. Вы просто не видели, например, как проходит выкладка на огромных проектах. Например на **** выкладка контекстной рекламы не просто выкладка файликов, это тесты кода, компиляция демонов и все это на лету, с "мягким" перезапуском сервисов и много чего еще.

Цитата(solenko @  29.3.2009,  13:48 Найти цитируемый пост)
А гигами ворочать приходится. Некоторые баги репродьюсятся только на продакшн данных.

Не представляю, какого рода баги smile Мы, к примеру, программисты ленивые, потому, вместо тягания тудым-сюдым данных, предпочитаем курнуть error_log на продакшне.

Цитата(solenko @  29.3.2009,  13:48 Найти цитируемый пост)
 Естественно, обратно на продакшн уходят только скрипты а-ля патч, но вот готовить их руками крайне неудобно.

Что значит, готовить руками patch? В моем представлении, это просто файлик, в котором собрано несколько ALTER'ов и CREATE TABLE.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
nerezus
Дата 29.3.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

Менять то ее все равно прийдется.
 Зачем?
Зачем на дев. компах иметь реальную базу?

Цитата

Т.е. инзменения в базу вы не вносите в принципе?
 Изменения в базе касались лишь ее структуры, а не данных.
Изменения данных производились уже на сервере через программный интерфейс.
Изменения структуры - Database Comparer.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
solenko
Дата 30.3.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



Цитата(IZ@TOP @  29.3.2009,  12:13 Найти цитируемый пост)
Не представляю, какого рода баги  Мы, к примеру, программисты ленивые, потому, вместо тягания тудым-сюдым данных, предпочитаем курнуть error_log на продакшне.

У нас проект скорее из сферы data-mining потому баг это не креш, а непавильная циферка вобном из отчетов. 

Цитата(IZ@TOP @  29.3.2009,  12:13 Найти цитируемый пост)
Что значит, готовить руками patch? В моем представлении, это просто файлик, в котором собрано несколько ALTER'ов и CREATE TABLE. 

Несколько ALTER, иногда update-ов с фиксами для неправильно обработанных данных, и вот как раз мы ленивые программисты и ищем путь не делать все это руками )

Цитата(nerezus @  29.3.2009,  12:14 Найти цитируемый пост)
Цитата

Менять то ее все равно прийдется.
 Зачем?
Зачем на дев. компах иметь реальную базу?

См. сообщение предидущее сообщение и начало этого )

Цитата(nerezus @  29.3.2009,  12:14 Найти цитируемый пост)
Изменения данных производились уже на сервере через программный интерфейс.

Т.е. после выката очередного билда руками на боевых серверах нужно внести все изменения, ничего не забыть и все это врмя приложение будет в непонятно каком состоянии? Неее, уж лучше я патчик напишу.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
IZ@TOP
Дата 30.3.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(solenko @  30.3.2009,  11:21 Найти цитируемый пост)
Несколько ALTER, иногда update-ов с фиксами для неправильно обработанных данных, и вот как раз мы ленивые программисты и ищем путь не делать все это руками )

А может попробовать сделать так, что бы ошибочек в данных не возникало?

Хотя мне кажется, что подобные вещи лучше автоматизации не доверять. Если правите данные запросами на живой БД, лучше это делать человеку с руками и головой smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
solenko
Дата 30.3.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



Цитата(IZ@TOP @  30.3.2009,  14:02 Найти цитируемый пост)
Цитата(solenko @  30.3.2009,  11:21 )
Несколько ALTER, иногда update-ов с фиксами для неправильно обработанных данных, и вот как раз мы ленивые программисты и ищем путь не делать все это руками )

А может попробовать сделать так, что бы ошибочек в данных не возникало?

Не понял фразы.


Цитата(IZ@TOP @  30.3.2009,  14:02 Найти цитируемый пост)
Хотя мне кажется, что подобные вещи лучше автоматизации не доверять. Если правите данные запросами на живой БД, лучше это делать человеку с руками и головой 

Лучше/хуже -- это смотреть нужно. Пока даже придумать не смогли как автоматизировать, т.е. и выбирать особо не из чего.

Насколько я понял, все выполняют обновления базы исключительно в ручном режиме, т.е. средства автоматизации отсутствуют как таковые.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1815 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.