Як ви робите виробничі версії веб-сайтів IIS?


15

Отже, не впевнений, чи це переповнення стека чи питання про помилку сервера. Якщо у мене є веб-сайт .NET, який я хочу розгорнути у виробничому середовищі, який найкращий спосіб зробити це. Чи повинен я упакувати його як MSI та встановити? Використовуйте nant, щоб підштовхнути необхідні файли вгору. Просто FTP файли вгору за допомогою програми "Більше порівняння"?

Як розгорнути виробничий код? Це конкретний випадок для Windows, який я дивлюся тут.

Відповіді:


15

IIS підтримує розгортання xcopy, тому просто копіювання файлів повинно бути усім необхідним, якщо у вас немає особливих вимог.

Один із способів зробити це простий скрипт, який використовує ROBOCOPY для копіювання нових файлів на сервер.

Якщо сайт великий і це займає занадто багато часу, використовуйте систему контролю версій. Мені подобається Mercurial для цієї мети, хоча ви повинні бути обережними, щоб конфігураційні файли системи контролю версій не закінчувались публічними. Розгортання - це просто питання внесення змін, а потім перевірки останньої версії на сервері. Окрім ефективності, це дозволяє швидко відмовлятися (якщо ви позначили останню хорошу версію) у випадку, якщо у вашої останньої та найкращої є помилка showstopper.

Щоб мінімізувати час простою, ви могли б змусити скрипт скопіювати файли в новий каталог, а потім швидко перейменувати каталоги або змінити місце, де IIS вказує на новий каталог.


1
Система контролю версій є привабливою, але для веб-сайтів, які потребують компіляції, вона може працювати не надто добре. Якщо, звичайно, компільована версія не знаходиться під контролем версії.
Джонатан Уотні

1
Я ніколи не думав випускати систему управління джерелами у виробництво. Цікаві впевнені удари, що потрібно зберігати тонни додаткових zip-файлів.
JoshBerke

Я роблю це весь час із Subversion. На Apache ви використовуєте mod_rewrite, щоб переконатися, що користувачі не можуть отримати доступ до каталогів .svn. Використання контролю версій для розгортання - це безумовно шлях.
Лука

13

Подумайте про використання інструменту веб-розгортання від Microsoft. Він був спеціально розроблений з метою розгортання веб-додатків та оновлень цих веб-додатків до виробництва веб-серверів IIS 6 та 7, і це справляє кращу справу, ніж MSI (Windows Installer), IMHO.

Зазвичай ви користуєтесь ним, встановивши десь сайт "майстра золота", а потім сказати інструменту запакувати зміни звідти. Потім він розгляне цільовий сервер для розгортання та внесе будь-які зміни, необхідні для того, щоб він виглядав як золотий майстер (що корисно для наступних оновлень). Це особливо корисно, якщо ви розміщуєтесь на більш ніж одному веб-сервері (тобто фермі), і він підтримує розгортання більше, ніж просто файлів (він також може вносити зміни в реєстрі, розгортання сертифікатів, баз даних SQL тощо).


+ нескінченність. Цей інструмент є рятівним рятувальником і звільняє цілі відділи (a la tsilb) для роботи над більш цікавими проблемами.
Портман

4

Я б більше відповів Джоелем, запропонувавши серверу безперервної інтеграції забрати ваші зміни з вашої системи управління джерелами. Потім він буде будувати проект. Тоді попросіть його xcopy вивести збірку у нову папку. Потім можна зробити кілька швидких змін конфігурації (web.config і app.config). Вуаля, готова до Xcopy!

Перевірте CruiseControl.NET


3

Що я робив у свого попереднього роботодавця, який в основному був сайтом аукціону / електронної комерції, де ми не могли дозволити багато часу простою:

  • Візьміть зашифровану версію збірки випуску / версії для розгортання на сервері збірки
  • Перевірте його на сервері встановлення, який має копію виробничої бази даних і має ту саму версію програмного забезпечення, що і виробниче програмне забезпечення. Перевірте, що все пройшло гладко. Якщо не перезапустити розгортання сервера встановлення (але спочатку відновіть резервну копію).
  • Якщо все пішло добре: скопіюйте сценарії збірки та оновлення бази даних на виробничий сервер у локальну папку. Візьміть конкретну резервну копію бази даних та файлів ASP.NET (якщо щось все-таки піде не так). Підготуйте тоді все, щоб мені потрібно було лише натиснути клавішу Enter, щоб запустити сценарій оновлення та копіювання файлів бази даних (зауважте, що я міг би створити для цього сценарій). Потім запускайте все. Зазвичай це за лічені секунди, і користувачі не помітять багато, що був час простою.

Як веб-розробник можна зробити багато смішніших справ. Але це було найважливішою частиною моєї роботи.


1

о, боже, на роботі у нас є ціла команда для цього. У них є власний інструмент, який виймає сервер із кластера / ферми, публікує файли, запускає NUnits і додає їх назад у кластер / ферму. Вони роблять це для кожного з 16 серверів. Це займає години. Решта з нас навіть не мають "огляду доступу".

Що стосується моїх особистих проектів, я публікую з VS2005 безпосередньо на своєму веб-сервері. У роду є менш сувора безпека.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.