Автоматизировать развертывание для веб-приложений? [закрытый]

Посмотрите на этот пример Plnkr

Переменная this сильно отличается timesCalled с каждым нажатием кнопки увеличивается только на 1. Ответ на мой личный вопрос:

.click( () => { } )

и

.click(function() { })

создают одинаковое количество функции при использовании в цикле, как вы можете видеть из подсчета Guid в Plnkr.

39
задан Anant Singh---Alive to Die 5 June 2015 в 17:06
поделиться

8 ответов

Спасибо всем за Ваши добрые предложения. Мы проверили их всех, но после внимательного рассмотрения мы решили прокрутить наше собственное с комбинацией CruiseControl, NAnt, MSBuild и MSDeploy.

Эта статья имеет некоторую большую информацию: Интегрирующийся MSBuild с CruiseControl.NET

Вот примерно, как наше решение работает:

  • Разработчики создают версию 'отладки' приложения и выполняют модульные тесты, затем регистрируются к SVN.
  • CruiseControl видит обновления и называет наш сценарий сборки...
    • Выполнения любые новые миграции на базе данных сборки
    • Замены файлы конфигурации с конфигурацией сервера сборки
    • Сборки конфигурация 'отладки' приложения
    • Выполнения все модульные и интеграционные тесты
    • Сборки 'развернуть' конфигурация приложения
        <литий> Присваивает версию DLLs с текущей главной / вспомогательной версией и пересмотром SVN, например, 1.2.0.423 <литий> Перемещения эта новая сборка к папке 'выпуска' на нашем сервере сборки <литий> Удаляет ненужные файлы Обновления
    • IIS на сервере сборки при необходимости

Тогда, когда мы проверили, что все готово повыситься для жить/подготавливания, мы выполняем другой сценарий к:

  • Работавший миграции живут/подготавливают сервер
  • MSDeploy: текущий архив живет/подготавливает сайт
  • MSDeploy: синхронизирующий сайт от сборки для жить/подготавливания

Это довольно не доходило до этой стадии, но это является главным образом рабочим как очарование теперь: D

я собираюсь попытаться держать этот ответ в курсе, поскольку мы вносим изменения в наш процесс, как там, кажется, несколько подобных вопросов на SA теперь.

32
ответ дан Sam Wessel 27 November 2019 в 02:50
поделиться

Я использовал Визуальный Pro Сборки в течение многих лет, Это довольно гладко и просто в использовании и начинает много стандартных операций (как те, Вы упомянули), встроил.

3
ответ дан jeremcc 27 November 2019 в 02:50
поделиться

Я использую Марионетка , Make-файлы для создания RPMs и Бамбук , чтобы сделать это для меня. Моя система непосредственно не применяется, и я не к знакомому с миром Windows, но существуют некоторые передаваемые шаблоны.

Мой делать установку позволяет мне создавать об/мин для всего (php, освобождает, php веб-сайты, модули жемчуга, C приложения, и т.д.), которые составляют мое приложение. Это можно назвать вручную, или через Бамбук. Я передаю их об/мин в конфетку repo и марионеточные дескрипторы, удостоверяясь последнее (или корректный), версии программного обеспечения установлены в кластере.

Вы могли автоматизировать встраивающие пакеты программного обеспечения в MSI? Я думаю, что Марионетка может управлять установкой пакетов программного обеспечения и версий в Windows.

3
ответ дан Gary Richardson 27 November 2019 в 02:50
поделиться

Вместо того, чтобы использовать xcopy, нам удалось использовать команду-source:dirpath с адресами UNC к серверам с msdeploy. Ключ был ignoreAcls=true и удаляющими вызовами к имени пользователя и паролю в строке msdeploy:

msdeploy -verb:sync -source:dirpath=\\build\e$\app -dest:dirpath=\\live\d$\app,ignoreAcls=true

пример развертывает сайт с нашего диска E сервера сборки на диск D на нашем живом сервере. Существуют некоторые соображения безопасности с представлением долей или этого уровня доступа к диску на живом сервере. Мы в настоящее время изучаем использование совместно используемой папки ограниченного доступа.

Мы тогда передаем этот вывод по каналу к файлу журнала, который тогда перемещен в архив резервных копий для ссылки. Записи файла журнала, какие файлы были перемещены и когда. Продолжение примера выше с выводом передает команду по каналу:

... > E:\archive\msdeploy.log
1
ответ дан Paul Shannon 27 November 2019 в 02:50
поделиться

Матрица . Кажется маленьким, простым, процедурным. Записанный в Python, так как Ruby нет - нет (почему?).

0
ответ дан Jordi Bunster 27 November 2019 в 02:50
поделиться

Фабрика Установки выезда (от индиго повысился). Это довольно устойчиво в том, что это может сделать. Это использует API установщика Windows. Это может, вероятно, сделать то, в чем Вы нуждаетесь.

0
ответ дан kemiller2002 27 November 2019 в 02:50
поделиться

Единственная причина, по которой Nant должен существовать, состоит в том, чтобы у вас была структура, аналогичная Ant, в которой мы можем писать задачи, используя набор языков .NET. Если вы не хотите, чтобы чистый .NET-разработчик писал собственные задачи, я не вижу причин, по которым вы не можете использовать Ant. Тот факт, что вы пишете свое приложение на языке .NET, не означает, что вам нужно использовать инструмент сборки .NET.

0
ответ дан 27 November 2019 в 02:50
поделиться

Я использую для этого msdeploy. Работает отлично.

О Муравье; для .NET у нас есть NAnt, и вы можете использовать его в сочетании с MSDeploy; у вас есть возможность вызвать MSDeploy из вашего Nant-скрипта.

Отредактировано: Просто чтобы прояснить ситуацию; вы можете делать все с помощью msdeploy. Использование Nant не является обязательным.

2
ответ дан 27 November 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: