Как выпустить веб-приложения?

Я покрываю это в статья о моем сайте .

Почти все функции C# 3.0 доступны при предназначении для.NET 2.0. Для дополнительных методов необходимо определить дополнительный атрибут. Деревья выражений не доступны вообще. Поддержка выражения запроса основана на переводе, сопровождаемом "нормальными" правилами C#, таким образом, Вам будет нужно что-то для обеспечения Выбора, Где и т.д. методы. LINQBridge является фактическим стандартом "LINQ к Объектам в.NET 2,0" реализации. Можно хотеть объявить, что делегаты в Func и Action семьи делегата облегчают работать с лямбда-выражениями - и затем удалять их, если/когда Вы перемещаетесь в.NET 3.5

12
задан TheJacobTaylor 24 August 2009 в 06:08
поделиться

6 ответов

Я рекомендую использовать экспорт SVN вместо проверки. Таким образом, вы не будете открывать миру ни один из файлов SVN. Это также обычно создает более чистую структуру папок.

Я уже использовал rsync раньше при перемещении файлов между рабочей и рабочей средой.

Мое типичное развертывание происходит следующим образом:

  • резервный производственный сайт
  • Восстановление из резервной копии на рабочий сервер
  • Блокировать сервер со всех внешних IP-адресов.
  • Экспортировать код из репозитория во временную папку (при желании разделить две папки для небольших изменений)
  • Файлы rsyc из временной папки в папку промежуточного сервера
  • Убедитесь, что на самом деле изменились только те файлы, которые вы ожидаете изменить.
  • Применить сценарии SQL к БД
  • Проверить обновление
  • Разблокировать веб-сервер

Теперь для развертывания в производственной среде, перемотайте эти шаги вперед. Использование скриптов значительно упрощает задачу.

10
ответ дан 2 December 2019 в 18:20
поделиться

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

Вы можете подумать о промежуточном сервере. Вы вносите локальные изменения, затем отправляете svn checkout на промежуточный сервер и также запускаете там свои сценарии обновления. Вы проводите приемочные испытания на промежуточном сервере. Когда все в порядке, вы развертываете все на рабочем сервере. Это должно быть так же просто, как запустить несколько скриптов. т.е. update-staging.pl и update-prod.pl.

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

4
ответ дан 2 December 2019 в 18:20
поделиться

Я использую Capistrano для создания сценариев и автоматизации процесса развертывания. Вот краткое описание того, что происходит, когда я ввожу cap deploy с моей локальной рабочей станции:

Capistrano будет. . .

  1. Оформить последнюю версию исходного кода в каталоге с меткой времени (например, на /var/http/mywebsite.com/releases/20090715014527 ) на моем веб-сервере, запрашивая у меня на моей локальной рабочей станции любые пароли, при необходимости.

  2. Запустить сценарии предварительной обработки (например, обновить схему базы данных)

  3. Мягко связать сайт с действующим каталогом:

    ln -sf /var/http/mywebsite.com/releases/20090715014527 / var / http / mywebsite.com / current

  4. Запускать сценарии постобработки (например, возможно, вам нужно перезапустить apache или что-то в этом роде)

Если в процессе возникли какие-либо проблемы, Capistrano вернется к предыдущей рабочей версии.

Хотя Capistrano написан на Ruby, он может развертывать веб-приложения на любом языке / среде. Идеи можно найти в разделе «Развертывание приложений, не являющихся rails» учебного руководства . railsless-deploy кажется особенно полезным для использования Capistrano для управления развертыванием приложений PHP и Python.

3
ответ дан 2 December 2019 в 18:20
поделиться

Теоретически я бы экспортировал svn в новую область на веб-сервере. Затем перенастройте веб-сервер для использования новой области и перезапустите.

1
ответ дан 2 December 2019 в 18:20
поделиться

для небольших систем, основанных на php, мы обычно делали следующее:

для изменения кода мы используем ant-скрипт, запускаемый из eclipse, который сравнивает локальную (dev) систему с удаленных (qa / prod / любых) систем, затем заархивирует все измененные файлы, скопирует zip-архив в удаленную систему и разархивирует его на целевой машине. Конечно, у нас есть автоматическое резервное копирование и тому подобное. Если это интересно, я мог бы опубликовать пример сценария в ближайшие несколько дней.

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

для больших систем вы должны действительно использовать что-то более надежное.

обратите внимание, что если ваша система prod извлекает напрямую из svn, вы удаляете изменения, которые, возможно, не были протестированы должным образом (вы можете забыть зафиксировать что нибудь,

1
ответ дан 2 December 2019 в 18:20
поделиться

Я бы порекомендовал первый вариант. Если у вас есть структура, в которой вы можете размещать версии кода и переключаться между ними, изменяя ссылку, гораздо проще откатиться, чем если бы у вас была только проверка svn. Для возврата к svn необходимо выполнить слияние с предыдущей версией.

1
ответ дан 2 December 2019 в 18:20
поделиться
Другие вопросы по тегам:

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