Меня интересует способ иметь частное облако, в котором будет размещаться сервер Glassfish (или Tomcat).
Какой вариант из Eucalyptus, Openstack или Nimbus лучше всего подходит для развертывания на нем Java-приложений? Или, может быть, есть что-то другое, и я неправильно смотрю на проблему?
Как я себе это представляю, что у меня должно быть какое-то общее хранилище, которое я мог бы расширить, введя новые узлы в этот кластер и имея простое управление для экземпляров Glassfish: что-то вроде образов виртуальных машин, которые я могу запускать и останавливать по требованию, и этот образ является общим среди узлов.
Мне здесь не нужно конкретное пошаговое решение, но очень приветствуются рекомендации, как это сделать.
Вам следует проверить Open PaaS, например Cloudify, я один из его участников (см. http://www.cloudifysource.org). Использование такого Open PaaS действительно может дать вам свободу выбора любого частного облака. Cloudify может легко встроить любой сервис (например, Websphere) в любое облако.
Обычно Eucalyptus и Openstack предназначены для масштабирования экземпляров сервера (или хранилища S3 / swift), а не для кластеризации отдельных приложений.
Следовательно, если вы хотите развернуть кластер определенного Java-приложения для обеспечения производительности, надежности и масштабируемости, то для двух упомянутых вами типов серверов Java-приложений вам следует рассмотреть либо кластер серверов Glassfish, либо кластер tomcat.
Высокая доступность Glassfish поддерживает балансировку нагрузки более кластеры серверов Glassfish в версии с открытым исходным кодом, репликация сеанса и отказать. Вы можете добиться дополнительной защиты, используя различные стратегии высокой доступности базы данных, такие как Репликация MySQL или какой-либо эквивалент NoSQL или Postgresql.
Вы можете добиться аналогичных результатов (некоторые будут спорить .. ;-) с помощью репликация сеанса tomcatили другие стратегии обеспечения высокой доступности и аварийного переключения с кластерами Tomcat.
Очевидно, это во многом зависит от того, чего вы пытаетесь достичь, а также от структуры и компонентов вашего Java-приложения.
Взгляни на OpenShift
OpenShift - это бесплатная автоматическая масштабируемая платформа Red Hat как услуга (PaaS) для приложений. Как платформа приложений в облаке OpenShift управляет стеком, поэтому вы можете сосредоточиться на своем коде.