Что сейчас модно использовать для деплоймента?
От: Sharov Россия  
Дата: 29.03.18 13:43
Оценка:
Здравствуйте.

Как-то я отстал от жизни, но, похоже ms инсталляторы типа .vdproj уже вышли из моды.
Начал смотреть в сторону деплоймента с nuget'ом и chocolatey -- как-то непривычно и странно. Т.е. по сути, как я понимаю, используется nuget как репозиторий пакетов, но в то же время можно кастомизировать
с помощью ps скриптов сам процесс инстадяции, который контролируется choco. Не очень понятно как деплоиться в облака, если не будет доступа в локальный репозиторий.
Сейчас изучаю Wix -- вроде старый добрый msi, но не от ms.
Также желательно, чтобы можно было делать новые инсталляторы при автобилде где-нибудь на сервере (wix это умеет) без многочисленных приседаний.

Буду рад любым соображениям, делитесь советами и практикой.
Кодом людям нужно помогать!
Re: Что сейчас модно использовать для деплоймента?
От: vmpire Россия  
Дата: 29.03.18 17:59
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Что сейчас модно использовать для деплоймента?

Для начала, деплоймента чего и куда? Для разных видов приложений и целевых платформ есть разные решения.
Например, если нужен в итоге родной инсталлятор десктопного приложения под windows на отдельную рабочую станцию вручную пользователем — то msi тут самое то.
А в чём его готовить — дело вкуса. Я бы рекомендовал как раз упомянутый Вами Wix.
Re[2]: Что сейчас модно использовать для деплоймента?
От: Sharov Россия  
Дата: 29.03.18 18:23
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Для начала, деплоймента чего и куда? Для разных видов приложений и целевых платформ есть разные решения.


Ну например виндусовые сервисы. Хотелось бы после каждой сборки на TC как минимум либо иметь готовый инсталлер, либо nuget пакет. Как максимум автоматом накатить новую версию,
предварительно оттормозив старую (ну это уже фантастика, кмк). Это все для сервисов, которые либо работают в production на амазоне, либо для тестов в локалке развернуты.

Поковырявшись с choco понял, что лучше msi (или wix msi) пока нету. Очень бы контейнеры типа docker'а помогли бы. Но увы...
Кодом людям нужно помогать!
Re[3]: Что сейчас модно использовать для деплоймента?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 30.03.18 07:03
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Как максимум автоматом накатить новую версию,

S>предварительно оттормозив старую (ну это уже фантастика, кмк).
Почему? это функционал есть в msi (и Wix) "из коробки".

S>Это все для сервисов, которые либо работают в production на амазоне, либо для тестов в локалке развернуты.

Если точки деплоя вы контролируете сами, то стоит ли заморачиваться инсталлятором? Он обычно нужен для передачи продукта клиенту. А когда всё разворачивается у вас же, то проще взять какой-нибудь сервис автоматизации деплоя и контроля (их сотни) и воспользоваться его средствами.
Re: Что сейчас модно использовать для деплоймента?
От: RushDevion Россия  
Дата: 30.03.18 09:02
Оценка: 3 (1)
По своей практике (как раз на AWS)
Билды собирают NuGet-пакеты сервисов.
Пакеты пабляшатся в NuGet репозиторий (ProGet).
Есть девелоперский в офисе, есть PROD-в облаке.
Пакет провижинится из DEV в PROD когда он готов к паблишингу (протестирован, проверил и т.п.).
Дальше у нас немного нестандартно, т.к. присутствует самописный сервер приложений, который много чего умеет.
Но в простейшем случае, нужна утилита, которая принимает в командной строке имя и версию сервиса, скачивает его пакет, разворачивает и запускает.
И есть Ansible-скрипты, в которых, собственно, определено, что и куда ставить + ими же делается деплой БД.

Если бы сейчас пришлось поднимать что-то похожее с нуля я бы посмотрел вот на это:

1. Docker + Kubernetes + .Net Core
2. Microsoft AppFabric — эта штука очень похожа на наш самописный сервис приложений, но с поддержкой кластеризации.
3. Microsoft Orleans но тут специфика приложения важна, может подойти, может нет
4. Octopus Deploy
5. Самописные скрипты на Cake/Fake — это что-то отдаленно напоминающее Ansible, но на C#/F#
Re[4]: Что сейчас модно использовать для деплоймента?
От: Sharov Россия  
Дата: 30.03.18 12:01
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

S>>предварительно оттормозив старую (ну это уже фантастика, кмк).

МР>Почему? это функционал есть в msi (и Wix) "из коробки".

Я имел ввиду автоматизацию данного процесс через TeamCity.

S>>Это все для сервисов, которые либо работают в production на амазоне, либо для тестов в локалке развернуты.

МР>Если точки деплоя вы контролируете сами, то стоит ли заморачиваться инсталлятором? Он обычно нужен для передачи продукта клиенту. А когда всё разворачивается у вас же, то проще взять какой-нибудь сервис автоматизации деплоя и контроля (их сотни) и воспользоваться его средствами.

О том и речь. Что окромя msi я ни с чем таким не знаком + грядет переход на .net core. Поэтому и хотелось узнать, что сейчас используется. Возможность покупать крайне ограничена, не думаю
что ради меня закупят какой-нибудь Octopus Deploy. А ести ли похожие бесплатные аналоги?
Кодом людям нужно помогать!
Re[2]: Что сейчас модно использовать для деплоймента?
От: Sharov Россия  
Дата: 30.03.18 12:09
Оценка:
Здравствуйте, RushDevion, Вы писали:

RD>5. Самописные скрипты на Cake/Fake — это что-то отдаленно напоминающее Ansible, но на C#/F#


Дурацкий вопрос -- а чем это отличается от TC + msbuild? Больше степеней свободы?
Кодом людям нужно помогать!
Re[3]: Что сейчас модно использовать для деплоймента?
От: RushDevion Россия  
Дата: 30.03.18 12:19
Оценка: +1
Здравствуйте, Sharov, Вы писали:

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

RD>>5. Самописные скрипты на Cake/Fake — это что-то отдаленно напоминающее Ansible, но на C#/F#
S>Дурацкий вопрос -- а чем это отличается от TC + msbuild? Больше степеней свободы?

Функционально — ничем.
Но писать/читать скрипты на C# имхо гораздо удобнее, чем на XML (или, не приведи бог, Power Shell).

P.S. Мне лично Cake пользовать не доводилось, но знаю ребят, которые юзают и довольны.
Отредактировано 30.03.2018 12:21 RushDevion . Предыдущая версия .
Re[5]: Что сейчас модно использовать для деплоймента?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 30.03.18 12:30
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Я имел ввиду автоматизацию данного процесс через TeamCity.

Понял. Увы, тут не подскажу, есть ли у TeamCity что-то готовое для деплоя. На сколько я смотрел — нету.

S>О том и речь. Что окромя msi я ни с чем таким не знаком + грядет переход на .net core. Поэтому и хотелось узнать, что сейчас используется. Возможность покупать крайне ограничена, не думаю

S>что ради меня закупят какой-нибудь Octopus Deploy. А ести ли похожие бесплатные аналоги?
Я тоже не супер специалист, но обычно когда всплывает разговор о DevOps / Deployment, чаще всего говорят о:
https://puppet.com
https://www.chef.io/

Чисто теоретически, можете еще поробовать посмотреть, что есть
— в VSTS https://docs.microsoft.com/en-us/vsts/build-release/ (это при условии, что у вас есть, например, MSDN-подписки), но тут, подозреваю, если вы не завязаны на инфраструктуру от Microsoft (читай Azure) — получится слишком много работы.
— в https://www.appveyor.com/ (это облачная платформа для сборки). Но он тем более за деньги
Re[4]: Что сейчас модно использовать для деплоймента?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 30.03.18 12:33
Оценка: +2
Здравствуйте, RushDevion, Вы писали:

RD>Но писать/читать скрипты на C# имхо гораздо удобнее, чем на XML

С этим, пожалуй, соглашусь

RD>(или, не приведи бог, Power Shell).

А вот тут, имхо, вопрос привычки. После C# "всё не такое", но после некоторой небольшой практики — вполне неплохо получается.
Re[5]: Что сейчас модно использовать для деплоймента?
От: vmpire Россия  
Дата: 30.03.18 12:57
Оценка: +2 :)
Здравствуйте, Михаил Романов, Вы писали:

RD>>(или, не приведи бог, Power Shell).

МР>А вот тут, имхо, вопрос привычки. После C# "всё не такое", но после некоторой небольшой практики — вполне неплохо получается.
Вот нифига. PS, по крайней мере для меня, первый язык к которому невозможно привыкнуть.
Нет-нет да и напишешь "if x > 0" или что-то подобное. И ничего даже не падает, просто не работает.
Ну и куча других мелочей.
По возможностям — вопросов нет, всё, что нужно сделать можно.
На как язык программирования — это просто кошмар. Ем этот кактус уже несколько лет, до сих пор колюсь и плачу.
Хотя, если писать только на PS в течение нескольких месяцев — наверное, станет легче.
Re: Что сейчас модно использовать для деплоймента?
От: Vladek Россия Github
Дата: 30.03.18 15:07
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте.


S>Сейчас изучаю Wix -- вроде старый добрый msi, но не от ms.

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

Вот только недавно разбирался с WixSharp — создал инсталляторы без лишней головной боли и сюрпризов. Там для студии есть готовые шаблоны проектов (доступны через Extensions), которые позволяют написать минимум дополнительного кода (на C#, никаких конфигов) и получить готовый msi для установки. Инсталлятор создаётся в процессе компиляции проекта.

Веб-сайт предпочитаю деплоить через команду Publish в студии — чем меньше телодвижений занимает деплой, тем лучше. Некоторые люди любят нагородить "деплой-ритуалов" из каких-то скриптов, кастомных тулзов и прочей ерунды, при этом даже не могут инструкцию написать для коллег как эту фигню запускать.
Re: Что сейчас модно использовать для деплоймента?
От: TechL  
Дата: 31.03.18 20:48
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Как-то я отстал от жизни, но, похоже ms инсталляторы типа .vdproj уже вышли из моды.


S>Буду рад любым соображениям, делитесь советами и практикой.


Если модно — Advanced Installer. Вообще лучший из опробованных.
Re[2]: Что сейчас модно использовать для деплоймента?
От: TK Лес кывт.рф
Дата: 01.04.18 07:42
Оценка:
Здравствуйте, RushDevion, Вы писали:

RD>3. Microsoft Orleans но тут специфика приложения важна, может подойти, может нет


Это вообще никак не про deploy
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Что сейчас модно использовать для деплоймента?
От: TK Лес кывт.рф
Дата: 01.04.18 07:59
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Поковырявшись с choco понял, что лучше msi (или wix msi) пока нету. Очень бы контейнеры типа docker'а помогли бы. Но увы...


Контейнеры типа докера — это не про деплоймент, а скорее про запуск.
В случае с докером деплоймента как такового нет — надо просто залить образ в registry или выложить на шару (особенно, если использовать готовый оркестратор).

Если нужна именно оркестрация (определить что и где должно работать) можно взять https://www.nomadproject.io/ каких-то особых требований к приложениям оно не предъявляет.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[5]: Что сейчас модно использовать для деплоймента?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.04.18 06:52
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>>предварительно оттормозив старую (ну это уже фантастика, кмк).

МР>>Почему? это функционал есть в msi (и Wix) "из коробки".
S>Я имел ввиду автоматизацию данного процесс через TeamCity.

И? От TeamCity разве что то нужно для этого? Пишешь скрипт деплоймента (там текста меньше будет, чем в этом топике уже нагенерили), через TeamCity его запускаешь.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: Что сейчас модно использовать для деплоймента?
От: Doc Россия http://andrey.moveax.ru
Дата: 12.04.18 05:17
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

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


Посмотрите на TFS облачный или локальный (зависит от того, решитесь ли вы хранить исходники в облаке).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.