powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UniGUI: continuous deployment
38 сообщений из 38, показаны все 2 страниц
UniGUI: continuous deployment
    #40090781
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UniGUI для меня абсолютно новый инструмент
Да и развёртываете сервисов - не самая простая тема; тем более с базами данных

Хотел поинтересоваться у тех, кто плотно с ним работает и периодически релизит проект
Каким образом вы деплоите
Делаете stand-alone или запускаете как сервис/демон, на какой ОС
Что делаете с базой
Есть ли инфраструктура по накату, откату
Предлагает ли UniGUI что-то для этого
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090783
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Каким образом вы деплоите
RDP или SSH/FTP.
Делаете stand-alone или запускаете как сервис/демон, на какой ОС Stand-alone или ISAPI на windows,
Stand-alone + nginx на Linux.
Что делаете с базойИспользуем.
Есть ли инфраструктура по накату, откату
Предлагает ли UniGUI что-то для этогоТам есть HyperServer для этого, но я пока не пользуюсь.
http://www.unigui.com/doc/online_help/remote-deployment.htm
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090785
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автоматическое обновление доступно в 2-х вариантах
1) isapi dll с загрузчиком, новый файл закидывается на сервер, загрузчик проверяет наличие новой версии и обновляет ее. Нюанс в том что в момент обновления идет дроп всех сессий.
2) через гиперсервер, все есть в доке. Плюс в том что на гипере можно спокойно обновлять, все кто работают будут продолжать работать с текущей версией приложения, новые клиенты загрузят себе уже новую версию приложения, т.е все аккуратно и корректно.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090787
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,
энди,

Расскажите подробнее про гиперсервер
Че может, как принято применять, почему не юзаете

Что по базам?

Не очень понятно по новым-старым приложениям
Это же http, как могут быть доступны старые?
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090795
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU

Что по базам?


базы данных не имею никакого отношения к uniGUI
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090800
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди
2) через гиперсервер, все есть в доке. Плюс в том что на гипере можно спокойно обновлять, все кто работают будут продолжать работать с текущей версией приложения, новые клиенты загрузят себе уже новую версию приложения, т.е все аккуратно и корректно.
Это только для очень простых случаев.

Ибо обычно обновления включают в себя не только обновление бинарника, а потому работать нормально сможет либо только новая версия либо только старая, но не одновременно.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090801
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Как и Delphi
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090802
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
энди
2) через гиперсервер, все есть в доке. Плюс в том что на гипере можно спокойно обновлять, все кто работают будут продолжать работать с текущей версией приложения, новые клиенты загрузят себе уже новую версию приложения, т.е все аккуратно и корректно.
Это только для очень простых случаев.

Ибо обычно обновления включают в себя не только обновление бинарника, а потому работать нормально сможет либо только новая версия либо только старая, но не одновременно.


Не всегда обновление версии приложения ведет к изменению структур данных, в большинстве случаев структура данных все же достаточно статична. У меня например все на хранимках и я часто делаю версионирование хранимки через имя, т.е оба бинарника будут превосходно работать одновременно.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090804
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди
Не всегда обновление версии приложения ведет к изменению структур данных, в большинстве случаев структура данных все же достаточно статична. У меня например все на хранимках и я часто делаю версионирование хранимки через имя, т.е оба бинарника будут превосходно работать одновременно.
Если задача должна работать 24/7, без простоев - тогда да.
Но это усложнение задачи и повышенные затраты сил, которые можно не делать если допустимо плановое окно.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090805
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас при изменении БД включаются 2 скрипта: скрипт доката, скрипт отката
Но у нас легаси система
Интересно, как принято работать сейчас
Как апдейтят сайты
И что у UniGUI по этому поводу есть
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090874
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
У нас при изменении БД включаются 2 скрипта: скрипт доката, скрипт отката
Но у нас легаси система
Интересно, как принято работать сейчас
Как апдейтят сайты
И что у UniGUI по этому поводу есть


А БД чтоли без поддержки транзакций?
Ты не путай, unigui к БД не имеет ровным счетом никакого отношения, unigui это просто http сервак с встроенной библиотекой ExtJS. А уж где он будет данные брать ему пофигу, хочешь из json на диске читай, хочешь из БД тяни.
Нет никакого сайта на unigui, считай это просто бинарник и все.
Другое дело что этот бинарник может быть сервисом под винду, isapi библиотекой для IIS, exe для stand-alone или запуском под гиперсервером, да и под линукс тоже может.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090905
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди
Нет никакого сайта на unigui, считай это просто бинарник и все.
Да ла-а-а-адно! (с)

А как же куча js, css, html и прочего jpg, ы?
Там один рантайм юнигуя тысяч 10 файлов.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090938
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте ещё раз
Технологий много
Я раньше не деплоил «сайты». Или ты хочешь сказать, что подавляющее большинство UniGUI программеров не сайты делают?

Я не вижу большой разницы между сайтом и http серваком с ExtJS

Здесь спрашиваю потому, что ожидаю, что у вас есть опыт
Далее
Я не говорю, что UniGUI должен быть связан с БД. Но в современном мире трудно себе представить сайт, который не взаимодействует с базой. Соответственно её как-то нужно накатывать, откатывать. Вот я и спрашиваю, как в целом сейчас подходят к апдейтам, откатам сайтов. Если что-то есть в UniGUI - идеально
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40090968
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

Ну если подходить формально то этот рантам не что иное как сама ExtJS библиотека идущая в составе UniGUI и по факту не являющуюся ее частью. В свое время был кипеж когда на автора наехали из Сенчи и он был вынужден заставлять пользователей самих приобретать лицензию на ExtJS и продавал лицензию на UniGUI только при наличии оплаченной лицензии Сенчи.
Плюс, рантайм ставится и больше к нему никаких обращений обычно все же не производится, все изменения в css как правило делаются отдельными файлами, а не насилием над файлами рантайма. Хотя мне в свое время для полной поддержки fontawesomе пришлось жестко вздрючить рантайм. А вообще, каждый сходит с ума по своему, у вас свои тараканы, у меня свои, лучше или хуже тут нет. :)

SOFT FOR YOU,
У меня обычно обновление проходит в виде накатывании обновы на БД (либо вторая копия БД), после чего через ftp заливается обновление для деплоя и все файлы нуждающиеся в обновлении на диске. Гипер подхватывает обновление exe и устанавливает его.
Но если надо по серьезному, то надо делать фактически 2 сайта/проекта, накатывать на один из них, прогонять тесты, после чего переключать с одного сервера на другой. Но я так не заморачивался если честно, мне хватает отдельного сервера для разработки, а потом просто переношу изменения в БД на боевой сервер и деплою через ftp обновление файлов и главного модуля.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091078
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди
rgreat,

Ну если подходить формально то этот рантам не что иное как сама ExtJS библиотека идущая в составе UniGUI и по факту не являющуюся ее частью. В свое время был кипеж когда на автора наехали из Сенчи и он был вынужден заставлять пользователей самих приобретать лицензию на ExtJS и продавал лицензию на UniGUI только при наличии оплаченной лицензии Сенчи.
Плюс, рантайм ставится и больше к нему никаких обращений обычно все же не производится, все изменения в css как правило делаются отдельными файлами, а не насилием над файлами рантайма. Хотя мне в свое время для полной поддержки fontawesomе пришлось жестко вздрючить рантайм. А вообще, каждый сходит с ума по своему, у вас свои тараканы, у меня свои, лучше или хуже тут нет. :)
Рантайм я указал только как пример.
Нормальный сайт все одно имеет свои файлы кроме бинарника и рантайма.

И их тоже надо иногда обновлять.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091131
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Я не говорю, что UniGUI должен быть связан с БД. Но в современном мире трудно себе представить сайт, который не взаимодействует с базой. Соответственно её как-то нужно накатывать, откатывать. Вот я и спрашиваю, как в целом сейчас подходят к апдейтам, откатам сайтов. Если что-то есть в UniGUI - идеально


Всё зависит от требуемых "девяток"
Если допустимо устроить "maintenance" - стопаете сервис, и апгрейдите базу с предварительным бекапом, проверками (если надо), приемочным тестированием и т.п.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091132
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
энди
rgreat,

Ну если подходить формально то этот рантам не что иное как сама ExtJS библиотека идущая в составе UniGUI и по факту не являющуюся ее частью. В свое время был кипеж когда на автора наехали из Сенчи и он был вынужден заставлять пользователей самих приобретать лицензию на ExtJS и продавал лицензию на UniGUI только при наличии оплаченной лицензии Сенчи.
Плюс, рантайм ставится и больше к нему никаких обращений обычно все же не производится, все изменения в css как правило делаются отдельными файлами, а не насилием над файлами рантайма. Хотя мне в свое время для полной поддержки fontawesomе пришлось жестко вздрючить рантайм. А вообще, каждый сходит с ума по своему, у вас свои тараканы, у меня свои, лучше или хуже тут нет. :)
Рантайм я указал только как пример.
Нормальный сайт все одно имеет свои файлы кроме бинарника и рантайма.

И их тоже надо иногда обновлять.


А я наоборот стараюсь чтобы у меня небыло внешних файлов иконок и прочего, unigui начинает их кэшировать в каждой сессии + лишняя нагрузка на канал и сервер. У меня строго только рантайм + все иконки из пакета fontawesome
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091224
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди
А я наоборот стараюсь чтобы у меня небыло внешних файлов иконок и прочего, unigui начинает их кэшировать в каждой сессии + лишняя нагрузка на канал и сервер.
Дык не надо это все в бинарник зашивать, и не будет ничего кэшировать.
Файлы по возможности должны лежать как файлы.
ИМХО это более управляемо.
У меня строго только рантайм + все иконки из пакета fontawesomeДаешь бинарник и DFM-ки размером в сотни мегов! ;)
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091803
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Дык не надо это все в бинарник зашивать, и не будет ничего кэшировать.
Файлы по возможности должны лежать как файлы.


Браузер будет кэшировать, я с этим помучился, особенно на мобильных браузерах. На десктопе есть Ctrl+F5/Shift+F5/Ctrl+Shift+R, а на мобильных смартфонах/планшетах как заставить браузер загрузить страницу без кэширования? Приходится к файлам добавлять спец. параметр с датой и временем.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091843
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Есть глобальное решение:

Cache-Control: no-store

Ы?

Ну а в целом: если меняешь файл - меняй и его URL.
А так у меня автоматом добавляется текущее время к списку files при загрузке сервера.
Ну или можно CRC добавить.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091950
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Cache-Control: no-store


а можно подробнее в разрезе uniGUI?

Кстати, знакомый веб-программер мучался (на вордпрессе) с этими разными параметрами и решениями, т.к. контент иной раз очень жестко кэшировался и ничего не помогало.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091951
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
А так у меня автоматом добавляется текущее время к списку files при загрузке сервера.


что за список, это как оно там добавляется?
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091952
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я к картинкам вот так добавляю

Код: pascal
1.
2.
3.
4.
5.
6.
7.
function GetNoCacheString: String;
begin
  result := '?' + FormatDateTime('ddmmyyyyhhmmss', Now);
end;

//использование
img.Url  := sURL + ExtractFileName(sFile) + GetNoCacheString;



для CastomCSS
http://forums.unigui.com/index.php?/topic/14570-как-быть-с-кэшем-на-мобильных-браузерах/&tab=comments#comment-79355
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091968
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,
В TUniServerModule.UniGUIServerModuleCreate:

Код: pascal
1.
2.
3.
4.
5.
6.
  c:=GetTickCount;
  for i:=0 to CustomFiles.Count-1 do begin
    if CustomFiles[i]<>'' then begin
      CustomFiles[i]:=CustomFiles[i]+'?_date='+c.ToString
    end;
  end;
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40091973
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
а можно подробнее в разрезе uniGUI?

Что-то типа:

Код: pascal
1.
2.
3.
procedure TUniServerModule.UniGUIServerModuleHTTPCommand(ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var Handled: Boolean);
begin
  AResponseInfo.CustomHeaders.Add('Cache-Control: no-store');
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092011
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Браузер будет кэшировать, я с этим помучился, особенно на мобильных браузерах. На десктопе есть Ctrl+F5/Shift+F5/Ctrl+Shift+R, а на мобильных смартфонах/планшетах как заставить браузер загрузить страницу без кэширования? Приходится к файлам добавлять спец. параметр с датой и временем.

зачем так гадить своему пользователю...

зы
в мобильных браузерах можно сбросить кеш
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092016
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Дегтярев Евгений
X11
Браузер будет кэшировать, я с этим помучился, особенно на мобильных браузерах. На десктопе есть Ctrl+F5/Shift+F5/Ctrl+Shift+R, а на мобильных смартфонах/планшетах как заставить браузер загрузить страницу без кэширования? Приходится к файлам добавлять спец. параметр с датой и временем.

зачем так гадить своему пользователю...

зы
в мобильных браузерах можно сбросить кеш

ну так расскажи, как
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092024
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

ты, извини, издеваешься?
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092102
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

извиняю, но ни разу не издеваюсь
таймстамп в GET-параметрах это костыль, который годится только на этапе разработки
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092246
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а если браузеры очень жестко кэшируют контент и ничего более не помогает?
Постоянно чистить кэш у мобильного браузера - не вариант. К тому же многие даже не знают, как это делать и не понимают, что это вообще такое. Они даже не знают понятие "браузер". Т.е. для обывателя все это сложно.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092262
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бывает еще и прокси сервера кешируют.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092273
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не только прокси. У клиента в офисе установлен Керио, там тоже есть кэширование, при этом внутренний прокси-сервер выключен.
Сказали, что даже пришлось кэширование выключить, т.к. даже Ctrl+F5 на клиентских браузерах не помогало загрузить новые данные на разных сайтах.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092342
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

а meta-теги не помогают?
Код: html
1.
2.
3.
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">


Наткнулся правда на обсуждение, где у человека фреймы на странице и отдельный фрейм не обновляется, хотя такие теги есть. И ваш Фархад пишет , что надо это прописывать в каждом фрейме.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092361
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62,

Насколько я знаю, мета теги игнорируются проксями, в отличие от хедеров HTTP.

Хедеры надежней, в общем.
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092363
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,
может быть, не знаю, давно сталкивался с такой проблемой и не в связи с Unigui, не помню, http-хедерами или тегами решил. В принципе, как пишут, эти теги, с HTTP-EQUIV, и предназначены для замены хедеров, если хедеры с сервера нет возможности изменить. Тогда хедеры соответствующие можно попробовать, кроме Cache-Control, про который ты написал, ещё Expires например. (Это я для X11)
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092374
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
s62,
Насколько я знаю, мета теги игнорируются проксями, в отличие от хедеров HTTP.
Хедеры надежней, в общем.

+
1. прокси, cdn и тд не анализируют содержимое
2. у заголовков приоритет перед значением тега http-equiv, про него можно забыть, т.к. ничего не гарантирует, а использование напоминает карго культ
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092377
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Ну а если браузеры очень жестко кэшируют контент и ничего более не помогает?
Постоянно чистить кэш у мобильного браузера - не вариант. К тому же многие даже не знают, как это делать и не понимают, что это вообще такое. Они даже не знают понятие "браузер". Т.е. для обывателя все это сложно.


браузер кеширует то что рзрешили
если надо сбрасывать кеши, значит разработчик накосячил

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

динамические данные
кешировать нет смысла, иногда и нельзя, т.к. уникальны для пользователя, а порой содержат приватные данные
чтобы запретить кеширование достаточно чтобы бек отдавал
Cache-Control: no-cache, no-store, must-revalidate
либо
Expires с датой в прошлом
Часто указываю и то и то.

статическикие данные
кешировать можно и нужно, зачем, думаю, понятно
есть способы "жестко" закешировать статику и избежать сетевых запросов для загруженных ранее данных, и при этом грузить актуальную версию после релиза
статика отдается с заголовком expires: <дата в будущем>, например, на год вперед
статика запрашивается с гет параметром, в качестве значения используется не время, которое постоянно меняется, а версия/тег/хеш комита или даже время сборки, главное чтобы это была уникальная строка для каждой сборки
при первой загрузке или после очередного релиза клиент загрузит актуальные версии статики и положит в кеш на год, при последующих загрузках статика будет в кеше, пока не случится новый релиз.

есть более продвинутый вариант, но и приготовить его сложнее (rgreat про него упоминал)
дата протухания так же устанавливается далеко в будущее
но в качестве параметра используется уже не версия приложения а "версия" файла, например, его хеш
если в предыдущем варианте клиент после релиза перекачает всю статику, то в этом только изменившиеся файлы
можно на этапе сборки зашить хеш в имя файла и не использовать гет параметры, но сути это не меняет
...
Рейтинг: 0 / 0
UniGUI: continuous deployment
    #40092397
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений
браузер кеширует то что рзрешили
если надо сбрасывать кеши, значит разработчик накосячил


ага, хотелось бы в это верить
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / UniGUI: continuous deployment
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]