Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Если рассуждать абстрактно, то нужно что-то вроде "транзакций", ЭФ>чтобы можно было откатиться на состояние до начала процесса в случае ошибки.
Спасибо, КО. Вы реально полагаете, что я всего этого не знаю, или просто очень хочется высказаться хоть как-нибудь? Дураку понятно, что вопрос был о конкретике, и почти все остальные поделились реально полезной информацией.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>У кого-нибудь сделана полная автоматизация релиза — от сборки бинарников до обновления данных на сайте и у регистратора? Если да, то какими средствами, насколько геморройно было сделать и потом поддерживать? Если нет, то какие действия остались ручными?
ЕМ>И как решается вопрос с восстановлением, если в середине процесса что-то пошло не так?
У меня обычный баш скрипт, который компилирует, подписывает, заливает на сайт. После каждой операции проверяется код ошибки, если он ненулевой — то Пишет красным текстом «ошибка на таком то шаге». Каждый шаг выводится в терминал. Если что то пошло не так — например, не компилируется, то после ошибки скрипт прерывается. Исправляю ошибку, и перезапускаю.
Здравствуйте, Черный Властелин, Вы писали:
ЧВ>Хм, а что там нужно обновлять у регистратора?
У меня там традиционно версия, URL триальной сборки (как я понимаю, это для каких-то их собственных каталогов), Final Messages, в которых ссылки на полную сборку, и т.п. Я к такой схеме привык еще с тех пор, пока у меня сайт хостился в институте у коллег, и мог упасть, например, на выходные.
По идее, наверное, действительно можно все убрать, и сделать редиректы на свой сайт. У HostGator'а аптайм достаточно приличный.
Здравствуйте, Crimson, Вы писали:
C>после обновления, все проверяется, автоматизировано скачиваются файлы, проверяются хэши, загружаются страницы (в моем случае запрашиваются сервисы) проверяется на соответсвие версий, текста и т.п.
Заливаете сразу в основные каталоги сайта, или сперва делаете локальную копию дерева, которая после завершения обновления подставляется вместо прежней?
Здравствуйте, bnk, Вы писали:
bnk>Я думаю тут важно, что версия например должна задаваться строго вручную, тогда процесс можно перезапускать сколько угодно раз с тем же результатом.
Это если на сайт заливать тупым пофайловым копированием. Но с сайтом в этот же самый момент может работать хренова гора народу, а на страницах есть ссылки друг на друга. По уму, на время обновления надо бы сайт или отключить, или формировать новое дерево в отдельной копии, а затем подставить вместо основного. Тут уже предыдущее состояние может быть важным.
Здравствуйте, Евгений Музыченко, Вы писали:
ЧВ>>Хм, а что там нужно обновлять у регистратора?
ЕМ>У меня там традиционно версия, URL триальной сборки (как я понимаю, это для каких-то их собственных каталогов), Final Messages, в которых ссылки на полную сборку, и т.п. Я к такой схеме привык еще с тех пор, пока у меня сайт хостился в институте у коллег, и мог упасть, например, на выходные. ЕМ>По идее, наверное, действительно можно все убрать, и сделать редиректы на свой сайт. У HostGator'а аптайм достаточно приличный.
У меня с регистратора ссылка на последнюю версию (то есть, на файл без версии), также нет упоминаний о версии в тексте.
Чтобы скачать предыдущие версии, есть отдельная страница на сайте.
Я пользую плагин к вордпресс, там кнопка есть чтобы эту страницу обновить (нажимаю вручную)
ЕМ> Вы реально полагаете, что я всего этого не знаю
Да, вы реально не знаете, что предоставляет вам ваш регистратор.
Иначе бы не было вопроса — есть у него такая возможность или нет.
Реализация закачивания в другую директорию с атомарным переключением
от старой версии к новой версии — это то, что должен был вам предоставить
регистратор, но вы думаете как это сделать своими руками.
Правильное решение здесь — выбрать регистратора,
который предоставляет такую возможность.
Или у текущего регистратора попросить её реализовать и долго ждать.
Если же у вас своё ПО отвечает за хостинг, то транзакционность должно обеспечить оно,
и вопрос о том как это делается — это вопрос к программисту, т.е. к вам.
На сервере-на хостинге делаете демона, который обеспечивает API с транзакциями,
на компьютере проводящем деплоймент пользуетесь транзакциями.
ЕМ>Заливаете сразу в основные каталоги сайта, или сперва делаете локальную копию дерева, которая после завершения обновления подставляется вместо прежней?
Файлы именуются program_installer_versionnumber.exe
соответсвенно пока в бд не появится запись о новой версии файл никто не качает.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>У кого-нибудь сделана полная автоматизация релиза — от сборки бинарников до обновления данных на сайте и у регистратора?
А что ты собрался обновлять у регистратора? Не, я понимаю, есть варианты, когда ты загружаешь туда списки прегенеренных ключей, но вообще это решается. У PPG есть возможность вызвать колбэк с твоего сайта, который и сгенерит ключик. Думаю, у других регистраторов аналогичные возможности тоже есть, 2020 год уже, всё же
Здравствуйте, NWP, Вы писали:
NWP>Я как шароварщик-одиночка, однажды осознал, что сборка и публикация дистрибутива стала занимать у меня неприлично много времени.
Такая же фигня, потому и поднял тему. Дело даже не во времени, а в количестве взаимозависимых сущностей, в обработке которых важно ничего не перепутать.
Здравствуйте, Евгений Музыченко, Вы писали:
ШЖ>>похопэ скрипт ЕМ>Локальный, или на сервере? Если на сервере — сборка тоже там?
Локальный, запускаю в консоли, все сообщения/ошибки перед глазами.
ШЖ>>ребилд, защита, инсталлеры, подписи, новости, сайт, и т.д.
ЕМ>Сайт отдает новости и бинарники из базы, или при обновлении туда загружаются отдельные файлы, правятся ссылки и т.п.?
Сайт практически весь статика, есть несколько включений в виде asp.net контролов,
сайт полностью пересобирается локально, все ссылки, новости и т.д.,
там свой простой шаблонизатор написанный тоже в нулевых, не вижу там повода для бд.
ну и когда все скриптом собралось/перегенерилось, коммит с локальной машины в SVN,
на сервере апдейт из SVN и синхронизация в wwwroot
Здравствуйте, шароварный желудь, Вы писали:
ШЖ>Сайт практически весь статика, есть несколько включений в виде asp.net контролов, ШЖ>сайт полностью пересобирается локально, все ссылки, новости и т.д., ШЖ>там свой простой шаблонизатор написанный тоже в нулевых
Шаблонизатор, как я понимаю, для создания итоговой HTML-разметки? Не напрягает писать текст в таком формате? Это ж, по сути, как HTML вручную писать.
Здравствуйте, bnk, Вы писали:
bnk>А что именно обновлять у регистратора? У меня PP, ключ генерируется на моем сервере.
У меня PayPro и Avangate, но приделать проверку ключей никак руки не дойдут — покупателям до сих пор дается краткая инструкция по скачиванию полной версии, с приватной ссылкой. Как это будет правильнее сделать без обновления описания продукта у регистратора — редиректом на свой сайт, или отдавать регистратору инструкцию под видом ключевой информации? Страницу текста ж оно потянет?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, bnk, Вы писали:
bnk>>А что именно обновлять у регистратора? У меня PP, ключ генерируется на моем сервере.
ЕМ>У меня PayPro и Avangate, но приделать проверку ключей никак руки не дойдут — покупателям до сих пор дается краткая инструкция по скачиванию полной версии, с приватной ссылкой. Как это будет правильнее сделать без обновления описания продукта у регистратора — редиректом на свой сайт, или отдавать регистратору инструкцию под видом ключевой информации? Страницу текста ж оно потянет?
Я бы в таком случае отдавал страницу текста вместо ключа. Как там редирект вообще сделать-то? Ключ же в письме приходит, допустим в ПП.
Здравствуйте, bnk, Вы писали:
bnk>Как там редирект вообще сделать-то?
То ли у PayPro, то ли у Avangate я в настройках продукта точно видел возможность редиректа на заданный URL после завершения обработки заказа.
bnk>Ключ же в письме приходит, допустим в ПП.
Кстати, насколько часто Ваши покупатели жалуются, что письмо с ключом не приходит? У меня упомянутая инструкция со ссылками отправляется через email delivery, и почти каждый день народ жалуется, что получил только основное письмо с инвойсом. Не могу понять, то ли это обычные проблемы рассылки, то ли чрезмерно бдительные почтовые серверы прибивают письма, содержащие ссылки на EXE/ZIP.
Здравствуйте, Евгений Музыченко, Вы писали:
bnk>>Ключ же в письме приходит, допустим в ПП.
ЕМ>Кстати, насколько часто Ваши покупатели жалуются, что письмо с ключом не приходит? У меня упомянутая инструкция со ссылками отправляется через email delivery, и почти каждый день народ жалуется, что получил только основное письмо с инвойсом. Не могу понять, то ли это обычные проблемы рассылки, то ли чрезмерно бдительные почтовые серверы прибивают письма, содержащие ссылки на EXE/ZIP.
Периодически. Но тут я сам виноват — мои письма шли в спам.
У меня записи (SPF, DKIM) на namecheap "слетели" после того как выключил CloudFlare.
У них кнопка есть в cpanel "починить", которая их настраивает ("Email Deliverability"), нажал — почта заработала (в спам перестало идти)