Деплой...
От: Shmj Ниоткуда  
Дата: 08.09.21 08:24
Оценка:
Речь о серверных приложениях. Т.к. сейчас все делают через JS-фреймворки React/Vue/Angular, а вопрос касается .Net — то о WebAPI, ибо все остальное уже не актуально.

Итак, стандартный способ деплоя — через непрерывную интеграцию CI/CD с помощью специального ПО или же просто через скрипты. Чуть глубже. Сейчас многие предпочитают виртуализацию, т.е. все через Docker/Kubernetes и при каждом новом деплое — обычно создается новая вирт. среда (а старая удаляется, дабы не думать о совместимости).

Раньше было несколько иначе — постоянно держали сервер, заходили на него по RDP, вручную удаляли файлы сайта на IIS, копировали новые. Или же проделывали то же самое через sftp/ftps.

Так вот. Ранее не было нужды пересобирать все, если изменения касались одного модуля (библиотеки). Даже более — можно было создать плагинную систему и копировать плагины просто в директорию, добавляя таким образом новый функционал, не вмешиваясь в старый, не производя компиляцию даже.

Теперь подобного можно достичь с помощью т.н. микросервисов, что не подходит для мелких случаев — для каждого плагина делать отдельный микросервис — это бред.

Ну и вопрос такой. Как лучше совместить плагинную систему и современные тренды, когда принято все собирать из исходников с нуля, обычно собирают целый проект а не по частям? Или же лучше не делать плагинов а просто пересобирать все с нуля как все?
Re: Деплой...
От: Ночной Смотрящий Россия  
Дата: 08.09.21 13:39
Оценка: +4
Здравствуйте, Shmj, Вы писали:

S>Итак, стандартный способ деплоя — через непрерывную интеграцию CI/CD с помощью специального ПО или же просто через скрипты.


Нет никакого такого стандартного способа.

S>Раньше было несколько иначе — постоянно держали сервер, заходили на него по RDP, вручную удаляли файлы сайта на IIS, копировали новые.


Так делали только ... цензурное слово не подбирается. Даже для совсем наколеночных проектов проще было деплоить через WebDeploy.

S>Так вот. Ранее не было нужды пересобирать все, если изменения касались одного модуля (библиотеки).


Это как? Ты раньше на проде патчил только одну сборку из проекта? Ну ты герой.

S> Даже более — можно было создать плагинную систему


Зачем плагинная система на сервере? Чтобы тормозов побольше?

S>Теперь подобного можно достичь с помощью т.н. микросервисов, что не подходит для мелких случаев — для каждого плагина делать отдельный микросервис — это бред.


Микросервисы это не плагины, и цель у них совершенно иная.

S>Ну и вопрос такой. Как лучше совместить плагинную систему и современные тренды, когда принято все собирать из исходников с нуля, обычно собирают целый проект а не по частям? Или же лучше не делать плагинов а просто пересобирать все с нуля как все?


Делать без плагинов, по крайней мере пока ты не сможешь ответить на вопрос какие бенефиты тебе дают твои плагины.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Деплой...
От: fmiracle  
Дата: 08.09.21 14:27
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Так вот. Ранее не было нужды пересобирать все, если изменения касались одного модуля (библиотеки). Даже более — можно было создать плагинную систему и копировать плагины просто в директорию, добавляя таким образом новый функционал, не вмешиваясь в старый, не производя компиляцию даже.


Можно но не нужно. Куда проще сделать скрипт, который все удалил и накатил новое.

И пересобрать все — какая проблема? Не вручную же ты символы пишешь, компьютер автоматом все пересоберет и не устанет. Ну, если сборка проекта целиком занимает двое суток, могу понять, но в дотнете как-то обычно сборка совсем не такая длинная...
Re[2]: Деплой...
От: Qulac Россия  
Дата: 08.09.21 15:19
Оценка: +1 :))) :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Shmj, Вы писали:


S>>Итак, стандартный способ деплоя — через непрерывную интеграцию CI/CD с помощью специального ПО или же просто через скрипты.


НС>Нет никакого такого стандартного способа.


S>>Раньше было несколько иначе — постоянно держали сервер, заходили на него по RDP, вручную удаляли файлы сайта на IIS, копировали новые.


НС>Так делали только ... цензурное слово не подбирается. Даже для совсем наколеночных проектов проще было деплоить через WebDeploy.


Полегче пожалуйста, вот тут обидно было.
Программа – это мысли спрессованные в код
Re: Деплой...
От: vaa  
Дата: 09.09.21 02:48
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ну и вопрос такой.


Использую следующую схему.
1. приложение монолитное(т.е. без плагинов).
2. паблиш запускает скрипт который зипует сборку app_1.0.1.42.zip без лишних артефактов.
3. либо через простейшую реализацию submit либо ручками копирую в спец папку на сервак.
4. дальше опять либо ручками, либо через filewatcher запускается процесс обновления.
в скрипт можно встроить бэкап приложения, базы. вообщем резвимся как хотим.
в IIS есть еще фишка под названием app_offline.htm(из webdeploy).
если такой файл кинуть в корень приложения, то оно останавливается(вместо него содержимое странички пользователям)
и можно спокойно обновить приложение.

по поводу вебдеплоя долго настраивали с товарищем, но в ответственный момент происходил сбой, причину которого я так и не отловил.
лечилось с трудом, шаманство и повторная настройка. подозреваю из-за отсутствия валидного сертификата на сервере. может еще что-то.
поэтому отказался.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Деплой...
От: Sharov Россия  
Дата: 09.09.21 12:50
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Раньше было несколько иначе — постоянно держали сервер, заходили на него по RDP, вручную удаляли файлы сайта на IIS, копировали новые.

НС>Так делали только ... цензурное слово не подбирается. Даже для совсем наколеночных проектов проще было деплоить через WebDeploy.

Мне надо было наколеночный проект закачать на машину в aws, что подцепить к RMQ для обработки задача.
Как webdeploy тут мог помочь, он же вроде только для веба (ISS,asp.net)? Я просто тот, кто копировал
файлы (папочку с ) на прод. Сейчас (net5) проще -- single_exe (а-ля го) + докер. Хотя и без докера
один exe совсем симпатично. А webdeploy для не веб приложения как?
Кодом людям нужно помогать!
Re[3]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 09.09.21 14:45
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Мне надо было наколеночный проект закачать на машину в aws


У AWS свой инструментарий.

S>один exe совсем симпатично. А webdeploy для не веб приложения как?


А где я обещал webdeploy не для веб-приложения?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Деплой...
От: Sharov Россия  
Дата: 09.09.21 15:27
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Мне надо было наколеночный проект закачать на машину в aws

НС>У AWS свой инструментарий.

У нас своя инф-ра, в частности RMQ, так что aws тут не поможет.

S>>один exe совсем симпатично. А webdeploy для не веб приложения как?

НС>А где я обещал webdeploy не для веб-приложения?

Так делали только ... цензурное слово не подбирается. Даже для совсем наколеночных проектов проще было деплоить через WebDeploy.


Наколеночные приложения не только веб. Это может быть обработчик, который живет на отдельной машине.
Кодом людям нужно помогать!
Re[5]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 09.09.21 16:44
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>>Мне надо было наколеночный проект закачать на машину в aws

НС>>У AWS свой инструментарий.
S>У нас своя инф-ра, в частности RMQ, так что aws тут не поможет.

Не очень понял при чем тут своя инфраструктура. Если речь про деплоймент самого кролика или прочей инфраструктуры, то он деплоится контейнерами или образами VM, таки через штатные средства AWS. Если же речь про деплоймент своего кода, как в стартовом сообщении, то при чем тут вообще кролик?

S>>>один exe совсем симпатично. А webdeploy для не веб приложения как?

НС>>А где я обещал webdeploy не для веб-приложения?
S>

S>Так делали только ... цензурное слово не подбирается. Даже для совсем наколеночных проектов проще было деплоить через WebDeploy.

S>Наколеночные приложения не только веб.

Ты стартовое сообщение читал?

а вопрос касается .Net — то о WebAPI, ибо все остальное уже не актуально.


Не нужно выдирать мои слова из контекста и приписывать то, что я не утверждал.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Деплой...
От: Sharov Россия  
Дата: 09.09.21 17:34
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>У нас своя инф-ра, в частности RMQ, так что aws тут не поможет.

НС>Не очень понял при чем тут своя инфраструктура. Если речь про деплоймент самого кролика или прочей инфраструктуры, то он деплоится контейнерами или образами VM, таки через штатные средства AWS. Если же речь про деплоймент своего кода, как в стартовом сообщении, то при чем тут вообще кролик?

Нету докера и вм, есть машина на которой надо запустить exe файл (или сервис).

S>>Наколеночные приложения не только веб.

НС>Ты стартовое сообщение читал?
НС>

НС>а вопрос касается .Net — то о WebAPI, ибо все остальное уже не актуально.

НС>Не нужно выдирать мои слова из контекста и приписывать то, что я не утверждал.

Если речь о развертывании веб решений, то ладно. А как не веб решения без докера развертывать не через rdp
я не знаю.
Кодом людям нужно помогать!
Re[3]: Деплой...
От: rosencrantz США  
Дата: 09.09.21 17:45
Оценка: 5 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, Ночной Смотрящий, Вы писали:


S>>>Раньше было несколько иначе — постоянно держали сервер, заходили на него по RDP, вручную удаляли файлы сайта на IIS, копировали новые.

НС>>Так делали только ... цензурное слово не подбирается. Даже для совсем наколеночных проектов проще было деплоить через WebDeploy.

S>Мне надо было наколеночный проект закачать на машину в aws


У AWS есть родной очень клёвый тул CloudFormation для управления ресурсами AWS. Если ваш RMQ это на самом деле Amazon MQ, берём CloudFormation и вперёд с https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html . Если аппликейшн у вас докеризованный, то тем же CloudFormation здрово всё деплоится через ECS https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html .

Если вы прям ненавидите амазоновскую проприетарщину, есть прекраснейший Terraform, который умеет всё то же, что и CloudFormation (но только _немного иначе_). Умеет ещё кучу других провайдеров, и совсем "общие" вещи вроде подключиться через SSH куда-то и что-то там выполнить. Можно одним слоем развернуть инстанс EC2, а вторым навалить на него какой вам софт нужен.

Не надо прикрываться этой "наколеночностью" — сейчас много хороших инструментов с отличной документацией, которые позволяют сразу сделать хорошо.
Отредактировано 10.09.2021 18:52 rosencrantz . Предыдущая версия .
Re[7]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 10.09.21 04:34
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Нету докера и вм


В AWS? Так не бывает.

S>Если речь о развертывании веб решений, то ладно. А как не веб решения без докера развертывать не через rdp

S>я не знаю.

Есть куча решений, зависящих от конкретной инфраструктуры. У каждого оркестратора, к примеру, они свои или набор сторонних заточенных под него. Есть относительно универсальные решения типа Ansible или DSC. Есть средства управления развертывания, например Octopus. Есть решения на базе средств, напрямую не предназначенных для развертывания — svn, git, teamcity.
Но в 2021 году не использовать контейнеры, а вместо этого ручками копировать через RDP файлики — очень странное решение.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[8]: Деплой...
От: Sharov Россия  
Дата: 10.09.21 09:29
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Если речь о развертывании веб решений, то ладно. А как не веб решения без докера развертывать не через rdp

S>>я не знаю.
НС>Есть куча решений, зависящих от конкретной инфраструктуры. У каждого оркестратора, к примеру, они свои или набор сторонних заточенных под него. Есть относительно универсальные решения типа Ansible или DSC. Есть средства управления развертывания, например Octopus. Есть решения на базе средств, напрямую не предназначенных для развертывания — svn, git, teamcity.
НС>Но в 2021 году не использовать контейнеры, а вместо этого ручками копировать через RDP файлики — очень странное решение.

Легаси, .net 4.* какой-нибудь.
Кодом людям нужно помогать!
Re[9]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 10.09.21 10:06
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Легаси, .net 4.* какой-нибудь.


И? Контейнеры с ним есть.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[10]: Деплой...
От: Sharov Россия  
Дата: 10.09.21 11:00
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Легаси, .net 4.* какой-нибудь.

НС>И? Контейнеры с ним есть.

А если нету win10, рабочая win7 и win2008 продуктовая? А как до докера люди делали?
Кодом людям нужно помогать!
Re[11]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 10.09.21 12:01
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>>Легаси, .net 4.* какой-нибудь.

НС>>И? Контейнеры с ним есть.
S>А если нету win10, рабочая win7 и win2008 продуктовая?

Поставить.

S> А как до докера люди делали?


А еще раньше люди огонь при помощи кремня добывали.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[12]: Деплой...
От: Sharov Россия  
Дата: 10.09.21 12:25
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>> А как до докера люди делали?

НС>А еще раньше люди огонь при помощи кремня добывали.

Ну это уход от вопроса. Т.е. таки rdp и копировать ручками.
Кодом людям нужно помогать!
Re[13]: Деплой...
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 10.09.21 13:55
Оценка: +1
Здравствуйте, Sharov, Вы писали:

S>Ну это уход от вопроса. Т.е. таки rdp и копировать ручками.

Ну вам же ответили ранее https://rsdn.org/forum/dotnet/8087679.1
Автор: Ночной Смотрящий
Дата: 10.09.21

Есть куча решений, зависящих от конкретной инфраструктуры. У каждого оркестратора, к примеру, они свои или набор сторонних заточенных под него. Есть относительно универсальные решения типа Ansible или DSC. Есть средства управления развертывания, например Octopus. Есть решения на базе средств, напрямую не предназначенных для развертывания — svn, git, teamcity.


Как минимум Octopus, Ansible и DSC для связки .Net 4 и Server 2008R2+ работать должны.
К перечисленным решениям можно добавить еще:
— Microsoft System Center (который Operation Manager и иже с ним)
— TFS (release management там с версии 2015 вроде) / Azure DevOps / Azure Pipelines
В принципе, народ работал и на базе GPO в Active Directory, но это, скорее из серии "когда уж совсем никак, то пусть будет хоть это".

RDP + ручная установка вполне прокатывают как разовое средство, но как только речь заходит о более-менее регулярных деплоях (или деплоях на более чем один Instance, а я так думаю, в большинстве случаев деплой одного релиза идет минимум 3 раза: на тестовом окружении, на Stage и на Prod и это еще без учета того, что на скорее всего у вас кластер машин на Prod), имхо, от них нужно уходить и как можно быстрее, иначе риск операторской ошибки становится слишком большим!
Re[13]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 10.09.21 14:10
Оценка: +1
Здравствуйте, Sharov, Вы писали:

S>>> А как до докера люди делали?

НС>>А еще раньше люди огонь при помощи кремня добывали.
S>Ну это уход от вопроса. Т.е. таки rdp и копировать ручками.

Я тебе там целую пачку вариантов помимо контейнеров привел, но ты их все проигнорировал. Ну ОК, продолжайте с RDP развлекаться.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[14]: Деплой...
От: vaa  
Дата: 10.09.21 14:11
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>RDP но как только речь заходит о более-менее регулярных деплоях


Так о том и речь. нет священной коровы. или одного единственно верного способа!
☭ ✊ В мире нет ничего, кроме движущейся материи.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.