![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Уважаемые гуру PHP, пожалуйста, поделитесь информацией какими средствами сборки проекта вы пользуетесь. Какой аспект интересует. Положим вы разрабатываете проекта на каких-то отладочных серверах, а потом выкатываете этот проект в production. Как и с помощью чего вы делаете?
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
Eclipse + Ant.
Сделана на Ant задача по сборке всего архива(zip) проекта и частичного архива, из измененных после какой-то даты. Архив заливается на сайт по ftp с помощью Total Comander'а. Очень удобно FTP-плагин для eclips'а оказался неудобен, слишком жесткий, не работает через прокси... У меня есть локальный сервер для отладки, демонстрационный, на котором показывается и доводится проект и боевой, который на момент отладки проекта может быть еще даже и не известен. На каждый из них возникает желание "пробросить" изменения... База сливается Sypex dumper'ом. PHPMyAdmin не годится для слива действительно больших баз... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Существует множество систем. Есть громоздкие, многофункциональные, которые позволяю, буквально, что угодно. А есть небольшие и удобные.
Мы пользуемся довольно простым вариантом: 1. Вся разработка ведется в Subversion (системе контроля версий). 2. Каждый девелопер имеет свой JAIL в FreeBSD с приближенными к PRODUCTION условиями. 3. Существует тестовый сервер, на котором производится тестировние. 4. Выкладка на PRODUCTION осуществляется через скрипты с набором команд "svn export". На каждом сервере свой набор скриптов и свой набор выгружаемых апликаций. Можно стартовать скрипты на каждом сервере ручками, либо использовать самописную утилиту, которая это сделает за нас. 5. Существует система выкладки hot fix-ов, позволяющая разливать небольшие изменения (по файлу, например). Вот, вроде бы и вся техника. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 0 Всего: 38 |
Предварительно ничего не собирается. По триггеру на коммит в SVN в ветку production код автоматом разворачивается на сервер.
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
IZ@TOP, SamDark, вы упустили самый неприятный момент -- синхронизация баз. Мы обчно пишем вручную update скрипты, но это жуть как неудобно. Особенно если система хранит в базе не только банные но и настройки (обновлять таким образом проект на друпале просто тихий ужас). Как эту проблемму решаете?
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
Видимо, следует еще уточнять примерный срок изготовления/активной отладки проекта и количество человек в команде.
В моем случае 1-3 недели + 1 человек ;-) После этого - эпизодические нерегулярные апдейты. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| IZ@TOP |
|
||||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
У нас 3 прокси, 8 веб-морд, 15 mysql серверов, 90+ файловых помоек и несколько серверов приложений, процесс выкладки занимает около часа. Production-версия сохраняется в теге как release-дата. Впрочем, о чем говорить, если у каждого девелопера в песочнице поднято как минимум две инстанции Memceched и с пяток MySQL, а сам проект насчитывает возле восьми виртуальных хостов под разные приложения проекта.
2 дня-неделя. До кризиса было 9 человек в команде, сейчас 2-е. Тестами занимается отдел тестирования, обычно на один проект выделяется от 2-х и до 5 человек. Добавлено @ 15:21
Что есть синхронизация баз? Вы себе представляете PRODUCTION базу и ее размеры? Если проект состоялся, всевозможные обновления базы довольно редки, за исключением тех моментов, когда добавляется новый функционал, что бывает раз в месяц-два, в среднем. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||||
|
|||||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Крупный проект - десятки гигов. Это сообщение отредактировал(а) nerezus - 28.3.2009, 23:43 |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
nerezus,
Архив содержит, как правило, только измененные файлы. Полный архив качается только один раз. В TC - одно окно с корнем сайта, другое окно - "раскрытый" архив (с сохранением структуры каталогов). -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Внесение изменений в структуру в соответствии с новым кодом, изменение данных (в основном служебных) Представляю. И что это меняет? Менять то ее все равно прийдется. Все зависит от проекта. Обин из проектов попал к нам уже состоявшимся и вот уже год как три фултайм девелопера его развивают. Релиз каждый месяц и изменений вносится дай боже. И этот "раз в месяц" синхронизировать базу не очень то приятно руками.
Т.е. инзменения в базу вы не вносите в принципе? Это сообщение отредактировал(а) solenko - 29.3.2009, 12:53 -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| IZ@TOP |
|
||||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Не, ну запихать юзеров в ридонли и прогнать на мастерах несколько апдейтов не проблема. А служебные данные - отдельный разговор. Обновлять структуру - одно. Синхронизировать полностью БД dev-test-production - совсем другое. Раз в месяц - не вижу сложности. Вы просто не видели, например, как проходит выкладка на огромных проектах. Например на **** выкладка контекстной рекламы не просто выкладка файликов, это тесты кода, компиляция демонов и все это на лету, с "мягким" перезапуском сервисов и много чего еще.
Не представляю, какого рода баги
Что значит, готовить руками patch? В моем представлении, это просто файлик, в котором собрано несколько ALTER'ов и CREATE TABLE. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||||
|
|||||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Зачем на дев. компах иметь реальную базу?
Изменения данных производились уже на сервере через программный интерфейс. Изменения структуры - Database Comparer. |
||||
|
|||||
| solenko |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
У нас проект скорее из сферы data-mining потому баг это не креш, а непавильная циферка вобном из отчетов.
Несколько ALTER, иногда update-ов с фиксами для неправильно обработанных данных, и вот как раз мы ленивые программисты и ищем путь не делать все это руками )
См. сообщение предидущее сообщение и начало этого )
Т.е. после выката очередного билда руками на боевых серверах нужно внести все изменения, ничего не забыть и все это врмя приложение будет в непонятно каком состоянии? Неее, уж лучше я патчик напишу. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
||||||||
|
|||||||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
А может попробовать сделать так, что бы ошибочек в данных не возникало? Хотя мне кажется, что подобные вещи лучше автоматизации не доверять. Если правите данные запросами на живой БД, лучше это делать человеку с руками и головой -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Не понял фразы.
Лучше/хуже -- это смотреть нужно. Пока даже придумать не смогли как автоматизировать, т.е. и выбирать особо не из чего. Насколько я понял, все выполняют обновления базы исключительно в ручном режиме, т.е. средства автоматизации отсутствуют как таковые. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |