Size: a a a

2020 July 13

A

Artur in ctodailychat
Alex
вот вы люди испорченные контейнерами. нет никаких прогревов, хот деплой на сервера сразу. анзип, копипейст и все.

правда все уже аккуратно пред-компилировано в бинарные файлы, включая html-вьюхи. Плюс есть некоторое шаманство чтобы ускорить само копирование (распаковка через быстрые ssd, сначала обновляем статику, потом вьюхи, потом dll-ки. но это уже дебри и скучно)
да вот у нас как раз без контейнеров все прекрасно тормозит. .нет все равно при первом выполнении заметно дольше, чем при последующих. но я так понимаю, у вам быстрое железо и маленькое время запуска приложения
источник

A

Alex in ctodailychat
Artur
это был секретный пункт к посту «что мы делаем неправильно»
почему секретный? там был пункт "мы на микрософте"
источник

A

Artur in ctodailychat
и вы просто забили на это
источник

A

Alex in ctodailychat
Сергей Аксёнов
setup.exe? Self-hosted у вас на винде?
да. мы же дотнетчики. и разработка в вижуал студии и селф-хостед на винде
источник

A

Alex in ctodailychat
Artur
да вот у нас как раз без контейнеров все прекрасно тормозит. .нет все равно при первом выполнении заметно дольше, чем при последующих. но я так понимаю, у вам быстрое железо и маленькое время запуска приложения
если сначала делать локально aspnet_compiler то ничего не тормозит же
источник

D

Dedulik in ctodailychat
Alex
почему секретный? там был пункт "мы на микрософте"
ты еще про тесты расскажи ) каких сколько, например
источник

D

Dedulik in ctodailychat
я прям ждал новую главу, чтобы сравнить )))
источник

A

Artur in ctodailychat
Alex
если сначала делать локально aspnet_compiler то ничего не тормозит же
чот нам не помогало раньше, но попробую еще раз
источник

A

Alex in ctodailychat
Dedulik
ты еще про тесты расскажи ) каких сколько, например
всего 250 тестов гдето, идут минут 5...

ну все стандартно, как у всех. Есть "обычные" юниттесты для бека. Есть pupeteer и  seleniuim - когда запускаются четыре headless-хрома параллельно и одновременно дрючат приложение во все дыры. И js-ошибки тоже там ловятся (в селениум удобно консоль браузера смотреть). Для  js есть еще jasmine и qunit.

для api запускается http-клиент и тоже дергает все... ну и тп
источник

A

Alex in ctodailychat
Artur
чот нам не помогало раньше, но попробую еще раз
тут ключевая штука  - ускорить само копирование файлов. чтобы максимально атомарно заменились все файлы одновременно.

для этого мы и делаем анзип на временный быстрый диск, потом отедльно скрипты, потом отдельно картинки, и только потом, за один "вжик" обновляется папка "bin" - прогой robocopy (встроена в винду)
источник

D

Dedulik in ctodailychat
Alex
всего 250 тестов гдето, идут минут 5...

ну все стандартно, как у всех. Есть "обычные" юниттесты для бека. Есть pupeteer и  seleniuim - когда запускаются четыре headless-хрома параллельно и одновременно дрючат приложение во все дыры. И js-ошибки тоже там ловятся (в селениум удобно консоль браузера смотреть). Для  js есть еще jasmine и qunit.

для api запускается http-клиент и тоже дергает все... ну и тп
кхе-кхе...
у меня сейчас где-то 520 и я хочу еще 3 по столько и я думал, что у меня мало )
причем это только интеграционные и только на внутрянку...
источник

СА

Сергей Аксёнов... in ctodailychat
Alex
тут ключевая штука  - ускорить само копирование файлов. чтобы максимально атомарно заменились все файлы одновременно.

для этого мы и делаем анзип на временный быстрый диск, потом отедльно скрипты, потом отдельно картинки, и только потом, за один "вжик" обновляется папка "bin" - прогой robocopy (встроена в винду)
Когда я последний раз решал такую проблему, я решил её двумя копиями на диске и переименованием папок. Но это было в 1997 году, возможно с тех пор что-то лучше придумали.
источник

D

Dedulik in ctodailychat
Сергей Аксёнов
Когда я последний раз решал такую проблему, я решил её двумя копиями на диске и переименованием папок. Но это было в 1997 году, возможно с тех пор что-то лучше придумали.
некоторые такое на хайлоаде рассказывают до сих пор )
источник

O

Onlinehead in ctodailychat
Alex
тут ключевая штука  - ускорить само копирование файлов. чтобы максимально атомарно заменились все файлы одновременно.

для этого мы и делаем анзип на временный быстрый диск, потом отедльно скрипты, потом отдельно картинки, и только потом, за один "вжик" обновляется папка "bin" - прогой robocopy (встроена в винду)
А в винде (ну или в виндовых программах, я не знаток совершенно) магия симлинков не работает? У меня был похожий кейс, но под линухой. там все решалось достаточно просто - нагрузка запускалась из директории, которая симлинк на настоящую директорию. Изменение симлинка - атомарная операция, т.к. это фактически единственная запись, а не куча файлов. Ну и кладем рядом, когда надо - меняем симлинк и все, у нас новая версия в условном "current"
источник

СА

Сергей Аксёнов... in ctodailychat
Onlinehead
А в винде (ну или в виндовых программах, я не знаток совершенно) магия симлинков не работает? У меня был похожий кейс, но под линухой. там все решалось достаточно просто - нагрузка запускалась из директории, которая симлинк на настоящую директорию. Изменение симлинка - атомарная операция, т.к. это фактически единственная запись, а не куча файлов. Ну и кладем рядом, когда надо - меняем симлинк и все, у нас новая версия в условном "current"
О!
источник

MS

Max Syabro in ctodailychat
Alex
тут ключевая штука  - ускорить само копирование файлов. чтобы максимально атомарно заменились все файлы одновременно.

для этого мы и делаем анзип на временный быстрый диск, потом отедльно скрипты, потом отдельно картинки, и только потом, за один "вжик" обновляется папка "bin" - прогой robocopy (встроена в винду)
а rename работает не быстрее?
источник

MS

Max Syabro in ctodailychat
1. stop
2. rename current to v123
3. rename new to current
4. start
источник

A

Artur in ctodailychat
Onlinehead
А в винде (ну или в виндовых программах, я не знаток совершенно) магия симлинков не работает? У меня был похожий кейс, но под линухой. там все решалось достаточно просто - нагрузка запускалась из директории, которая симлинк на настоящую директорию. Изменение симлинка - атомарная операция, т.к. это фактически единственная запись, а не куча файлов. Ну и кладем рядом, когда надо - меняем симлинк и все, у нас новая версия в условном "current"
есть такое, называются junctions
источник

MS

Max Syabro in ctodailychat
Сергей Аксёнов
Когда я последний раз решал такую проблему, я решил её двумя копиями на диске и переименованием папок. Но это было в 1997 году, возможно с тех пор что-то лучше придумали.
а, ну я слоупок
источник

AS

Anton Stavinsky in ctodailychat
Onlinehead
А в винде (ну или в виндовых программах, я не знаток совершенно) магия симлинков не работает? У меня был похожий кейс, но под линухой. там все решалось достаточно просто - нагрузка запускалась из директории, которая симлинк на настоящую директорию. Изменение симлинка - атомарная операция, т.к. это фактически единственная запись, а не куча файлов. Ну и кладем рядом, когда надо - меняем симлинк и все, у нас новая версия в условном "current"
надо только не забывать сказать nginx'у чтобы не кешировал симлинки) а то весело получается)
источник