Лучшие практики для веб-приложения, Подготавливающего Сервер (на бюджете) [закрытый]

Вы добавляете hexstring бесконечно. Я думаю, что вы должны установить hexstring нулевым или пустым после проверки длины, а также вам не нужно цикл for для добавления строки в список.

foreach (byte b in hexArray) {
    // If you want to print 64 characters per each hexstring
    // you can simply check length > 0 && length % 64 == 0
    if (hexstring.Length > 0 && (hexstring.Length % 64) == 0) {
        test.Add(hexstring);
        hexstring = string.Empty;
    }
}

// Print rest of hexstring (if exists)
if (hexstring.Length > 0) {
    test.Add(hexstring);
}
17
задан 9 December 2009 в 17:03
поделиться

5 ответов

Дешевый и Легкий ответ:

1) Точка staging.domainname.com в Вашем VPS.

2) Добавляют в виртуальном хосте к подготовке, указывая на копию подготовки приложения.

3) Добавляют в параметре среды подготовки. (Вы знали, что могли определить новые среды в направляющих? Забавный материал!) Я думаю, что это столь же просто как копирование production.rb к staging.rb и тонкой настройке по мере необходимости плюс обновление database.yml.

4) В ActionController, добавьте в коде, подобном следующему

   if (ENV["RAILS_ENV"] == "staging")
     before_filter :verifies_admin
   end

, Где verifies_admin может быть что-либо, что Вы хотите. Я предлагаю использовать Базовую аутентификацию HTTP - дешевый и легкий.

def verifies_admin
  authenticate_or_request_with_http_basic do |username, password|
    username == "foo" && password == "bar"
  end
end

Примечание, что это может Bork Ваше соединение с тем платежным сайтом, если они выполняют входящие запросы Вам , хотя это достаточно просто зафиксировать (просто выключают before_filter для соответствующих контроллеров и/или действий.)

Лучший ответ:

1) Покупают второй VPS, настроенный у того же изображения как Ваш регулярный VPS и/или настроенный из того же install-from-the-bare-metal сценария (мне нравится Capistrano & Deprec для этого).

2) Точка staging.domainname.com в нем.

3) Иначе это совпадает с другой опцией.

Вещи думать о:

1) у меня должна быть база данных подготовки также? Вероятно, особенно если Вы собираетесь быть изменениями схемы тестирования.

2) у меня должно быть некоторое средство для движущихся данных между системами подготовки и производства?

3) Может катастрофический отказ моего приложения подготовки удалять главное приложение? Лучше всего надеюсь, что ответ нет.

15
ответ дан 30 November 2019 в 13:05
поделиться

Я предполагаю, что это зависит, если сервер подготовки должен быть доступным кем-либо, но Вами. Если бы другие люди должны смочь получить доступ к нему затем, Вам была бы нужна другая маленькая часть где-нибудь, и затем можно использовать htaccess или правила брандмауэра ограничить, кто получает доступ к нему. Если бы никто больше не должен получать доступ к нему, я предложил бы использовать VMware. Можно выполнить его на собственной машине или запасном поле, которое Вы имеете вокруг, или очень дешевый ПК. Мы используем свободный VMware Server 2 для наших тестовых серверов подготовки и развертывания, и он работает отлично. Это также делает очень легким создать новые тестовые серверы, просто копировав Вашу основную установку VM. Если Вы находитесь на Mac, можно использовать VMware Fusion, стоит денег, но я должен использовать его уже для тестирования IE.

3
ответ дан 30 November 2019 в 13:05
поделиться

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

Вы используете направляющие, Apache и Пассажира. Настройте различные конфигурации направляющих (и базы данных) и настройте каждого как именованный VirtualHost. Защитите один с htaccess. Создайте запись из своего домена (подготовка.*) и точка это там.

Несомненно, они не полностью изолируются друг от друга. Вы могли бы разрушить все. Ой! Это, вероятно, не будет иметь значения. :)

3
ответ дан 30 November 2019 в 13:05
поделиться

Используйте два отдельных сервера (VPS или безотносительно) как подобные, поскольку можно сделать их (аппаратное и программное обеспечение) в базовом изображении. Автоматизируйте весь конфигурация Вашей продуктивной среды, таким образом, ничто не сделано вручную. Используйте ту автоматизацию для создания сервера подготовки, это идентично продуктивной среде. Поддержите автоматизацию, чтобы гарантировать, чтобы обе среды остались в синхронизации и могли копироваться по требованию.

Решает и Вашу staging-out-of-sync проблему и Вашу проблему масштабирования первого порядка.

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

1
ответ дан 30 November 2019 в 13:05
поделиться

Я бы добавил к этому, что Jamis Buck, который создал Capistrano, также создал гем специально для настройки многоступенчатых окружений с помощью Capistrano. Вы можете сделать это и без гема, но гем делает это еще проще. Вы можете найти его пост об этом с инструкциями здесь: http://weblog.jamisbuck.org/2007/7/23/capistrano-multistage

Также есть очень полезная статья в книге Pragmatic Programmer "Advanced Rails Recipes", в которой рассказывается, как именно это настроить. Я обнаружил, что ответы на этот пост в сочетании с книгой "Рецепты Rails" невероятно упрощают настройку.

StackOverflow не позволяет мне добавить еще одну ссылку, но если вы введете в гугле Advanced Rails Recipes, книга будет первым результатом.

4
ответ дан 30 November 2019 в 13:05
поделиться
Другие вопросы по тегам:

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