Как вы обновляете сайты? (в дополнение к опросу)
От: mlk http://self.maluke.com/
Дата: 19.02.10 10:34
Оценка:
Всем привет!

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

Вопрос ко всем у кого есть сайты, и динамические и статические и те которым нужен сервер приложений и те которые работают через обычный CGI, в общем любые. Интересно как именно вы делаете деплоймент, т.е. как вы обновляете код сайта. Конечно интересны и всякие навороченные способы, кастомный код и всё такое, но еще интереснее как же делает большинство.

Кроме вариантов ответов в самом голосовании интересно какие именно инструменты и протоколы учавствуют в процессе (скажем FTP + Far или rsync или Mercurial итп) и насколько это автоматизировано -- те же обновления на сервере можно вызывать вручную а можно автоматически.

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

Если можете рассказать как это делают ваши знакомые (а то за себя сами не все признаются :), то это совсем здорово.

Заранее спасибо за ответы.
деплоймент сайты html ftp rsync
Re: Как вы обновляете сайты? (в дополнение к опросу)
От: mlk http://self.maluke.com/
Дата: 19.02.10 10:43
Оценка:
Голосование тут: http://www.rsdn.ru/poll/polllist.aspx "Как вы обновляете / деплоите сайты?"
Re: Как вы обновляете сайты? (в дополнение к опросу)
От: Рома Мик Россия http://romamik.com
Дата: 19.02.10 14:47
Оценка:
Здравствуйте, mlk, Вы писали:

Я в этой области не спец. Самому интересно "как правильно".

Тем не менее выскажу свои соображения. Речь идет о php и shared хостинге, а также не слишком частых обновлениях, т.к. другие условия могут все поменять.

Сайт должен быть сделан так, чтобы весь его код, за исключением может быть папки с тяжелыми файлами, лежал не в document root, а в подпапке с произвольным названием, причем название этой папки должно быть прописано в одном месте, например в htaccess. Кроме того нужно, чтобы два сайта могли работать паралельно, т.е. так чтобы в document root две папки, и например все uri начинающиеся /test/ перенаправлялись в одну из них, причем для кода сайта этого /test/ видно быть не должно.

В итоге обновление делается так: создается новая подпапка, в нее заливается новая версия, база копируется в новую и обновляется. В настройках указываем новую базу. Настраивается редирект /test/ на эту папку. Всё тестируется. Старая версия сайта продолжает работать. После теста, перенастраиваем редирект на новую версию сайта, старую удаляем.

Если есть что-то, что добавляется в процессе работы на сайт, то после тестирования, настраивается редирект на "ведутся работы", а база обновляется заново с учетом произошедших за время тестирования изменений.
Re[2]: Как вы обновляете сайты? (в дополнение к опросу)
От: mlk http://self.maluke.com/
Дата: 19.02.10 14:56
Оценка:
Здравствуйте, Рома Мик, Вы писали:

Хороший вариант, единственное что лучше оставить .htaccess постоянным, ссылающимся скажем на /www/dev и /www/production, а сами эти папки сделать симлинками, то есть рядом создавать деплойменты в /www/r100, /www/r101 итд итп и указывать их в симлинках. Так остается полная история предыдущих задеплоенных версий на которые можно откатиться и можно также иметь постоянно стояющую наготове папку с уведомлением "ведутся работы" итп.
Re[3]: Как вы обновляете сайты? (в дополнение к опросу)
От: Рома Мик Россия http://romamik.com
Дата: 19.02.10 15:00
Оценка:
Здравствуйте, mlk, Вы писали:

mlk>Здравствуйте, Рома Мик, Вы писали:


mlk>Хороший вариант, единственное что лучше оставить .htaccess постоянным, ссылающимся скажем на /www/dev и /www/production, а сами эти папки сделать симлинками, то есть рядом создавать деплойменты в /www/r100, /www/r101 итд итп и указывать их в симлинках. Так остается полная история предыдущих задеплоенных версий на которые можно откатиться и можно также иметь постоянно стояющую наготове папку с уведомлением "ведутся работы" итп.

Кому-то проще симлинки, кому-то проще htacсess. Я как эти симлинки делать без shell доступа вообще не знаю, а htaccess через ftp можно редактировать. А в остальном всё так, и историю можно хранить и "ведуться работы" иметь наготове.
Re[4]: Как вы обновляете сайты? (в дополнение к опросу)
От: mlk http://self.maluke.com/
Дата: 19.02.10 15:15
Оценка:
Здравствуйте, Рома Мик, Вы писали:
РМ>Кому-то проще симлинки, кому-то проще htacсess. Я как эти симлинки делать без shell доступа вообще не знаю, а htaccess через ftp можно редактировать.

И вправду, про этот момент я не подумал.
Re: Как вы обновляете сайты? (в дополнение к опросу)
От: Mamut Швеция http://dmitriid.com
Дата: 22.02.10 13:39
Оценка:
mlk>Вопрос ко всем у кого есть сайты, и динамические и статические и те которым нужен сервер приложений и те которые работают через обычный CGI, в общем любые. Интересно как именно вы делаете деплоймент, т.е. как вы обновляете код сайта. Конечно интересны и всякие навороченные способы, кастомный код и всё такое, но еще интереснее как же делает большинство.

mlk>Кроме вариантов ответов в самом голосовании интересно какие именно инструменты и протоколы учавствуют в процессе (скажем FTP + Far или rsync или Mercurial итп) и насколько это автоматизировано -- те же обновления на сервере можно вызывать вручную а можно автоматически.



mlk>Еще любопытно на чем именно ваши сайты (чистый HTML, PHP, Perl или все сразу), какой они сложности и сколько из них вы регулярно обновляете.



dmitriid.com, на котором:
— dmitriid.com, janus.dmitriid.com (PHP)
— erlanger.ru (Erlang + PHP)
— beepbeep.dmitriid.com (Erlang)
— два проекта на питоне (пока еще не в публичном доступе)
— еще несколько поддоменов по мелочи (в основном, PHP)

все это свалено в git. git-сервер там же, на dmitriid.com.

Разработка ведется на своем ноуте с VMWare, где настроено такое же окружение, как на сервере. Изменения вручную закидываются в git и вручную вытяиваются из git'а на сервере (то есть команда git pull на сервере выполняется вручную). Периодически на сервер выполняется
git add .
git commit -m 'изменения с сайта'
git push


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

По идее, надо бы еще настроить автоматический бэкап базы данных....


dmitriid.comGitHubLinkedIn
Re: Как вы обновляете сайты? (в дополнение к опросу)
От: Roman Odaisky Украина  
Дата: 22.02.10 15:59
Оценка:
Здравствуйте, mlk, Вы писали:

mlk>Интересно как именно вы делаете деплоймент, т.е. как вы обновляете код сайта.


Есть две ветки, стабильная и текущая. На сервере есть директории /srv/web/coolsite и /srv/web/dev.coolsite, которые соответствуют www.coolsite.com и dev.coolsite.com. На компьютерах, где ведется разработка, есть свои ветки, которые регулярно делают pull и, соответственно, push. Заказчик любит иногда сам поковыряться в HTML и CSS, поэтому у него тоже есть ветка на ноутбуке с Убунту, настроенном точно так же, как и сервер. Иногда мелкие работы выполняются прямо на /srv/web/dev.coolsite, потом там же и коммитятся. Когда dev-ветка готова к употреблению, делается pull ../dev.coolsite. Центрального репозитария нет, де факто им можно считать dev.coolsite, куда нацелены все push и pull.

mlk>Еще любопытно на чем именно ваши сайты (чистый HTML, PHP, Perl или все сразу), какой они сложности и сколько из них вы регулярно обновляете.


Python/Django, 4 тыс. строк, переписан из PHP, где их было где-то 35 тыс. (без учета комментариев и строк из одной пунктуации). 750 ревизий за полтора года, бóльшую часть времени я работал один.
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.