Поддержка, апдейты, production, синхронизация версий.

Как вы чаще всего обновляете production сервера?

  • FTP - пофайлово

    Голосов: 26 33,8%
  • FTP - копирую всё

    Голосов: 12 15,6%
  • CVS/SVN извлекаю из репозитория

    Голосов: 16 20,8%
  • Через SSH, разворачиваю архив с новой версией

    Голосов: 12 15,6%
  • Система апдейтов включена в проект

    Голосов: 5 6,5%
  • Не указанная здесь программа (напишите в треде)

    Голосов: 2 2,6%
  • Другой вариант (напишите треде)

    Голосов: 2 2,6%
  • Я этим не занимаюсь вовсе :-)

    Голосов: 2 2,6%

  • Всего проголосовало
    77

ForJest

- свежая кровь
Поддержка, апдейты, production, синхронизация версий.

Добрый день :).
Поделитесь пожалуйста опытом, как кто синхронизирует рабочую версию, на локале и production версию на сервере клиента.
Особо интересует момент для нескольких инсталляций одного и того же продукта.
 

syfisher

TDD infected!!
Первоначально SSH, далее Unison для тех файлов, чьи репозитории закрыты. SVN/CVS - для открытых репозиториев. Кстати, было бы правильно сделать голование таким, чтобы можно было выбирать несколько опций.

Хотя я сам лично этим не занимаюсь :)

P.S. Интересно, а почему эта тема сразу в Offtopic?
 

ForJest

- свежая кровь
syfisher
А куда её поместить-то? :) К программированию она мало имеет отношения :).
Кстати насчёт unison. Можешь рассказать что-нибудь по поводу этой программы. А то pachanga мне сказал, но на моём хосте она так и не запустилась :).
К тому же интерфейс у неё малопонятный и возможность настройки.
Да, я вообще хотел сделать мультиопции :). Но пришлось пересоздавать голосование заново и забыл поставить крестик :)
 

pachanga

Новичок
Автор оригинала: ForJest
К тому же интерфейс у неё малопонятный и возможность настройки.
Хороший у нее cli интерфейс, очень даже понятный :) Читай доку, там все очень хорошо описано. Если с rsync знаком, то проблем с unison также быть не должно...

Самое главное, чтобы в обоих точках синхронизации стояли одинаковые версии unison!

Особое внимание обрати на профайлы, в них описываются параметры точек синхронизации.

К примеру, сделаем профайл my_project(под *nix и cygwin он находится в ~./unison):

ignore = Name .svn
ignore = Name *.override.php
ignore = Path var/*
ignore = Path build/*
ignore = Path tests/*

# Roots of the synchronization
root = c:\my_project\
root = ssh://[email protected]//home/bob/my_project/
Теперь выполняем следующее в шеле:

$ unison my_project

И радуемся :)
 

voodoo

Новичок
обновлется командой
ant deploy

А уж внутре у ей и cvs и scp для апдейта первого сервера, rsync для синхронизации данных между продакшн-серверами, ну и, конечно, неонка с думателем.
 

voodoo

Новичок
http://ant.apache.org/

Мне, конечно, дополнительно полезно, т.к. при апдейте серверов собирает .jar-ы (и при необходимости компилит классы),
но и для ПХП-проектов может быть интересно, т.к. умеет довольно много, http://ant.apache.org/manual/tasksoverview.html
 

BlackSabbath

Новичок
voodoo
То есть ты используешь ant для деплоя PHP-проектов?!

Чисто из любопытства, а можно как-нибудь xDoclet заставить работать с PHP-файлами. Не пробовал?
 

magic

lancer
CVS.

Дальше тяну SQL из тестовых БД, архивирую и загружаю все по FTP. потом обратный процесс - распаковка и установка обновлений.

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

betik

Новичок
ftp-копирую всё.
Обычно.
Но поскольку я в основном занимаюсь установкой CMS (своей) и настройкой сайтов под неё - с каждым днём количество сайтов растёт и по фтп - уже не реально.. Поэтому подумываю о написании для своей системы некого автоапдейтера. И некой "супермодульности" которая позволит все нестандартные вещи выносить в неАВТОобновляемое пространство..
 

confguru

ExAdmin
Команда форума
Я так думаю ForJest
интересует накат бакфиксов+фич на уже установленный
проект...
Имхо - тот без промежуточного тест сервера не обойтись..
Абы не было глюков..
 

magic

lancer
У меня и есть промежуточный - один сервер внутри сети для разработки, другой - в интернете - для тестирования и чтобы клиент мог посмотреть, и третий - это собственно сервера клиентов.

Да что толку, все равно ручками фиксы собираются :)
 

confguru

ExAdmin
Команда форума
magic

Это не правильно..
Есть девелоперская версия у разработчика..
Есть current snapshot(night build) - на дев сервере..
Есть версия для теста, которая как правило отстает от предыдущей на 5-20 коммитов.
Есть вылизанная продакшен версия, которая не дает ни одного варнинга и ведет себя прогнозиркемо :) (т.е. имеет баги известные разработчику)
 

_RVK_

Новичок
Был очень интересный опыт, которым хочу поделится.
Работал я в одной знаменитой компании, где для выкладки на "реалку" был написан специальный софт. Начальник ставил задачу. Эта задача отображалась в этой прокрамулене. Разработчик, разобравнись с заданием, лез в VSS и лочил те файлы, с которыми собирался работать. Далее, произведя необходимые действия, переводил программу в тестироание(указывая в программе те файлы, которые менял). Отдел тестирования, проверял выполнение задачи, и либо защитывал, либо ставил "череп" (то есть баг) и отправлял обратно на дороботку. Файлы, не прошедшие проверку, никак не могли попасть на реалку. Файлы, не прошедшие проврку никак не могли быть измененены другим программистом (они же залочены). Такая система позволяла автоматизировать выгрузку, и при этом обезопасить проект от выгрузки незавершенных частей системы.
Правда речь о Delphi+Oracle, но суть та же.
Пока, используя SVN, не вижу удобных возможностей осуществить такое.
 

magic

lancer
На текущий момент моя головная боль, это не количество серверов, а как автоматизировать процесс сборки и отправки обновлений клиентам.

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

Была мысль сделать лицензирование скриптов и обновления пакетов, типа PEAR. Лицензирование есть, а вот до автоапдейта все руки не доходят.

-~{}~ 23.12.05 00:41:

_RVK_ В CVS есть команда export - ждет пока разлочат файлы, а затем выкладывает искходники в нужный каталог. Может в SVN есть что-то подобное?
 

_RVK_

Новичок
magic
Дело не в лочиньи. Эти фалы так и осавались залоченными пока другому программисту они не понадобятся(тогда этот "другой" смотрел, нет ли черепа на файлах, и стоят ли они в версии. Если стоят, звонил програмисту, держащему файлы, и просил отпустить. Если на них череп или они еще не в версии, обращался к начальнику, и тот уже решал можно ли их отпустить для этой задачи). Дело как раз в том, что неготовые задачи, не могли попасть вверсию.
 

confguru

ExAdmin
Команда форума
Ну в принципе - это не твоя головная боль..
Извещение всеми возможными способами выслал? Выслал...
Имху грамотный заказчик заплатит 10-300$ за ежемесячную
поддержку чем будет иметь проблемы, прямо отражающиеся
на его бизнесе..
 

magic

lancer
Есть еще человеческий фактор - это когда в 4 утра, оказывается что какой то череп проглядели :)
 

betik

Новичок
А если не секрет, то о проектах какого масштаба идёт речь ?
 
Сверху