Среда тестирования движка Multi-CFML

Есть ли у кого-нибудь хороший способ настроить несколько механизмов CFML и их версии вместе в подходящей среде для перекрестного тестирования приложения на основе CFML.

В идеале я бы хотел, чтобы это был Ubuntu Server, поскольку я использую его с VirtualBox (под Windows 7). Кроме того, было бы полезно, если бы можно было переключаться между ними, чтобы мой ноутбук мог справляться с одним за раз, а не со всеми одновременно. Я думаю о следующем:

  • Adobe ColdFusion 9
  • Адобе КолдФьюжн 10
  • Рейло 3.3.x
  • Рейло 4.x
  • ОпенБД 2.х

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


person Mister Dai    schedule 01.08.2012    source источник


Ответы (3)


Вы упомянули возможность «переключаться между ними, чтобы мой ноутбук мог справляться с одним за раз, а не со всеми сразу», я предполагаю, что вы думаете, что каждый из них будет работать на другой виртуальной машине или что они могут потребовать огромный объем памяти. Я не думаю, что вам нужно беспокоиться об этом. Если вам не требуется, чтобы они находились на разных машинах, я думаю, вы могли бы сделать все это на одной виртуальной машине и с одним экземпляром контейнера сервлетов (например, Tomcat).

С точки зрения высокого уровня, вот как я бы это сделал.

  1. Установить Томкэт
  2. Создайте или скачайте .wars для каждого из движков.
  3. Разверните указанный .wars в этом экземпляре Tomcat.
  4. Настройте Tomcat для использования каждого из этих сервлетов с другого имени хоста (server.xml).
  5. Создайте каталог кода за пределами Tomcat для вашей единственной копии кода.
  6. Настройте символическую ссылку в каждом веб-приложении, чтобы связать папку кода с сервлетом.

Затем вы сможете получить доступ к одному и тому же источнику из каждого движка, посетив разные имена хостов в браузере.

Я могу что-то упустить. Прошло много времени с тех пор, как я устанавливал что-то подобное. Вам, вероятно, потребуется внести ряд изменений (настройки JVM, переключение на Sun/ORACLE JVM по сравнению с OpenJDK и т. д.).

Я не думаю, что запуск такого количества двигателей вызовет у вас большие проблемы. По моему опыту, для разработки у меня было 3 экземпляра CF9, работающих на Tomcat, использующих только 189 МБ ОЗУ. И каждый дополнительный экземпляр не увеличивал это число на 1/3. Гораздо меньше. Меня не удивит, если вы сможете легко запустить все это с объемом оперативной памяти менее 512 мегабайт. Возможно даже 256мб, если у вас реально болит память.

Надеюсь, это поможет.

person Jason Dean    schedule 01.08.2012
comment
Спасибо, Джейсон, я думал о том, чтобы объединить их всех в одну виртуальную машину. Полезно знать, что у вас не так много способов использования памяти с несколькими экземплярами, а это значит, что я могу просто отбросить беспокойство о том, чтобы не остановить/запустить каждый из них. Звучит как достойный подход, если я смогу заставить все это хорошо работать вместе, в основном меня интересует CF9/10 и то, как они будут счастливы на коте, не настроенном для Adobe. - person Mister Dai; 02.08.2012
comment
Я знаю, что CF9 будет в порядке. С CF10 я не думаю, что вам нужно беспокоиться, если вы не используете CGI.PATH_INFO. - person Jason Dean; 02.08.2012
comment
Я использую FW/1, который использует CGI.PATH_INFO для URL-адресов SES. Но для этого есть пара исправлений или (насколько я понимаю), если CF10 развернут как WAR для tomcat, то это не проблема. - person Mister Dai; 02.08.2012
comment
хотел еще раз поблагодарить. Теперь у меня все это работает, и двигатели используют один и тот же экземпляр tomcat. Первоначально у меня была головная боль, когда я добавил CF10 поверх всех остальных, но оказалось, что у tomcat не хватает памяти (по умолчанию 128M) и пространство PermGen слишком мало, чтобы справиться. - person Mister Dai; 03.08.2012

Для ColdFusion 10, Railo и OpenBD вам следует рассмотреть вариант развертывания с автономными установками Tomcat, Jetty или JBoss.

ColdFusion 9, вероятно, самое простое решение - настройка «Конфигурация корпоративного мультисервера».

С такими типами установки они в значительной степени не зависят от платформы.

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

После этого вам нужно беспокоиться о проксировании от apache или Nginx к экземплярам сервера и коннектору, который вы хотите использовать.

Не знаю, поможет ли это...

person Stephen Moretti    schedule 01.08.2012
comment
Спасибо, подумал, что могут возникнуть конфликты портов, о которых нужно беспокоиться, обязательно буду следить за этим. Также было бы полезно бросить nginx/Apache перед всеми из них, чтобы немного облегчить доступ. - person Mister Dai; 02.08.2012
comment
Стивен, я обновил ваш ответ, но просто чтобы проверить, на что вы ссылаетесь ... CF9 имеет конфигурацию корпоративного мультисервера (т.е. JRun) и конфигурацию J2EE (т.е. EAR/WAR) - см. здесь - я предположил, что под Multi Server J2EE вы подразумеваете JRun, но понял Я бы разместил это, чтобы убедиться... - person Peter Boughton; 02.08.2012
comment
Привет, Питер, да, я имел в виду многосерверную конфигурацию предприятия. Я предпочитаю развертывание j2ee ear/war в многосерверной установке, потому что на самом деле я не использую многосерверную установку до тех пор, пока не разверну новый блестящий экземпляр с помощью расширенного файла ear. - person Stephen Moretti; 02.08.2012

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

  1. Установите сервер Ubuntu в качестве гостя VirtualBox (хост также является Ubuntu).
  2. Настройте только основное программное обеспечение, такое как JVM и обновления. Настроить виртуальный
  3. компьютерная сеть в качестве мостового адаптера для использования моего соединения Wi-Fi.
  4. Настройте DHCP моего маршрутизатора Wi-Fi, чтобы назначить статический IP-адрес для MAC-адреса виртуальной машины.
  5. Добавить запись в мои (хост) системные хосты: ip_assigned_to_vm virtual.ubuntu
  6. Настройте гостевые дополнения и смонтируйте мой каталог ~/www внутри машины для доступа к веб-приложениям.

Теперь, когда мне нужна другая машина для экспериментов или какая-то другая конфигурация программного обеспечения (я тестировал таким образом ACF 10 и Railo 4), я делаю две вещи:

  1. Клонировать существующую чистую машину.
  2. Убедитесь, что он использует тот же MAC-адрес с мостовым интерфейсом.

Вот и все.

Неважно, на какой из машин я работаю, ко всем можно получить доступ как http://virtual.ubuntu (из конечно, это требует правильной настройки веб-сервера на гостевой системе). В то же время они независимы, и совершенно безопасно делать все, что я хочу, и тестировать все, что работает на Ubuntu.

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

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

Надеюсь это поможет.

person Sergey Galashyn    schedule 01.08.2012
comment
Совет по клонированию полезен, спасает меня от воссоздания гостей, если я что-то испорчу. Мне нужно, чтобы они все находились на одном хосте, так как я хотел бы в конечном итоге автоматизировать тестирование на всех различных механизмах CFML. - person Mister Dai; 02.08.2012
comment
@MisterDai Лично я не вижу особого смысла в таком автоматическом тестировании, потому что различия не так уж велики, как в браузерах. Если только вы не используете код, специфичный для движка, И вам не нужно запускать код во многих средах (но зачем вам делать это с собой?). - person Sergey Galashyn; 02.08.2012
comment
Это для моего проекта CFTracker, который отслеживает механизмы CFML и предоставляет внутреннюю информацию о приложениях, сеансах, QueryCache и т. д. Большая часть работы выполняется путем перехода к внутренним компонентам Java каждого механизма, поскольку они очень разные на этом уровне. Достаточно садистский, я знаю, и я тоже раздаю его бесплатно :P - person Mister Dai; 03.08.2012