2012-10-09 22 views
5

Actualmente estoy buscando implementar una aplicación de estilo SOA en un PAAS en la nube.Despliegue de una aplicación de estilo SOA dentro de un PAAS

Estoy evaluando una serie de proveedores de PAAS Incluyendo Cloud Foundry, Heroku y Jelastic.

Por el momento, por razones de simplicidad, solo tengo una aplicación Grails y un archivo jar de servicio único con un servidor Jetty incrustado. Esto se expandirá para ser servicios múltiples y front-ends web, con un servicio comido en el medio, todos se comunican a través de una mezcla de rabbit mq y http.

En este momento me cuesta entender la topología de cómo se implementarían en un PAAS.

Mis preguntas son:

  1. ¿Todos los servicios y aplicaciones web tienen que ser desplegados sobre el tema "aplicaciones" de nivel dentro del PAAS (por ejemplo, puede dinamómetros ser utilizado En Heroku?)

  2. En caso afirmativo, se puede restringir el acceso a los servicios, de modo que solo se puedan realizar solicitudes desde la aplicación web (eventualmente puerta de enlace).

  3. Necesitan existir como una aplicación de nivel superior para beneficiarse del equilibrio de carga (y escalado automático), ya que puede haber varias instancias de cada servicio.

  4. Si cada servicio tuviese su propio almacén de datos, supongo que esto requeriría que fuera una aplicación.

  5. Si hay una forma de lograr esto sin utilizar una aplicación completa para cada servicio, ¿cómo se pueden direccionar individualmente los nodos? ¿Pueden registrarse con algún tipo de servicio de directorio?

Gracias!

Respuesta

5

Voy a responder a CloudFoundry ya que esto es lo que estoy más competentes en (y lo que me pagan :)

Preámbulo: CloudFoundry tiene los conceptos de aplicaciones (trozos de código que se ejecutan, que puede o no estar expuesto al mundo exterior es decir hay un standalonetiempo de ejecución) y servicios (áreas de almacenamiento de datos y similares, RabbitMQ entra en esa categoría). Implementa aplicaciones y las vincula a cero o más servicios.

  1. Me gustaría responder "SÍ" si se asume que desea que la capacidad de redistribuir y la escala de cada uno de lo que se llama el servicio (es decir no dar servicio en el sentido CF, sino en el sentido SOA) de forma individual
  2. Para CloudFoundry, la respuesta es "NO", tendría que hacerlo programáticamente. Tenga en cuenta que si los servicios solo comunican a través de * por ejemplo * RabbitMQ, entonces los implementaría como aplicaciones StandAlone y no serían direccionables en la web en primer lugar, aunque
  3. No hay "nivel superior" y "otro nivel" en CloudFoundry.Las aplicaciones son a lo que puedes escalar. Las aplicaciones vinculadas a una URL se equilibran automáticamente.
  4. SÍ. Tenga en cuenta que puede empaquetar varios "servicios" de SOA como una única "aplicación" y que partes de esa conversación con el servicio A de CloudFoundry y otras partes se comuniquen con el servicio B. Consulte 1) para conocer los inconvenientes.
  5. De respuestas anteriores, la respuesta es NO. Si usa p. RabbitMQ como su intermediario de mensajes, luego las claves de enrutamiento se utilizan como una especie de "directorio".

la esperanza que esto tiene sentido :)

+0

Gracias por su respuesta, esto confirma lo que estaba pensando acerca de la implementación de este tipo de patrón de Cloud Foundry. Con respecto a 2, ¿la idea de que este tipo de seguridad dependería de la implementación subyacente de IAAS? ¿Hay alguna forma de que las instancias de los conejos sean direccionables desde el mundo exterior? –

+1

Me alegro de poder ayudar. Puede que le interese un comentario de mi colega Chris Richardson sobre el desarrollo de aplicaciones poco compactas. Google por eso. 2) Sí, está la seguridad de la capa de infraestructura. Pero tampoco debes olvidarte de la seguridad de tu aplicación, sin duda usando frameworks (por ejemplo, Spring Security si estuviste en Spring). Con respecto a los servicios a los que se puede acceder desde el exterior, existe una función de "tunelización" útil para la depuración y la configuración inicial/volcado: http://docs.cloudfoundry.com/tools/vmc/caldecott.html – ebottard

Cuestiones relacionadas