![]() |
|
Модераторы: 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 |
Не понял фразы.
Лучше/хуже -- это смотреть нужно. Пока даже придумать не смогли как автоматизировать, т.е. и выбирать особо не из чего. Насколько я понял, все выполняют обновления базы исключительно в ручном режиме, т.е. средства автоматизации отсутствуют как таковые. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| IZ@TOP |
|
||||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Я говорил об этом
Неправильная циферка откуда-то же берется? Так вот, не лучше ли сделать так, что бы всегда получалась правильная циферка? У нас, к примеру, если вдруг возникнет необходимость править данные на живой БД, это повлечет за собой еще и сброс Memcached'ов. Что, в общем-то не страшно, но не желательно.
А сами не пробовали написать?
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||||
|
|||||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Конечно, намного лучше писать сразу без багов, не зависить от сторонних данных и полностью исключить человеческий фактор. Как только научусь так делать сразу стану миллионером ) Не пробовали. Потому как, опять же -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Помнится, делал как-то грабилку с афиши, по кино, театрам, выставкам и даже местам (кинотеатрам, концертным залам) с одноименного сайта. Потом эти данные интегрировались с mos2.ru. И... не знаю, чудо или нет, все жило без постороннего вмешательства Впрочем, каждому проекту свои особенности и тяжкое бремя -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Atlete |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Проект предпочитаю вести используя SVN
Заливать данные на сервер уж лучше через WinSCP как по мне куда надежнее. Бывает что один человек из команды хватанет вирус который потом ифремы лепит во все файлы и потом скриптами чистим. После последнего такого случая все перешли на WinSCP. Если править файлы нужно на сервере (ну очень редко, лучше патчами) то используем плагин в Zend Studio for Eclipse. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
Atlete, И как WinSCP помогает защитится от вирусов?
Кстати, он у меня не пошел с http прокси. Просто не сохраняет его и, соответственно, не коннектится... Так и должно быть? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Всем высказавшимся большое спасибо!
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |