Поддержка, апдейты, 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

magic

lancer
Смотря чем мерять :) Как минимум, это набор скриптов, шаблонов и SQL, который нужно периодически лажить/забирать из CVS, изменять, тестировать и рассылать на несколько серверов.

Вот уточнил - 13.1 MB (13,685,349), 694 files, 56 sub-folders. В запакованном виде - 2.4 MB

-~{}~ 23.12.05 01:54:

Забыл добавить - еще нужно часть файлов кодировать и обновлять документацию.

Так что я тоже хотел бы услышать какие-либо уже существующие решения.
 

_RVK_

Новичок
betik
К кому вопрос то?
Если про тот что я опсал, то... сложно сказать... Проект offline чисто внутренний. Ну у МВ 12 офисов от Сахалина до Киева... Сколько у них там сотрудниоков не занаю. Но если простой (недопустимый, счатающийся ЧП) в минуту несет за собой убытки в 1000 евро (как нам говорили), то уж сам оценивай.
Сейчас, проект более двух миллионов постов в день. День выгрузки, день армагедона. Некотрорые вещи приходится править прямо на продакшене. Мониторить все и вся. Решения по оптимизации принимать походу...
Честно, конечно ситуация не типичная, но нужен интсрумент для для более "умной" выгрузки.
 

magic

lancer
Вот краткий набор инструментов:
- CVS (репозиторий)
- mysql / mysqlimport (для работы со структурой БД и данными)
- mysqldiff (сравнение SQL версий и генерация апдейтов)
- zend encoder (кодирует часть скриптов)
- phpDocumentor (генерит документацию из скриптов)
- tar / gzip (пакует, распаковывает)
- ftp/ssh - скопировать архив, распаковать, внести изменения в конфиги

Будьте любезны, поделитесь как всю эту хрень увязать между собой :)
 

ForJest

- свежая кровь
admin
Ну т.е. по сути каждая версия должна сама устанавливаться получается и апгрейдить всё что нужно до себя?
Т.е. именно "накатывать"?.
------------------
Ну вообще разумный подход. Получается
1. Исполняемые файлы можно просто поверху записать
2. Файлы конфигов нужно дополнить новыми установками, или запросить у пользователя ввод новых конфигов
3. Нужно проапдейтить структуру БД, данные, если это того требует.
4. Отсюда простой вывод - каждый продукт должен иметь сетап :), т.к. действительно - нужно иметь программу, которая автоматически определяет действия, которые ей нужно совершить, в зависимости от версии. И эта программа-инсталлятор должна знать все версии продукта.
-------------------
Тогда вопрос N2 - есть ли для PHP программа для создания инсталлов, хотя бы приближённая? Фреймворк для этого. Продукт? Или положим какой-нибудь продукт-инсталлер, который можно заточить под эти нужды?
Кто-то слышал вообще о подобном?
 

MiRacLe

просто Чудо
Тогда вопрос N2 - есть ли для PHP программа для создания инсталлов, хотя бы приближённая? Фреймворк для этого. Продукт? Или положим какой-нибудь продукт-инсталлер, который можно заточить под эти нужды?
Phing похож на то что нужно...
 

ForJest

- свежая кровь
MiRacLe
А ты пользовался этим добром? Но вообще спасибо, поковыряюсь :).
 

betik

Новичок
Автор оригинала: _RVK_
К кому вопрос то?
Ну собно ко всем, у кого есть то, обновление чего представляет трудность (рутину), а неправильное обновление - опасность.

Если про тот что я опсал, то... сложно сказать... Проект offline чисто внутренний. Ну у МВ 12 офисов от Сахалина до Киева...
А кто енто МВ?

Сколько у них там сотрудниоков не занаю. Но если простой (недопустимый, счатающийся ЧП) в минуту несет за собой убытки в 1000 евро (как нам говорили), то уж сам оценивай.
Сейчас, проект более двух миллионов постов в день. День выгрузки, день армагедона. Некотрорые вещи приходится править прямо на продакшене. Мониторить все и вся. Решения по оптимизации принимать походу...
Честно, конечно ситуация не типичная, но нужен интсрумент
для для более "умной" выгрузки.
Как я понимаю это вопрос единичной копии..

В моём случае нужно обновлять CMS... Как всегда первая версия выпущена была с багами, которые были засунуты в TODO, т.к. пора было сдавать проект, баги были мелкие но вредные.. Со временем большинство багов были исправлены, копий системы тогда было не много - в районе 5-7 копий.. Вручную всё пофикшено было. Потом стали исправляться, дополняться библиотеки, модули и прочее... На данный момент систем таких около ста. И я даже не знаю какие где и когда меня просят что-то обновить, дополнить или изменить.. Или система падает.. Всякое бывает. И это для меня большая проблема. В ближайшем времени собираюсь писать новую версию системы, уже 3 по счёту, исправляющую все логические прорехи, которые были выявлены за время работы + использование AJAX в админке, небольшое наращивание функционала...

И хочется вложить некую технологию автоапдейта... Вот. Только я даже теоретически не представляю.. Как и что... Ни у кого опыта не было?

-~{}~ 24.12.05 17:15:

PS - ЦМС моя не портальная, главная задача ЦМС - очень и очень быстро поднять малый/средний корпоративный сайт на основе свёрстанного дизайна.
 

_RVK_

Новичок
>А кто енто МВ

Фирма такая.

>Как я понимаю это вопрос единичной копии

Нет, это клиент общей БД, в котором функционала столько, что он нужен всем сотрудником, наяиная от менеджмента и заканчивая кладовщииком. Так что копий несметное количество.
 

_RVK_

Новичок
betik
Вроде есть... Смысл не в компании, а в процессе сборки версии и установке её на реалку. Это там было организованно супер.

PS. Кстати зря я тут назвал имя. Советую программистам подальше держатся от этой компании. Но это отдельная история.
 

Angerslave

Новичок
Да уж, смотря для каких целей. CMS и прочие продукты, стоящие у разных пользователей - по сути должна быть своя система обновления внутри продукта. Если какой-то личный проект, то тут зависит от использования для разработки оного систем контроля версий. Если не юзается - ftp/ssh, если юзается - написать postcommit-hook дело пяти минут.
 

AmdY

Пью пиво
Команда форума
использую шел скрипт, который деалет срез за период времени. хотя с svn на хостинге было гораздо удобнее, особенно откаты.
_RVK_
в svn есть команда lock и unlock, плюс замечательный параметр -force, а то во времена недолгого юзания vss задолбало включать машину отсутствующего коллеги, хотя там наверное уже есть или было такое.
 

fixxxer

К.О.
Партнер клуба
это оооочень размытый вопрос.

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

Santiago

Новичок
Кстати да, интересно, что изменилось за 3 года. Кто что использует в плане автосборки и выката проектов, написанных на php. Конечно, все проекты разные. Тем интереснее было бы услышать описание каких-то конкретных примеров.
В частности, есть ли альтернативы для ant?
 
Сверху