Nano Hash - криптовалюты, майнинг, программирование

Кто-нибудь создает установщики для развертывания внутренних веб-приложений asp.net?

Я всегда развертывал свои веб-приложения через FTP (иногда даже xcopy), а затем сам вручную запускал сценарии базы данных.

Я начал развертывание таким образом в 90-х, но в последнее время я видел несколько веб-приложений с установщиками. Я начинаю сомневаться, не застрял ли я в устаревшем процессе. Я консультант, мои приложения обычно являются внутренними, поэтому я не беспокоюсь об их распространении и установке другими.

Но мне любопытно; Кто-нибудь создает установщики для развертывания внутренних веб-приложений asp.net?

Если да, то почему? (Добровольно, по поручению или в рамках процесса автоматизации)

И были ли у вас проблемы с этим?


Ответы:


1

абсолютно. Мы используем его для всех наших приложений. Таким образом, мы создаем установщик и запускаем его в средах qa и uat для тестирования, и мы точно знаем, что произойдет в рабочей среде. Нет никаких предположений о том, в каком порядке кто-то может что-то делать или пропустить какой-то шаг. Это делает вещи намного проще.

О, я тоже забыл об автоматическом процессе. У нас есть системы (Ant Hill Pro), которые автоматически развертывают его в соответствующих средах. Qa людям не нужно ждать, пока что-то будет сделано, потому что все делается в 2 часа ночи. Если им нужно повторно запустить сборку с обновлениями, разработчики проверяют код, и мы нажимаем кнопку, и он автоматически развертывается. Не нужно ждать инженера-строителя, потому что он на совещании, болен или что-то в этом роде.

28.01.2009
  • Неплохо подмечено. Сначала я развертываю на нашем бизнес-сервере проверки, а затем копирую с сервера проверки на производство. Но это определенно веская причина для использования установщика. 29.01.2009
  • Я никогда не осознавал, насколько больно было делать это вручную, пока мы не начали использовать установщики. Гораздо меньше головной боли, когда не нужно беспокоиться о человеческом компоненте отсутствия файла или чего-то еще после того, как все это было протестировано. 29.01.2009
  • не нужно беспокоиться о человеческом компоненте, это то, что меня беспокоит. Могу я задать вам вопрос? Включен ли ваш SQLScript в ваш установщик? Или это отдельно? 29.01.2009
  • Я не думаю, что это в установщике, но он запускается через систему. Система компилирует все сценарии в один главный сценарий, а затем запускает его снова в базе данных. Мы делаем все сценарии перезапускаемыми, мы проверяем, существуют ли поля перед добавлением и т. д., чтобы мы могли снова запустить сценарий. 29.01.2009

  • 2

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

    28.01.2009
  • внутренний или нет. Вы предлагаете делать это даже для веб-хостинга? Если да, то как вы его запускаете? У вас есть веб-хостинг, чтобы запустить его для вас? 29.01.2009
  • У вас нет доступа к вашему хост-компьютеру? Если нет, то еще важнее иметь сборку, которая обрабатывает все этапы развертывания, чтобы вы могли сказать им просто запустить установку вместо копирования этих файлов, запуска этого скрипта, установки этого флажка и т. д. 29.01.2009
  • Для большинства внутренних приложений я делаю. Но у меня есть 2 клиента с приложениями на общем веб-хостинге. И с этими двумя клиентами у меня определенно нет доступа к чему-то подобному... по крайней мере, я так не думаю... Я всегда предполагал, что у меня его нет. 29.01.2009

  • 3

    Лично я немного похож на ОП; обычно я просто развертываю с помощью FTP, но, как правило, мои приложения являются внутренними или, в случае других проектов, на 100% управляются мной.

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

    28.01.2009
  • Да, большая проблема с тем, чтобы сделать это таким образом, заключается в том, что все приложение ломается во время процесса, который может занять несколько минут, делая это вручную и наблюдая за каждым шагом. 29.01.2009

  • 4

    Я использую Powershell, и мне очень легко автоматизировать множество задач. . Возможно, в самом начале вы найдете немного другое, но в конце вы увидите, что все дело в мощи библиотек .NET !!!

    28.01.2009
  • Итак, у вас есть сценарий PowerShell для автоматизации установки? Это тоже интересная идея. спасибо 29.01.2009
  • да, Джон, я помню, что я делаю с этими сценариями: 1. Резервное копирование последней сборки 2. Удаление ненужных файлов 3. Настройка web.config 4. Получение всех файлов .js и минимизация их 5. ZIP и FTP После этого я запускаю другой скрипт для фактической установки веб-сайта на нужный сервер. 29.01.2009

  • 5

    Я использовал "Проект веб-установки", чтобы создать MSI, устанавливающий выходные данные "Проект веб-развертывания" для внутреннего приложения. Наш администратор сервера не смог выполнить ручную установку из 50 шагов. Что касается моего текущего приложения, администратору моего сервера не нравится ощущение «черного ящика» установщиков MSI, и он предпочитает получать кучу файлов и руководство по развертыванию из 50 шагов. (Видите здесь закономерность? Спросите администратора вашего сервера, чего он хочет.)

    Проект веб-установки не делает сразу очевидным, как установить что-либо, кроме «веб-сайта по умолчанию», кроме того, он сделал процесс установки повторяемым и создал встроенный способ отката (просто запустив установщик с 1 версия назад).

    Это, конечно, предполагает, что ваш виртуальный каталог не содержит никакого измененного пользователем содержимого - я бы не стал доверять MSI правильно объединять созданные пользователем и новые файлы.

    28.01.2009
  • ощущение «черного ящика» от установщиков MSI Я определенно это вижу. 29.01.2009

  • 6

    Здесь мы используем модель развертывания «XCopy», поскольку у специалистов по эксплуатации есть собственный метод настройки безопасности для нового веб-приложения на сервере.

    Однако нам нужно было использовать программу установки, когда нам нужно было установить веб-приложение, использующее более новую версию Crystal Reports, поскольку оно должно было делать что-то особенное с ключом, а у нас не было полноценной версии CR на сам сервер. Так что имейте в виду, что при работе со сторонними приложениями им может понадобиться какой-то модуль слияния, с которым MSI легко справляется.

    28.01.2009
  • Когда вы делаете xcopy, вы просто запускаете сценарии sql отдельно? Или у вас есть другой процесс для этого? 29.01.2009
  • Да, надо было добавить эти два. Обычно я сообщаю администратору баз данных, что приложение готово, они выполняют миграцию БД, затем я уведомляю сотрудников отдела эксплуатации, а затем они создают сайт IIS и копируют файлы. 29.01.2009

  • 7

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

    Многие другие небольшие приложения просто развертываются, выполняя публикацию веб-сайта в локальной папке, а затем отправляя содержимое по ftp на цель.

    28.01.2009

    8

    Это во многом зависит от масштаба вашего проекта, вашей среды и вашей внутренней пользовательской базы. Я редко выполняю развертывание с помощью msi, потому что у нас слишком маленькая операция, чтобы иметь несколько сред (за исключением SharePoint, это все вместе). Мы разрабатываем и используем VS для развертывания веб-приложений в поле разработки, при условии, что они одобрены, а затем снова используем VS для развертывания в рабочем поле.

    Единственным условием является то, что у нас есть несколько копий web.config (с добавлением test, dev и live), а затем мы удаляем суффикс из соответствующего файла в зависимости от того, где он был развернут.

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

    06.08.2009
  • +1 Спасибо за ответ, но я бы сказал, что вы никогда не бываете слишком малы для установки с несколькими средами. Его также не сложно и не дорого настроить, особенно с виртуальными машинами. 06.08.2009
  • Это зависит от того, являетесь ли вы ресурсом, который растянут до предела. Кто будет устанавливать эти среды? Поддерживать их? Более того, кто будет тестировать код в тестовой среде, когда он там появится? Это слишком просто, чтобы аргументировать. Если вы в состоянии иметь такую ​​настройку, то, конечно, лучше, конечно! Но я не могу этого сделать из-за того, что у меня слишком много ресурсов, а больше никого нет. 06.08.2009

  • 9

    F5Отладка...

    Вы говорите, что можно срезать путь, если у вас нет времени сделать это должным образом?

    «Кто будет тестировать код в тестовой среде?» Вы сами сказали, что у вас есть файлы конфигурации для _test - почему бы это не быть подходящим тестом?

    27.01.2010
    Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..