Re[15]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 10.09.21 14:13
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>Так о том и речь. нет священной коровы. или одного единственно верного способа!


Это было моей первой фразой в этом топике. А речь здесь про то что ручное копирование в RDP — ну совсем уж моветон.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[14]: Деплой...
От: Sharov Россия  
Дата: 10.09.21 14:42
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>RDP + ручная установка вполне прокатывают как разовое средство, но как только речь заходит о более-менее регулярных деплоях (или деплоях на более чем один Instance, а я так думаю, в большинстве случаев деплой одного релиза идет минимум 3 раза: на тестовом окружении, на Stage и на Prod и это еще без учета того, что на скорее всего у вас кластер машин на Prod), имхо, от них нужно уходить и как можно быстрее, иначе риск операторской ошибки становится слишком большим!


Благодарю, я это все понял и, отчасти, знал. Просто было категорическое заявление, что RDP+ручное копирование
используют совсем нехорошие люди. В моем случае была развертка на одну машину и совершенно на нерегулярной основе.
Вот как раз для подобного RDP+ копирование самое то, поэтому меня и удивила категоричность (а-ля всегда и везде).
Кодом людям нужно помогать!
Re[11]: Деплой...
От: rosencrantz США  
Дата: 10.09.21 19:29
Оценка: 5 (1)
Здравствуйте, Sharov, Вы писали:

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


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

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

S>А если нету win10, рабочая win7 и win2008 продуктовая? А как до докера люди делали?


Для случая "вот у нас есть один сервер, в него надо деплоить" — берётся что там самое близкое к SSH в Windows, пишется скрипт, который заливает новый билд и дёргает что там у IIS надо дёрнуть, чтобы он понял что произошло. Даже такая наколенка в сто раз лучше, чем руками через RDP. Более хороший вариант — примерно то же самое, только не на коленке, а хоть через какой-нибудь Ansible или Puppet — меньше шансов налажать, какая-то диагностика, обработка ошибок. Но это типа подходы 10-летней давности.

Сейчас стараются максимально разграничить "неизменную часть" (типа низкоуровневая инфраструктура вроде сервера, на котором есть чистая минимальная ОС и демон докера) и изменяемую часть (контейнеры, которые в том самом докере крутятся). Вот эту изменяемую часть не обновляют — её на каждый деплоймент убивают и создают новую с нуля.

Примерно такой же подход можно и без докера сделать — на каждый билд строить новый AMI образ с Windows, IIS и вашим софтом (вот например Packer вроде это умеет: https://learn.hashicorp.com/tutorials/packer/aws-windows-image?in=packer/integrations), поднимать новый чистый EC2 инстанс с этим образом, и убивать старый.

Даже если не Packer, точно так же делаем EC2 с голой виндой, натравливаем на него Ansible/Puppet, получаем свежий сервер со свежим билдом, старый грохаем.
Re[15]: Деплой...
От: rosencrantz США  
Дата: 10.09.21 19:36
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Просто было категорическое заявление, что RDP+ручное копирование

S>используют совсем нехорошие люди. В моем случае была развертка на одну машину и совершенно на нерегулярной основе.
S>Вот как раз для подобного RDP+ копирование самое то, поэтому меня и удивила категоричность (а-ля всегда и везде).

А я вот плюсану категоричность, потому что нет каких-то объективных причин выделять "редко деплою" и "деплою всего на 1 машину" в отдельную категорию. Обычно если умеешь, то пофигу редко там или не редко — заскриптованный деплоймент становится таким необсуждаемым минимумом, как руки мыть после туалета. Если не умеешь, да, причины не делать нормально всегда найдутся.
Re[12]: Деплой...
От: Shmj Ниоткуда  
Дата: 10.09.21 20:13
Оценка:
Здравствуйте, rosencrantz, Вы писали:

R>Для случая "вот у нас есть один сервер, в него надо деплоить" — берётся что там самое близкое к SSH в Windows,


И что же там самое близкое? Не cmd ли? Вы лично как делали во времена IIS?

R>через какой-нибудь Ansible или Puppet — меньше шансов налажать, какая-то диагностика, обработка ошибок. Но это типа подходы 10-летней давности.


Ansible появился совсем недавно а Puppet работает только через cygwin.

Сразу видно, что никогда в жизни вы этого не делали — только теоретизируете про чистые идеалы

А сейчас совсем другая ситуация — любой дурик сделает деплой через CI/CD.

Раньше проще всего было через RDP или FTP — разница не большая. Просто нажимаете одну кнопку, подключаетесь — и копируете файлы. Это быстро.
Re[13]: Деплой...
От: rosencrantz США  
Дата: 10.09.21 21:06
Оценка: +2
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, rosencrantz, Вы писали:


R>>Для случая "вот у нас есть один сервер, в него надо деплоить" — берётся что там самое близкое к SSH в Windows,


S>И что же там самое близкое? Не cmd ли?


Ага, через телнет.

S>Вы лично как делали во времена IIS?


Ну например TeamCity + MS Build + WebDeploy в 2012 году. А что?

R>>через какой-нибудь Ansible или Puppet — меньше шансов налажать, какая-то диагностика, обработка ошибок. Но это типа подходы 10-летней давности.


S>Ansible появился совсем недавно а Puppet работает только через cygwin.


Ansible появился 9 лет назад, и слово "подходы" у меня там именно для того, чтобы говорить не об инструментах, а об идеях.

S>Сразу видно, что никогда в жизни вы этого не делали — только теоретизируете про чистые идеалы


Из мира .NET я довольно быстро сбежал как раз из-за чудовищной экосистемы заточенной на "кликанье мышкой через RDP". Но в нескольких .NET проектах всё-таки довелось сделать CI/CD, поэтому у меня есть (возможно немного устаревшее) представление о том, что там может или не может работать. В этот тред я пришёл потому что CI/CD занимаюсь уже лет 10, последние 5 лет это где-то половина моей работы, я думаю не будет преувеличением сказать, что у меня есть опыт, и я вобщем не вижу почему бы моя точка зрения не была интересна/полезна для коллег. Ты пришёл мне сделать какое-то замечание?

S>А сейчас совсем другая ситуация — любой дурик сделает деплой через CI/CD.


С моей точки зрения ситуация принципиально не поменялась — как 10 лет назад кто-то верил в ценность автоматизации, кто-то предпочитал руками, так и сейчас. Разве что раньше это часто было "запросить у админов виртуалку, потратить полдня на установку тимсити, и т.д.", а сейчас за 10 минут билд пайплан делается в облаках.

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


Между RDP и FTP разница таки большая. Аплоад по FTP автоматизируется тривиально, а автоматизировать RDP — это реально лучше сразу к врачу.
Re[13]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 11.09.21 08:20
Оценка: +1
Здравствуйте, Shmj, Вы писали:

R>>через какой-нибудь Ansible или Puppet — меньше шансов налажать, какая-то диагностика, обработка ошибок. Но это типа подходы 10-летней давности.

S>Ansible появился совсем недавно

9 лет назад это недавно?

S>а Puppet работает только через cygwin.


Есть еще дакая древность как Шеф. Было бы желание.

S>Сразу видно, что никогда в жизни вы этого не делали — только теоретизируете про чистые идеалы


Сразу видно что это ты никогда этим не занимался, вот и колхозишь бог пойми что на коленочке.

S>А сейчас совсем другая ситуация — любой дурик сделает деплой через CI/CD.


CI/CD это принцип, а не конкретный софт. О чем ты сейчас?
А конкретный софт это тот же Октопус или ТимСити, которые тоже уже больше 10 лет доступны. А до этого был, в конце концов, svn и серверные хуки.

S>Раньше проще всего было через RDP или FTP — разница не большая.


Просто нет.

S>Просто нажимаете одну кнопку, подключаетесь — и копируете файлы. Это быстро.


Не одну. И куча способов накосячить, особенно если тебе не на одну машину деплоить.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[14]: Деплой...
От: Shmj Ниоткуда  
Дата: 12.09.21 09:50
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>9 лет назад это недавно?


Да. Я начинал в 2004.

S>>Просто нажимаете одну кнопку, подключаетесь — и копируете файлы. Это быстро.


НС>Не одну. И куча способов накосячить, особенно если тебе не на одну машину деплоить.


Раньше было на одну. Там уже папка открыта — просто заходишь, удаляешь, вставляешь.
Re[15]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 12.09.21 12:40
Оценка:
Здравствуйте, Shmj, Вы писали:

НС>>9 лет назад это недавно?

S>Да. Я начинал в 2004.

А я в 94. И 9 лет это давно по меркам подобных тулов.

S>>>Просто нажимаете одну кнопку, подключаетесь — и копируете файлы. Это быстро.

НС>>Не одну. И куча способов накосячить, особенно если тебе не на одну машину деплоить.
S>Раньше было на одну.

Никогда не было.

S>Там уже папка открыта — просто заходишь, удаляешь, вставляешь.


Это все одним нажатием кнопки, причем сразу на все инстансы, да?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[16]: Деплой...
От: Shmj Ниоткуда  
Дата: 12.09.21 13:31
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Раньше было на одну.

НС>Никогда не было.

Для средних сайтов хватало одного мощного сервака для IIS.

S>>Там уже папка открыта — просто заходишь, удаляешь, вставляешь.

НС>Это все одним нажатием кнопки, причем сразу на все инстансы, да?

1 инстанс.
Re[17]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 12.09.21 14:05
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>>>Раньше было на одну.

НС>>Никогда не было.
S>Для средних сайтов хватало одного мощного сервака для IIS.

High availability? Не, не слышал.

S>>>Там уже папка открыта — просто заходишь, удаляешь, вставляешь.

НС>>Это все одним нажатием кнопки, причем сразу на все инстансы, да?

S>1 инстанс.


Все равно рукопашное копирование одним нажатием в RDP у тебя никак не получится. Надо собрать локально, открыть сессию RDP, подключится к диску, найти нужный каталог, создать файлик app_offline, запустить копирование, ответить на промт о перезаписи. И так для каждого инстанса. Ошибиться — миллион возможностей. И весь этот рукопашный перфоманс — просто чтобы не напрягать моск, один раз разобравшись с какой нибудь механикой деплоймента.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[18]: Деплой...
От: Shmj Ниоткуда  
Дата: 12.09.21 14:15
Оценка: +1
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>High availability? Не, не слышал.


Раньше этим мало кто страдал. Если база была на отдельном серваке и делались регулярные бекапы раз в день — уже неплохо.

S>>1 инстанс.


НС>Все равно рукопашное копирование одним нажатием в RDP у тебя никак не получится. Надо собрать локально, открыть сессию RDP, подключится к диску, найти нужный каталог, создать файлик app_offline, запустить копирование, ответить на промт о перезаписи. И так для каждого инстанса. Ошибиться — миллион возможностей. И весь этот рукопашный перфоманс — просто чтобы не напрягать моск, один раз разобравшись с какой нибудь механикой деплоймента.


Во-первых, инстанс всегда один. Папка на RPD оставалась открытой, никто ее не закрывал. Версии новые выпускались не так часто, чтобы этим страдать.
Re[19]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 12.09.21 16:47
Оценка: +1
Здравствуйте, Shmj, Вы писали:

НС>>High availability? Не, не слышал.

S>Раньше этим мало кто страдал.

Или просто ты был не в курсе.

S>Во-первых, инстанс всегда один. Папка на RPD оставалась открытой, никто ее не закрывал. Версии новые выпускались не так часто, чтобы этим страдать.


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

S>>Во-первых, инстанс всегда один. Папка на RPD оставалась открытой, никто ее не закрывал. Версии новые выпускались не так часто, чтобы этим страдать.


НС>Ну чо, продолжай в том же духе.


Сейчас другая ситуация, я же писал выше.
Re[16]: Деплой...
От: Sharov Россия  
Дата: 13.09.21 11:33
Оценка:
Здравствуйте, rosencrantz, Вы писали:


S>>Просто было категорическое заявление, что RDP+ручное копирование

S>>используют совсем нехорошие люди. В моем случае была развертка на одну машину и совершенно на нерегулярной основе.
S>>Вот как раз для подобного RDP+ копирование самое то, поэтому меня и удивила категоричность (а-ля всегда и везде).
R>А я вот плюсану категоричность, потому что нет каких-то объективных причин выделять "редко деплою" и "деплою всего на 1 машину" в отдельную категорию. Обычно если умеешь, то пофигу редко там или не редко — заскриптованный деплоймент становится таким необсуждаемым минимумом, как руки мыть после туалета. Если не умеешь, да, причины не делать нормально всегда найдутся.

Я полностью согласен с тем, что задача любого программиста автоматизировать вся и все. Но вот как быть с таким
важнейшим компонентом как время? Ну ушло бы у меня на написание и отладку скрипта, которым я воспользуюсь 5-6 раза
от силы скажем не менее часа, а то и более 2-х. При этом по RDP скопировать, проверить и запустить дело от силы
5 минут. Автоматизация нужна для выигрыша времени в основном. Тут никакого выигрыша нет, разве что опыт, да
и выложить скрипт на гитхаб всяким hr показывать. Не более.
Кодом людям нужно помогать!
Re[17]: Деплой...
От: Ночной Смотрящий Россия  
Дата: 13.09.21 13:58
Оценка: +1
Здравствуйте, Sharov, Вы писали:

S>Ну ушло бы у меня на написание и отладку скрипта, которым я воспользуюсь 5-6 раза


У тебя сервис 5-6 раз деплоится, а потом ты его выкидываешь на свалку?

S>Автоматизация нужна для выигрыша времени в основном.


Автоматизация в таких вещах нужна прежде всего для надежности и повторяемости, чтобы не сломать что нибудь случайно. А если лежаших полдня сервис или случайно удаленные данные клиентов твоих не беспокоят — ну ок, продолжай экономить время.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[17]: Деплой...
От: rosencrantz США  
Дата: 13.09.21 14:09
Оценка: 5 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Я полностью согласен с тем, что задача любого программиста автоматизировать вся и все. Но вот как быть с таким

S>важнейшим компонентом как время? Ну ушло бы у меня на написание и отладку скрипта, которым я воспользуюсь 5-6 раза
S>от силы скажем не менее часа, а то и более 2-х. При этом по RDP скопировать, проверить и запустить дело от силы
S>5 минут. Автоматизация нужна для выигрыша времени в основном. Тут никакого выигрыша нет, разве что опыт, да
S>и выложить скрипт на гитхаб всяким hr показывать. Не более.

Вот именно из-за такой точки зрения эти подходы для многих остаются "абстрактными идеалами". Если зафиксировать все параметры и сравнивать только время, вы правы — с большой вероятностью автоматизация будет выглядеть невыгодно. Но сравнивать нужно не только время, но ещё:

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

У ручного подхода есть проблемы с предсказуемостью и воспроизводимостью — мыслящий человек после N повторений начинает оптимизировать процесс, начинает придумывать, что вот вот этот шаг не обязателен, в этот раз вот это обновлять не буду, т.к. точно знаю, что в билде оно не менялось. И в какой-то момент 5-минутный ручной деплоймент превращается в 20-минутное ковыряние "чё за фигня, почему так?"

Задокументированность — другая головная боль. Понятно, что если вы вводите процесс ("процесс ручного деплоймента"), его надо хотя бы минимально описать. Если это будет написано человеческим языком, можно очень легко забыть что-то упомянуть, или забыть что-то поправить, когда по факту процесс немного изменился. Легко получить документ, который не соответствует реальности.

Возможность захотеть большего — деплоймент скрипт можно развивать (и это будет "нормально"). Ручной деплоймент развивать некуда — с каждым усложнением он будет становиться всё менее предсказуемым и воспроизводимым.

Попробуйте на деплойменты смотреть так же как на юнит/инт тесты: "в принципе можно тестировать руками — и это позволит сэкономить время на написании тестов"
Отредактировано 13.09.2021 14:10 rosencrantz . Предыдущая версия .
Re[18]: Деплой...
От: Sharov Россия  
Дата: 13.09.21 14:39
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>Ну ушло бы у меня на написание и отладку скрипта, которым я воспользуюсь 5-6 раза

НС>У тебя сервис 5-6 раз деплоится, а потом ты его выкидываешь на свалку?


Это исправление ошибок и новая версия. Все остальное время он просто работает.

S>>Автоматизация нужна для выигрыша времени в основном.

НС>Автоматизация в таких вещах нужна прежде всего для надежности и повторяемости, чтобы не сломать что нибудь случайно. А если лежаших полдня сервис или случайно удаленные данные клиентов твоих не беспокоят — ну ок, продолжай экономить время.

Сложно сломать сервис, который по сути один exe файл со справочной бд в виде файла sqlite.
Надо понимать, что программы\сервисы разные бывают, а не только high scalability веб сервисы.
Кодом людям нужно помогать!
Re[19]: Деплой...
От: rosencrantz США  
Дата: 13.09.21 15:23
Оценка: +1
Здравствуйте, Sharov, Вы писали:

S>>>Автоматизация нужна для выигрыша времени в основном.

НС>>Автоматизация в таких вещах нужна прежде всего для надежности и повторяемости, чтобы не сломать что нибудь случайно. А если лежаших полдня сервис или случайно удаленные данные клиентов твоих не беспокоят — ну ок, продолжай экономить время.

S>Сложно сломать сервис, который по сути один exe файл со справочной бд в виде файла sqlite.

S>Надо понимать, что программы\сервисы разные бывают, а не только high scalability веб сервисы.

Согласен "про разные бывают", но осуждаю эту уверенность про то, что "X никогда не случится" сервис всегда будет таким, я всегда буду единственным программистом в этом проекте, на другую инфраструктуру мы переезжать не будем, и т.д. И потом бац, бизнес такой: "а давайте в облака чтоли переедем", "т.е. как 3 месяца займёт? щас наймём тебе в помощь второго программиста"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.