Servidores de mapas en alta
disponibilidad
JBoss – Geoserver - PostGIS
Carolina Moya Diez
carolina.moya@inclam.com
Qué es un servidor de mapas
SERVIDOR DE MAPAS (I)
• Un servidor de mapas, parte de:
» Ortofotos (archivos de imágenes georreferenciadas)
» Información...
SERVIDORES DE MAPAS (II)
• Permite editar cómo visualizar la información
mediante estilos (SLD)
• También permite editar l...
SERVIDORES DE MAPAS (III): OGC
• “Open Geospatial Consortium” (OGC) se ocupa de
estandarizar los protocolos de comunicació...
SERVIDORES DE MAPAS (IV): PROBLEMAS
• Las transformaciones, de entidades geográficas a
imágenes o ficheros, son muy costos...
SERVIDORES DE MAPAS (V): EJEMPLO
• Componentes típicos de una Infraestructura de Datos
Espaciales Open Source
» Servidor d...
SERVIDOR DE MAPAS (VI): EJEMPLOS
• Empresas u organismos que usan servidores de mapas
– Catastro http://www.catastro.meh.e...
Qué es PostGIS
POSTGIS
• Módulo para el soporte de objetos espaciales en
PostgreSQL
• Open Source
• Es la base de datos espacial de códig...
Qué es JBoss
JBOSS
• Servidor de aplicaciones J2EE Open Source
• Multiplataforma
• Implementa todo el paquete de servicios J2EE
• Versi...
ESTRUCTURA JBOSS
JBOSS_HOME/modules/org/postgresql/main
Distintos perfiles
PERFILES
Domain Profile Name
Standalone File
Name
Description Clustered
default
standalone.xml
(default)
Java EE6 Web Prof...
GEOSERVER
• Para desplegar geoserver en Jboss
Instalar Java Advanced Imaging y Java Image IO
Hacer jars accesibles por e...
Qué significa alta disponibilidad
ALTA DISPONIBILIDAD
• High Availability (HA)
• Definición (wikipedia):
Disponibilidad se refiere a la habilidad de la com...
ALTA DISPONIBILIDAD (II)
• Scalability vs. Availability
Scalability means if you add more nodes to your cluster
you get m...
Servidores de mapas con alta
disponibilidad
REQUISITOS DE UN HA GIS
• Acceso en tiempo real a la información para su uso
en sistemas críticos
• Grandes cantidades de ...
EJEMPLO DE USO
EJEMPLO DE USO (II)
EJEMPLO DE USO (III)
Conceptos básicos de JBoss
clustering
DOMAIN
• Domain
Conjunto de instancias de JBoss que comparten
“recursos”
En un mismo host puede haber varias instancias
...
DOMAIN (II)
• Configurar Maestro en un domain
JBOSS-HOME/domain/configuration/domain.xml
– El Maestro no suele tener serv...
DOMAIN(III)
• Configurar esclavo en un domain
JBOSS-HOME/domain/configuration/host-slave.xml
– Definir host-name que coin...
JBOSS HA
• Domain son la solución de JBoss a la mejora de
rendimiento y la escalabilidad
• Esto no soluciona el problema d...
JBOSS HA (II)
• Varias instancias JBoss en activo-activo
JBOSS HA (III)
• Configurar Apache+modcluster
Cargar modcluster como un nuevo módulo
– (problemas en windows)
JBOSS HA (IV)
• Configurar instancia JBoss
Tenemos que usar un perfil HA
Configurar donde se encuentra el Apache en el s...
JBOSS HA (V)
• Sticky session
Definir sso para acceso a la aplicación en el subsystem de
security
– security-domain
En e...
JBOSS HA (VI)
• Replication trigger: cuando una sesión tiene que ser
replicada
SET
SET_AND_GET
SET_AND_NO_PRIMITIVE_GET...
Arquitecturas complejas
ARQUITECTURAS
• Varias instancias de JBoss en distintos cluster
– Cada cluster gestiona unas aplicaciones determinadas
ARQUITECTURAS (II)
ARQUITECTURAS (III)
ARQUITECTURAS (IV)
Nuestra solución
NODO
• Concepto de “nodo”
• Arquitectura basada en cluster de nodos
ARQUITECTURA PROPUESTA
Pruebas de rendimiento
STRESS TEST: ESCENARIO (I)
• 3 Nodos montados sobre máquinas virtuales Vmware
ESXi
• 2 CPU, 4 Gb de RAM
• Ethernet 100 Mbs...
STRESS TEST: ESCENARIO (II)
• Las pruebas son:
» Peticiones WMS a diferentes BBOX
» Con y sin caché (WMS vs WMTS)
» Una pr...
STRESS TEST: ESCENARIO (III)
• Se usaran dos cartografías diferentes
Raster: Geotiff, mosaico de 90 ficheros, 13 Gb
Vect...
STRESS TEST: PRUEBA A UN NODO
Hilos
Raster Vectorial
Tiempo
medio de
respuesta
con caché
Tiempo
medio de
respuesta
sin cac...
STRESS TEST: PRUEBAS AL CLUSTER
• 6 Clientes lanzando 300 hilos.
• Tiempos medios Vectorial: 0.8 seg/peticion
• Tiempos me...
PREGUNTAS
Upcoming SlideShare
Loading in …5
×

Servidores de mapas en alta disponibilidad CyLiconValley

1,435
-1

Published on

Charla para CyLicon Valley por Carolina Moya

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,435
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
53
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Servidores de mapas en alta disponibilidad CyLiconValley

  1. 1. Servidores de mapas en alta disponibilidad JBoss – Geoserver - PostGIS Carolina Moya Diez carolina.moya@inclam.com
  2. 2. Qué es un servidor de mapas
  3. 3. SERVIDOR DE MAPAS (I) • Un servidor de mapas, parte de: » Ortofotos (archivos de imágenes georreferenciadas) » Información vectorial (puntos, lineas, poligonos, etc…) » Información ráster (grids, tins…) • Desde: » Ficheros (Shapefile, ArcGis Raster, GeoTiff,…) » Bases de datos espaciales (PostGIS, Oracle Spatial,…) » Orígenes de datos interoperables • Y Genera: » Imágenes (jpg, png,…) » Datos en formatos estándares (xml, json, …) • Mediante peticiones HTTP estándar http://URLServidorDeMapas/geoserver/INCLAM/wms?LAYERS=INCLAM%3Ascc_canada&STYLES=&FORMAT=image%2Fjpeg&SERV ICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A26910&BBOX=483058.40000044,5413527.3132805,550605.1999987,54 65506.6867167&WIDTH=512&HEIGHT=394
  4. 4. SERVIDORES DE MAPAS (II) • Permite editar cómo visualizar la información mediante estilos (SLD) • También permite editar la información contenida (WFS-T)
  5. 5. SERVIDORES DE MAPAS (III): OGC • “Open Geospatial Consortium” (OGC) se ocupa de estandarizar los protocolos de comunicación entre geodatos » Servidores de mapas » Definición de sensores y transmisión de información » Estándares para representar formas geográficas » Etc… • En los servidores de mapas define (principalmente): » WMS (entidades a imagen) » WFS (entidades a XML) » WCS (entidades a ficheros raster)
  6. 6. SERVIDORES DE MAPAS (IV): PROBLEMAS • Las transformaciones, de entidades geográficas a imágenes o ficheros, son muy costosas en RAM y CPU » Existen cachés para el protocolo WMS, conocidos como Caché de Teselas (WMTS) • Muchos orígenes de datos diferentes (formatos, proyecciones, etc…), implican transformaciones intermedias (mayor costo aún) • Los clientes SIG no realizan (habitualmente) una sola petición para mostrar un mapa (teselas). Alta carga de los servidores. • Clientes con SLA muy estrictos.
  7. 7. SERVIDORES DE MAPAS (V): EJEMPLO • Componentes típicos de una Infraestructura de Datos Espaciales Open Source » Servidor de base de datos: PostgreSQL » Extensiones espaciales: PostGIS » Servidor de mapas: Geoserver » Servidor de caché: GeoWebCache » Servidor de Servlets: Apache Tomcat » Coste en licencias: 0€ • Componentes privativos » Servidor de base de datos: Oracle » Extensiones espaciales: Oracle Spatial » Servidor de mapas: ArcGis Server » Servidor de Web: Microsoft IIS » Coste en licencias: muy alto • Funcionalidad y rendimiento: similares
  8. 8. SERVIDOR DE MAPAS (VI): EJEMPLOS • Empresas u organismos que usan servidores de mapas – Catastro http://www.catastro.meh.es/ – CartoCiudad http://www.cartociudad.es/portal/ – OpenStreetMap http://www.openstreetmap.org – IDEE http://www.idee.es/ – NOAA http://nowcoast.noaa.gov/help/mapservices.shtml – … – Google Maps https://www.google.com/maps (aunque no se sabe mucho de su infraestructura, ni soporta estándares)
  9. 9. Qué es PostGIS
  10. 10. POSTGIS • Módulo para el soporte de objetos espaciales en PostgreSQL • Open Source • Es la base de datos espacial de código abierto más ampliamente utilizada.
  11. 11. Qué es JBoss
  12. 12. JBOSS • Servidor de aplicaciones J2EE Open Source • Multiplataforma • Implementa todo el paquete de servicios J2EE • Versión estable actual 7.1.1_Final Bugs en la parte de clustering por lo que hay que bajarse versiones posteriores para las que no se crea instalable. La última es la 7.2.0.Final, y ya con la denominación WildFly la 8.0.0.Alpha4 Nosotros trabajmos con la 7.1.3_Final – https://github.com/jbossas/jboss- as/releases/tag/7.1.3.Final
  13. 13. ESTRUCTURA JBOSS JBOSS_HOME/modules/org/postgresql/main Distintos perfiles
  14. 14. PERFILES Domain Profile Name Standalone File Name Description Clustered default standalone.xml (default) Java EE6 Web Profile + JCA + JAX-RS + JAX- WS + Javamail + Remote Connectivity N ha standalone-ha.xml Java EE6 Web Profile + JCA + JAX-RS + JAX- WS + Javamail + Remote Connectivity Y full standalone-full.xml Java EE6 Full Profile N full-ha standalone-full- ha.xml Java EE6 Full Profile Y
  15. 15. GEOSERVER • Para desplegar geoserver en Jboss Instalar Java Advanced Imaging y Java Image IO Hacer jars accesibles por el PATH, normalmente se copian en $JAVA_HOME/jre/lib/i386 Instalarlas como módulo JBoss Añadir en el war del geoserver – En el web.xml la etiqueta <distributable/> – Añadir fichero jboss-deplyment-structure.xml
  16. 16. Qué significa alta disponibilidad
  17. 17. ALTA DISPONIBILIDAD • High Availability (HA) • Definición (wikipedia): Disponibilidad se refiere a la habilidad de la comunidad de usuarios para acceder al sistema, someter nuevos trabajos, actualizar o alterar trabajos existentes o recoger los resultados de trabajos previos. Si un usuario no puede acceder al sistema se dice que está no disponible. • JBoss: Availability for a cluster means: If one node fails, all the sessions on that node will be seamlessly served by another node. This can be achieved through session- replication.
  18. 18. ALTA DISPONIBILIDAD (II) • Scalability vs. Availability Scalability means if you add more nodes to your cluster you get more computing power from your cluster. With computing power we mean both: CPU-power and memory.
  19. 19. Servidores de mapas con alta disponibilidad
  20. 20. REQUISITOS DE UN HA GIS • Acceso en tiempo real a la información para su uso en sistemas críticos • Grandes cantidades de información
  21. 21. EJEMPLO DE USO
  22. 22. EJEMPLO DE USO (II)
  23. 23. EJEMPLO DE USO (III)
  24. 24. Conceptos básicos de JBoss clustering
  25. 25. DOMAIN • Domain Conjunto de instancias de JBoss que comparten “recursos” En un mismo host puede haber varias instancias Funcionando como Maestro – Esclavo • Standalone Instancia única
  26. 26. DOMAIN (II) • Configurar Maestro en un domain JBOSS-HOME/domain/configuration/domain.xml – El Maestro no suele tener servidores asociados – Definir el <server-group> a utilizar Crear usuarios para los esclavos que se conecten – JBOSS_HOME/bin/add-user
  27. 27. DOMAIN(III) • Configurar esclavo en un domain JBOSS-HOME/domain/configuration/host-slave.xml – Definir host-name que coincida con el usuario creado – Asignar la contraseña cifrada – Indicar domain-controller – Definir los servidores a instanciar en este nodo • Web.xml <distributable/>
  28. 28. JBOSS HA • Domain son la solución de JBoss a la mejora de rendimiento y la escalabilidad • Esto no soluciona el problema de la HA de hecho el Maestro es un punto crítico. • Solución: Cluster de JBoss con modcluster+Apache como balanceador de carga
  29. 29. JBOSS HA (II) • Varias instancias JBoss en activo-activo
  30. 30. JBOSS HA (III) • Configurar Apache+modcluster Cargar modcluster como un nuevo módulo – (problemas en windows)
  31. 31. JBOSS HA (IV) • Configurar instancia JBoss Tenemos que usar un perfil HA Configurar donde se encuentra el Apache en el subsystem del modcluster del perfil seleccionado Definir la métrica que queremos usar como balanceo de carga – Métricas personalizadas
  32. 32. JBOSS HA (V) • Sticky session Definir sso para acceso a la aplicación en el subsystem de security – security-domain En el subsystem WEB indicar que la cache usada por el sso es <sso cache-container="web"/> En el fichero jboss-web.xml definir el tipo de política a usar.
  33. 33. JBOSS HA (VI) • Replication trigger: cuando una sesión tiene que ser replicada SET SET_AND_GET SET_AND_NO_PRIMITIVE_GET ACCESS • Replication granularity: tamaño de la unidad replicada ATTRIBUTE: problema con referencias entre los atributos SESSION: FIELD: requiere cambios a nivel de aplicación Performance
  34. 34. Arquitecturas complejas
  35. 35. ARQUITECTURAS • Varias instancias de JBoss en distintos cluster – Cada cluster gestiona unas aplicaciones determinadas
  36. 36. ARQUITECTURAS (II)
  37. 37. ARQUITECTURAS (III)
  38. 38. ARQUITECTURAS (IV)
  39. 39. Nuestra solución
  40. 40. NODO • Concepto de “nodo” • Arquitectura basada en cluster de nodos
  41. 41. ARQUITECTURA PROPUESTA
  42. 42. Pruebas de rendimiento
  43. 43. STRESS TEST: ESCENARIO (I) • 3 Nodos montados sobre máquinas virtuales Vmware ESXi • 2 CPU, 4 Gb de RAM • Ethernet 100 Mbs, compartida con el resto de la oficina • Ubuntu Server 12.04 LTS (2 nodos) y Windows 7 (1 nodo) • Jmeter como software de estrés. • 6 Equipos clientes lanzando peticiones simultáneamente
  44. 44. STRESS TEST: ESCENARIO (II) • Las pruebas son: » Peticiones WMS a diferentes BBOX » Con y sin caché (WMS vs WMTS) » Una prueba para cartografía vectorial, otra para raster » Numero de threads en diferentes pruebas: 300 » Se lanzan en bucles de 250
  45. 45. STRESS TEST: ESCENARIO (III) • Se usaran dos cartografías diferentes Raster: Geotiff, mosaico de 90 ficheros, 13 Gb Vectorial: Shapefiles cargados en la base de datos Postgis. Composición de varias capas. Todo el callejero de una ciudad española.
  46. 46. STRESS TEST: PRUEBA A UN NODO Hilos Raster Vectorial Tiempo medio de respuesta con caché Tiempo medio de respuesta sin caché Tiempo medio de respuesta con caché Tiempo medio de respuesta sin caché 100 0,7 seg. 1,4 seg. 0,4 seg. 0,6 seg. 128 0,8 seg. 1 seg. 0,6 seg. 0,8 seg. 150 1 seg. 1,7 seg. 0,8 seg. 1 seg. 200 1,4 seg. 1,9 seg. 1,3 seg. 1,4 seg.
  47. 47. STRESS TEST: PRUEBAS AL CLUSTER • 6 Clientes lanzando 300 hilos. • Tiempos medios Vectorial: 0.8 seg/peticion • Tiempos medios Raster: 1.1 seg/peticion
  48. 48. PREGUNTAS

×