#azure #deployment #automation
#лазурь #развертывание #автоматизация
Вопрос:
В настоящее время я использую azure devops для репозиториев, создания и публикации артефактов. Сюда входят приложения blazor, API, приложения для Android, приложения для IOS и приложения для Windows, созданные с использованием .NET.
- Мы развертываем приложения для Android и IOS в playstore/apple store с помощью azure devops.
- Веб — приложения также развертываются с использованием azure devops (с использованием собственных агентов на клиентских компьютерах/в облаке).
- Приложения Windows (множество компьютеров, несколько сайтов) развертываются с использованием специально созданного средства обновления, которое позволяет пользователям каждого компьютера обновлять приложение.
В настоящее время специально созданное средство обновления по-прежнему нуждается в большом обслуживании и по-прежнему не всегда работает. Это означает, что у сотрудников службы поддержки больше проблем, и администраторы соответствующих компьютерных групп не могут видеть, какие компьютеры на самом деле обновлены.
Мне было поручено найти единственную службу, которую мы можем использовать для автоматического развертывания артефактов Azure Devops на соответствующих машинах. Мы хотим использовать единую службу для всех развертываний, чтобы снизить затраты на техническое обслуживание и затраты, а также обеспечить в будущем весь процесс развертывания. Мы также хотим, чтобы администраторы компьютерных групп могли контролировать, какие обновления были применены, и контролировать применение новых обновлений. Процесс развертывания в основном будет состоять из загрузки указанных артефактов, а затем копирования файлов в правильные позиции, обновления файлов конфигурации, а также обновления веб-служб IIS.
- Этот процесс должен позволить нам сгруппировать несколько машин с одним и тем же приложением/веб-приложением и позволить одному пользователю-администратору решать, когда обновлять все машины в группе.
- Процесс обновления должен быть запланированным, т. е., если администратор видит, что появилось новое обновление, он/она может немедленно обновить все машины в соответствующей группе или запланировать обновление в удобное для них время, т. е. в 2 часа ночи на дату xx.xx.xxxx.
Проведя некоторое исследование, я обнаружил, что, по общему мнению, будет проще всего оставить выпуски Android/IOS в Azure Devops. Однако в приложениях для Интернета и Windows, похоже, есть множество вариантов. Некоторые из них, которые я изучил, — это развертывание Octopus, CFEngine, TerraForm, и список можно продолжать. Однако мне трудно увидеть все преимущества и недостатки этих платных или поставщиков с открытым исходным кодом.
Поэтому мой вопрос в том, что все остальные используют для массовых обновлений/развертываний и позволяют менеджерам/клиентам решать, когда обновлять свою собственную группу машин? И как вы защищаете себя в будущем?