Совет по развертыванию приложения Glassfish 3 EJB? - PullRequest
1 голос
/ 04 февраля 2011

По ряду неудачных причин управления (бюджетные ограничения и т. Д.) Я, разработчик, получил возможность развертывать приложение в производственной среде. Суть в том, что у меня нет опыта развертывания сервера приложений EJB. Тем не менее, они знают, что нет никаких гарантий успеха.

Контекст :

  • Сервер разработчика работает на последней версии Netbeans с Glassfish v3 на компьютере Mac
  • 98% / 99% безотказной работы в порядке, нет финансовых / критических транзакций
  • Это клиент-серверное приложение EJB 3, и веб-уровень, бизнес-уровень и уровни ресурсов в настоящее время работают на одном компьютере.
  • У меня есть свобода выбора инфраструктуры hw / sw
  • Оценка нагрузки: 10 одновременных соединений, в среднем, редкие 200 пиков
  • Исходящие общедоступные данные - это текстовые / маленькие картинки (для клиентов iPhone), только входящий HTTP-текст
  • Будет выполнено основное обслуживание (резервное копирование, перезагрузка сервера и т. Д.)

Мои вопросы для производственного развертывания:

  • Какие должны иметь инфраструктура? Минимальные системные характеристики и т. Д.
  • Можно ли сохранить Glassfish v3?
  • На каких аспектах конфигурации сервера мне следует сосредоточиться?
  • Сценарий наихудшего случая: если я разверну ту же программную инфраструктуру (Netbeans / Glassfish v3), что и во время разработки, сервер продолжит работу?

Любой совет будет приветствоваться. Спасибо!

Ответы [ 2 ]

1 голос
/ 05 февраля 2011

Для архитектуры вы можете начать с малого только с одного экземпляра GlassFish без фронтального веб-сервера (у GlassFish есть один встроенный, который способен работать).Если вы можете дождаться выпуска GlassFish 3.1, вы сможете добавлять экземпляры (кластеризованные или автономные) и предлагать масштабируемость и централизованное администрирование.

Большинство производственных экземпляров GlassFish, которые я видел, работают с 1 ГБ-2 ГБкучи JVM (-Xmx), но ваш пробег может отличаться, если вы загружаете много данных в память или если вы используете некоторые платформы.Если вы хотите повысить надежность, очевидно, что их наличие на отдельных машинах является плюсом.Имея два экземпляра на одной машине, вы можете предложить непрерывность обслуживания, если один экземпляр выходит из строя (но не в случае отказа машины).

Я бы посоветовал максимально использовать сценарии предоставления ресурсов (пул соединений,Источник данных JDBC и т. Д.) И приложения, использующие инструмент командной строки «asadmin» и пытающиеся не использовать NetBeans на рабочей платформе.

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

Вы не упоминаете базу данных.Разве нет такого?

1 голос
/ 04 февраля 2011

Я предлагаю следующее:

  1. Не эксперт Mac, но я скажу, что использовать 6 ГБ или более ОЗУ
  2. В наши дни пространство на жестком диске не является проблемой
  3. Не знаю много abt процессоров Mac (независимо от двухъядерности и т. Д.)
  4. Лично я не использовал GF3 в производстве, но я надеюсь, что сейчас он стабилен, поэтому с вами все будет в порядке.1012 * Архитектура системы:
    1. Получать все HTTP-запросы на некотором веб-сервере (веб-сервере Apache или Sun) и балансировать нагрузку на серверы Glassfish.
    2. Теперь в зависимости от ваших физических (или виртуальных) машин создайте экземпляр сервера приложений Glassfish на каждой машине.Если у вас есть только одна машина, создайте как минимум 2 экземпляра Glassfish.Это поможет отключить один узел для обслуживания, а другой - для продолжения работы.
    3. Что касается развертывания, убедитесь, что вы остановили журналы отладки и точную настройку журналов JPA и т. Д.
    4. Используйте Ant илидругие сценарии для развертывания кода и создания резервной копии существующего кода.

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

    Удачи.

...