Помогите мне придумать стратегию развертывания

Для C++/Java/C# кодеры два различия, которые я подчеркиваю очень решительно заранее, то, что:

№ 1: В Perl почти все имеет значение, просто не всегда, что Вы хотите. Хорошие примеры включают:

  • Имена переменной без символов не останавливают выполнение - они интерпретируются как Попытка barewords
  • сохранить массив в скаляре, и Вы получаете длину
  • Попытка сохранить хеш в скаляре, и Вы получаете 'a/b' (блоки, используемые по сравнению с общими блоками?)

№ 2: В Perl можно составить его, как Вы продвигаетесь. В других работах можно сказать "в хеше 'w', ключ 'x' индексирует анонимный массив, где поле 'y' содержит 'z'" , и интерпретатор создаст и размер все переменные для Вас, когда Вы идете.

9
задан ddd 1 September 2009 в 12:07
поделиться

2 ответа

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

Вы можете использовать MSBuild для выполнения 1–4 без проблем. Мы обновляем наши веб-конфигурации с помощью MSBuild с помощью задачи XMLUpdate , а также запускаем несколько сценариев awk для дополнения части нашего сгенерированного кода с помощью задачи Exec .

Для # 5 и # 6, вы, вероятно, снова захотите использовать Exec для выполнения некоторого скрипта, чтобы получить файлы резервных копий и запустить их для производственных экземпляров, однако я не администратор SQL, поэтому я понятия не имею, лучший ли это способ или для этого уже есть задачи MSBuild.

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

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

2
ответ дан 5 December 2019 в 02:08
поделиться

I have tried the following for deployment on a production server, using NAnt to handle the logic:

1) Check folder with latest release build for revision number.

If a newer revision is available:

2) Fetch file with compiled web site and database scripts (see below).

3) Take web site offline (add app_offline.htm).

4) Apply database scripts (see below).

5) Put web site online (delete app_offline.htm).


Concerning deploying changes to the database schema, I've been inspired by some posts by K. Scott Allen. A short version of these is:

1) Script each new change to the database schema (tables, indexes, seed data), and store each new change in separate files (e.g. schema-001.0001.sql, schema-001.0002.sql, etc.). Keep these files in a separate folder, e.g. sql\schema.

2) Script misc. objects (stored procedure, functions, triggers, and views) in separate files in separate folders, e.g. sql\procedures\uspGetProducts.sql, sql\procedures\uspUpdateProduct.sql, sql\functions\, sql\triggers\, sql\views\

3) When deploying: a) Drop all misc. objects from part 2, b) apply the schema changes from part 1 that have not been applied previuously, c) and finally recreate all misc. objects from part 2.

These scripts can be deployed automatically by e.g. Nant scripts on the production server.

0
ответ дан 5 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

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