SlideShare una empresa de Scribd logo
1 de 59
29 de septiembre de 2015
Servidor de mapas en HA con Jboss,
Geoserver y PostGIS.
9ª Jornadas de SIG Libre, 20159ª Jornadas de SIG Libre, 2015
Presentación
9ª Jornadas de SIG Libre, 20153
INCLAM: ¿Quienes somos?
9ª Jornadas de SIG Libre, 20154
¿Y vosotros?
●
David Tabernero
●
david.tabernero@inclam.com
●
Ing. Informático
●
Carolina Moya
●
carolina.moya@inclam.com
●
Ing. Informática
Necesidades
9ª Jornadas de SIG Libre, 20156
La información geográfica
●
La información geográfica tiene cada vez más
relevancia
9ª Jornadas de SIG Libre, 20157
Problemas...
Comenzamos a
centralizar todo:
Comenzamos a
centralizar todo:
9ª Jornadas de SIG Libre, 20158
Hay que buscar una solución...
●
Software libre
●
Las soluciones son maduras
●
Soluciones estables
●
Hay soporte, tanto comercial como de la
comunidad
●
Implementación de estándares (OGC, ISO)
●
Aparecen necesidades externas
9ª Jornadas de SIG Libre, 20159
¿HA y HP?
●
High Availability (HA):
●
"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." (Wikipedia)
●
"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." (blog.akquinet.de)
●
High performance (HP) o Scalability
●
"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." (blog.akquinet.de)
9ª Jornadas de SIG Libre, 201510
Ejemplos
9ª Jornadas de SIG Libre, 201511
Ejemplos
9ª Jornadas de SIG Libre, 201512
Ejemplos
9ª Jornadas de SIG Libre, 201513
Necesidades
●
Alta disponibilidad
●
Alto rendimiento
●
Maduro
●
Sencillo (en configuración, mantenimiento y
actualización
●
Mantenible
●
Y utilizar los menores recursos posibles
9ª Jornadas de SIG Libre, 201514
Soluciones
Todas son solucionesTodas son soluciones
Herramientas
9ª Jornadas de SIG Libre, 201516
Geoserver
●
Servidor de mapas
●
Java
●
OGC
●
Pluings
●
Cache de teselas (GWC) de serie
●
Rendimiento aceptable
●
¡Interfaz REST!
9ª Jornadas de SIG Libre, 201517
PostgreSQL + PostGIS
●
Servidor de base de datos
●
Maduro
●
Almacen de datos
●
Muy buen rendimiento
●
Extensión PostGIS
●
Añade extensiones geoespaciales (datos, funciones) a
PostgreSQL
●
pgRaster
9ª Jornadas de SIG Libre, 201518
Jboss/Wildfly
●
Servidor de aplicaciones J2EE Open Source
●
Multiplataforma
●
¿Pero porqué no Tomcat?
●
Soporte para la HA de "serie"
●
Línea de comandos potente
●
Permite una gran personalización de funcionalidad,
gracias a su sistema modular
●
Incorpora herramientas para testing (Arquillian)
Jboss/Wildfly
9ª Jornadas de SIG Libre, 201520
Módulos
●
Módulos (nuevo en versión 7)
●
Son "librerías" compartidas (principio DRY – "Don't
repeat yourself") para "class loading"
●
Compuesto por uno o varios jar
●
Dependencias en cascadas
●
Uso del fichero "Jboss-deployment-structure.xml"
9ª Jornadas de SIG Libre, 201521
Perfiles
9ª Jornadas de SIG Libre, 201522
Perfiles: HA
9ª Jornadas de SIG Libre, 201523
Estructura de directorios
JBOSS_HOME/modules/org/postgresql/mainJBOSS_HOME/modules/org/postgresql/main
JBOSS_HOMEJBOSS_HOME
MódulosMódulos
Perfile
s
Perfile
s
Geoserver en JBoss
9ª Jornadas de SIG Libre, 201525
Desplegar Geoserver
●
No es tan sencillo
●
Descargar el fichero WAR (Web Archive)
●
[Recomendable] Descargar y configurar las Java Advanced
Imaging (JAI) y las Java Image IO (ImageIO)
●
Añadir los paquetes al una ruta accesible por PATH, usualmente en
$JAVA_HOME/jre/lib/ o $JAVA_HOME/jre/ext/libs.
– http://docs.geotools.org/latest/userguide/build/install/jdk.html
●
Crear un módulo para Jboss con los JAR
9ª Jornadas de SIG Libre, 201526
Desplegar Geoserver (II)
●
Modificar el fichero WAR de Geoserver
●
En el fichero "web.xml" añadir la etiqueta
"<distributable/>" -> para el clustering
●
Añadir el fichero "jboss-deployment-structure.xml"
Conceptos de “clustering” en JBoss
9ª Jornadas de SIG Libre, 201528
Domain
●
Standalone
●
Instancia única: No hay compartición de recursos entre
instancias. Si se comunican.
●
Domain
●
Conjunto de instancias de JBoss que comparten
“recursos”
●
En un mismo host puede haber varias instancias
●
Funcionando como Maestro – Esclavo
9ª Jornadas de SIG Libre, 201529
Domain (II)
●
Domain controller: es el maestro del
cluster
●
Host controller: Controlador de un host
(esclavo)
●
Instances: Jboss (como en standalone)
●
Groups: Agrupaciones lógica de
instancias para agrupar por tipo de
instancia (default, full, ha, o full-ha) o
para desplegar en conjunto
9ª Jornadas de SIG Libre, 201530
Host maestro
●
Para configurarlo (siguiendo el esquema anterior):
●
Editar el fichero: "JBOSS-HOME/domain/configuration/domain.xml"
– Los host maestro no suelen tener instancias definidas
– Definir el "server-group" a utilizar:
9ª Jornadas de SIG Libre, 201531
Host maestro (II)
●
Hay que crear un usuario para que los nodos
esclavos lo usen para conectarse:
"JBOSS_HOME/bin/add-user", indicando que este
usuario es de dominio y para conectarse desde
otras instancias
– Hay que apuntar el <secret value=... /> que muestra el
final del script.
●
Arrancamos el host.
9ª Jornadas de SIG Libre, 201532
Host esclavo
●
Se configura mediante el fichero: "JBOSS-
HOME/domain/configuration/host-slave.xml"
●
Definir un hostname del nodo
●
Definir el usuario definido anteriormente y asignar la contraseña cifrada
[...]
9ª Jornadas de SIG Libre, 201533
Host esclavo
●
Arrancar las instancias dentro del host (server-one y
server-two)
●
Arrancar la instancia indicando donde está el maestro:
– domain.sh -b IP_ESCLAVO
-Djboss.domain.master.address=IP_MAESTRO
-Djboss.bind.address.management=IP_ESCLAVO
Complicando las cosas
9ª Jornadas de SIG Libre, 201535
¿Es domain nuestra solución?
9ª Jornadas de SIG Libre, 201536
¿Es domain nuestra solución?
●
El "Domain" es una solución de Jboss para
mejorar el rendimiento y escalabilidad.
●
Requiere más equipos = mas configuración
●
No soluciona el problema crítico de la HA (el
maestro es un punto crítico)
●
Otra solución
– "modcluster" + Apache para balancear carga
9ª Jornadas de SIG Libre, 201537
Activo-Activo
9ª Jornadas de SIG Libre, 201538
Módulo "mod_cluster"
9ª Jornadas de SIG Libre, 201539
Módulo "mod_cluster" (II)
●
Tiene dos partes
●
Una corre en Jboss
●
Otra corre en Apache (hace de proxy, siguiendo las normas de la parte
Jboss)
●
Apache:
●
Instalar módulo usualmente en: " /usr/lib/apache2/modules/"
●
Jboss:
●
En el fichero "standalone-ha.xml" aparecen estas lineas (si se usa otra
añadir):
– <extension module="org.jboss.as.modcluster"/>
– <subsystem xmlns="urn:jboss:domain:modcluster:1.0" />
9ª Jornadas de SIG Libre, 201540
Módulo "mod_cluster" (III)
●
Configurar en apache el módulo:
●
Activar el módulo y acceder a la consola.
9ª Jornadas de SIG Libre, 201541
Métricas de balanceo de carga
●
Se puede definir como se eligen los nodos:
9ª Jornadas de SIG Libre, 201542
Sticky sessions
●
Permite migrar las sesiones entre los nodos que
definen el nodo, mediante almacenar por persistencia.
●
Hay que definir un "Security Domain"
●
En el subsistema "Web":
– <subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-
server="default-host" native="false">
●
Añadir
– <sso cache-container="web"/>
9ª Jornadas de SIG Libre, 201543
Sticky sessions
●
En el fichero "jboss-web.xml" de la aplicación
definir la política a usar
●
Granularidad
Otras arquitecturas
9ª Jornadas de SIG Libre, 201545
One Jboss, many clusters
●
Instancias Jboss con varios cluster definidos
9ª Jornadas de SIG Libre, 201546
Diferentes niveles de HA
9ª Jornadas de SIG Libre, 201547
Todo activo
Nuestra solución
9ª Jornadas de SIG Libre, 201549
Necesidades
●
No todas son nuestras, vienen de proyectos para terceros
●
Necesidad real de HA
●
Usar paradigma Activo-Activo en todos los componentes (HP)
●
Cluster con nodos separados geográficamente
●
Actualizaciones de la base de datos en tiempo real
●
SLA (tiempos de respuesta bajos)
9ª Jornadas de SIG Libre, 201550
Nodo
●
Se define un nodo, parte mínima de un cluster:
●
Apache (sólo dos nodos)
●
Instancia de Jboss en Standalone con HA
●
Geoserver (+ JAI + ImageIO) y plugins.
●
PostgreSQL + PostGIS
●
Un nodo es una unidad funcional, sin relación el resto.
●
Si se quiere cambiar una información, se tiene que cambiar en todos -> Se
puede hacer Activo-Activo.
●
¿Pero porqué no se hace un cluster de PostgreSQL?
●
No hay soluciones maduras Activo-Activo de PostgreSQL, con alto rendimiento
en la actualización de tablas.
9ª Jornadas de SIG Libre, 201551
Problemas a solucionar
●
Manejar las base de datos -> Hibernate (pero no Hibernate Spatial)
●
No permite manejar la base de datos, y hacer carga de datos iniciales.
●
Definir JNDI para usarlos directamente con Geoserver
●
Configuración entre nodos -> Infinispan
●
Base de datos "clave-valor" común a todo el cluster (Jboss nos lo ofrece "gratis").
●
Sincronización de la información de Geoserver -> Librería "Geoserver-manager"
●
Desarrollada por GeoSolutions. Permite usar el interfaz REST de control de Geoserver desde Java y
permite desplegar cartografía
●
Monitorización del estado de los nodos y los componentes -> PandoraFMS
9ª Jornadas de SIG Libre, 201552
Clonación
●
Con esta arquitectura es sencillo clonar
●
Solo hay que cambiar "hostname", y id del cluster
●
Usar backup para dotar de contenido
– Geoserver -> Copiar GEOSERVER_DATA_DIR
– Desplegar otros WAR...
– PostGIS -> pg_dump/pg_restore
●
Si queremos añadir un nodo al cluster, solo hay
que clonar
9ª Jornadas de SIG Libre, 201553
Easy...
9ª Jornadas de SIG Libre, 201554
Arquitectura
mod_clustermod_cluster
Pruebas de rendimiento
9ª Jornadas de SIG Libre, 201556
Escenario de Stress
●
3 Nodos del cluster 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 (Win7) lanzando peticiones
simultáneamente contra el cluster
9ª Jornadas de SIG Libre, 201557
Escenario de Stress
●
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
●
Basadas en las pruebas de stress del FOSS4G
9ª Jornadas de SIG Libre, 201558
Resultados
Servidores de mapas en alta disponibilidad

Más contenido relacionado

La actualidad más candente

MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
Miguel Angel Nieto
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
brobelo
 
Presentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain GroupPresentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain Group
Stackops
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
Gustavo Andres Brey
 

La actualidad más candente (20)

Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresql
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Postgresql expo
Postgresql expoPostgresql expo
Postgresql expo
 
Wikipedia Burgos devfest 2017
Wikipedia Burgos devfest 2017Wikipedia Burgos devfest 2017
Wikipedia Burgos devfest 2017
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Postgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por DentroPostgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por Dentro
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
Presentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain GroupPresentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain Group
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Cloud Computing. Contenedores
Cloud Computing. ContenedoresCloud Computing. Contenedores
Cloud Computing. Contenedores
 
Escenarios de Sistemas Distribuidos con Chamilo LMS
Escenarios de Sistemas Distribuidos con Chamilo LMSEscenarios de Sistemas Distribuidos con Chamilo LMS
Escenarios de Sistemas Distribuidos con Chamilo LMS
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
 

Destacado

b.s.certf-scanned1
b.s.certf-scanned1b.s.certf-scanned1
b.s.certf-scanned1
jeya prabhu
 

Destacado (20)

Maximoda 2
Maximoda 2Maximoda 2
Maximoda 2
 
Fundamentos del computador presentacion
Fundamentos del computador presentacionFundamentos del computador presentacion
Fundamentos del computador presentacion
 
La comunicacion humana
La comunicacion humanaLa comunicacion humana
La comunicacion humana
 
Tipos de virus yeison rojas (2)
Tipos de virus yeison rojas (2)Tipos de virus yeison rojas (2)
Tipos de virus yeison rojas (2)
 
SanAgustinDeHipona
SanAgustinDeHiponaSanAgustinDeHipona
SanAgustinDeHipona
 
Conceptos Básicos
Conceptos BásicosConceptos Básicos
Conceptos Básicos
 
Servicio higiénico en baños
Servicio higiénico en bañosServicio higiénico en baños
Servicio higiénico en baños
 
Roma diapositivas
Roma diapositivasRoma diapositivas
Roma diapositivas
 
Paneles Misiones 2014
Paneles Misiones 2014Paneles Misiones 2014
Paneles Misiones 2014
 
Futbol
FutbolFutbol
Futbol
 
Álbum zoologico Rosy walther
Álbum zoologico Rosy waltherÁlbum zoologico Rosy walther
Álbum zoologico Rosy walther
 
Bogota
BogotaBogota
Bogota
 
b.s.certf-scanned1
b.s.certf-scanned1b.s.certf-scanned1
b.s.certf-scanned1
 
La venida del señor jesús
La venida del señor jesúsLa venida del señor jesús
La venida del señor jesús
 
Intervenção em Infecciologia
Intervenção em InfecciologiaIntervenção em Infecciologia
Intervenção em Infecciologia
 
Transmision de datos
Transmision de datosTransmision de datos
Transmision de datos
 
27
2727
27
 
Casos clínicos cuarta semana
Casos clínicos cuarta semanaCasos clínicos cuarta semana
Casos clínicos cuarta semana
 
Gruia Andrei
Gruia AndreiGruia Andrei
Gruia Andrei
 
Foto Mancuso
Foto MancusoFoto Mancuso
Foto Mancuso
 

Similar a Servidores de mapas en alta disponibilidad

Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
Jazmin Glez.
 

Similar a Servidores de mapas en alta disponibilidad (20)

202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Paralela9
Paralela9Paralela9
Paralela9
 
El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8
 
Paralela10
Paralela10Paralela10
Paralela10
 
Arquitectura de proyectos Drupal
Arquitectura de proyectos DrupalArquitectura de proyectos Drupal
Arquitectura de proyectos Drupal
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Automatización de tareas con Gulp
Automatización de tareas con GulpAutomatización de tareas con Gulp
Automatización de tareas con Gulp
 
Funkschau 2013-español
Funkschau 2013-españolFunkschau 2013-español
Funkschau 2013-español
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
Git Primeros pasos
Git Primeros pasosGit Primeros pasos
Git Primeros pasos
 
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
Experiencia en el desarrollo de GIS opensource (QGIS, GWC, GDAL-OGR)
 
Los mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupalLos mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupal
 
Greach 2011 - Novedades de Grails 2.0
Greach 2011 - Novedades de Grails 2.0Greach 2011 - Novedades de Grails 2.0
Greach 2011 - Novedades de Grails 2.0
 
Panorama del ecosistema de software libre GIS 2009
Panorama del ecosistema de software libre GIS 2009Panorama del ecosistema de software libre GIS 2009
Panorama del ecosistema de software libre GIS 2009
 
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacionalGrails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 

Más de InclamSoft (6)

mgt
mgtmgt
mgt
 
q-hydro
q-hydroq-hydro
q-hydro
 
2010 guad2 d-a-two-dimensional-flow-model-for-floodplain-mapping-over-time-ca...
2010 guad2 d-a-two-dimensional-flow-model-for-floodplain-mapping-over-time-ca...2010 guad2 d-a-two-dimensional-flow-model-for-floodplain-mapping-over-time-ca...
2010 guad2 d-a-two-dimensional-flow-model-for-floodplain-mapping-over-time-ca...
 
Co2Logistic Tool
Co2Logistic ToolCo2Logistic Tool
Co2Logistic Tool
 
Wat erp ogc_recommendationshyfeatures_v0.0
Wat erp ogc_recommendationshyfeatures_v0.0Wat erp ogc_recommendationshyfeatures_v0.0
Wat erp ogc_recommendationshyfeatures_v0.0
 
Wml2 interoperability experiment
Wml2 interoperability experimentWml2 interoperability experiment
Wml2 interoperability experiment
 

Último

ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
macsal12345
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 

Último (20)

semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
 
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
CI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdf
CI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdfCI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdf
CI164 Materiales de Construcción 202401 - Sesión 03 Propiedades No Mecánicas.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
 

Servidores de mapas en alta disponibilidad

  • 1. 29 de septiembre de 2015 Servidor de mapas en HA con Jboss, Geoserver y PostGIS. 9ª Jornadas de SIG Libre, 20159ª Jornadas de SIG Libre, 2015
  • 3. 9ª Jornadas de SIG Libre, 20153 INCLAM: ¿Quienes somos?
  • 4. 9ª Jornadas de SIG Libre, 20154 ¿Y vosotros? ● David Tabernero ● david.tabernero@inclam.com ● Ing. Informático ● Carolina Moya ● carolina.moya@inclam.com ● Ing. Informática
  • 6. 9ª Jornadas de SIG Libre, 20156 La información geográfica ● La información geográfica tiene cada vez más relevancia
  • 7. 9ª Jornadas de SIG Libre, 20157 Problemas... Comenzamos a centralizar todo: Comenzamos a centralizar todo:
  • 8. 9ª Jornadas de SIG Libre, 20158 Hay que buscar una solución... ● Software libre ● Las soluciones son maduras ● Soluciones estables ● Hay soporte, tanto comercial como de la comunidad ● Implementación de estándares (OGC, ISO) ● Aparecen necesidades externas
  • 9. 9ª Jornadas de SIG Libre, 20159 ¿HA y HP? ● High Availability (HA): ● "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." (Wikipedia) ● "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." (blog.akquinet.de) ● High performance (HP) o Scalability ● "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." (blog.akquinet.de)
  • 10. 9ª Jornadas de SIG Libre, 201510 Ejemplos
  • 11. 9ª Jornadas de SIG Libre, 201511 Ejemplos
  • 12. 9ª Jornadas de SIG Libre, 201512 Ejemplos
  • 13. 9ª Jornadas de SIG Libre, 201513 Necesidades ● Alta disponibilidad ● Alto rendimiento ● Maduro ● Sencillo (en configuración, mantenimiento y actualización ● Mantenible ● Y utilizar los menores recursos posibles
  • 14. 9ª Jornadas de SIG Libre, 201514 Soluciones Todas son solucionesTodas son soluciones
  • 16. 9ª Jornadas de SIG Libre, 201516 Geoserver ● Servidor de mapas ● Java ● OGC ● Pluings ● Cache de teselas (GWC) de serie ● Rendimiento aceptable ● ¡Interfaz REST!
  • 17. 9ª Jornadas de SIG Libre, 201517 PostgreSQL + PostGIS ● Servidor de base de datos ● Maduro ● Almacen de datos ● Muy buen rendimiento ● Extensión PostGIS ● Añade extensiones geoespaciales (datos, funciones) a PostgreSQL ● pgRaster
  • 18. 9ª Jornadas de SIG Libre, 201518 Jboss/Wildfly ● Servidor de aplicaciones J2EE Open Source ● Multiplataforma ● ¿Pero porqué no Tomcat? ● Soporte para la HA de "serie" ● Línea de comandos potente ● Permite una gran personalización de funcionalidad, gracias a su sistema modular ● Incorpora herramientas para testing (Arquillian)
  • 20. 9ª Jornadas de SIG Libre, 201520 Módulos ● Módulos (nuevo en versión 7) ● Son "librerías" compartidas (principio DRY – "Don't repeat yourself") para "class loading" ● Compuesto por uno o varios jar ● Dependencias en cascadas ● Uso del fichero "Jboss-deployment-structure.xml"
  • 21. 9ª Jornadas de SIG Libre, 201521 Perfiles
  • 22. 9ª Jornadas de SIG Libre, 201522 Perfiles: HA
  • 23. 9ª Jornadas de SIG Libre, 201523 Estructura de directorios JBOSS_HOME/modules/org/postgresql/mainJBOSS_HOME/modules/org/postgresql/main JBOSS_HOMEJBOSS_HOME MódulosMódulos Perfile s Perfile s
  • 25. 9ª Jornadas de SIG Libre, 201525 Desplegar Geoserver ● No es tan sencillo ● Descargar el fichero WAR (Web Archive) ● [Recomendable] Descargar y configurar las Java Advanced Imaging (JAI) y las Java Image IO (ImageIO) ● Añadir los paquetes al una ruta accesible por PATH, usualmente en $JAVA_HOME/jre/lib/ o $JAVA_HOME/jre/ext/libs. – http://docs.geotools.org/latest/userguide/build/install/jdk.html ● Crear un módulo para Jboss con los JAR
  • 26. 9ª Jornadas de SIG Libre, 201526 Desplegar Geoserver (II) ● Modificar el fichero WAR de Geoserver ● En el fichero "web.xml" añadir la etiqueta "<distributable/>" -> para el clustering ● Añadir el fichero "jboss-deployment-structure.xml"
  • 28. 9ª Jornadas de SIG Libre, 201528 Domain ● Standalone ● Instancia única: No hay compartición de recursos entre instancias. Si se comunican. ● Domain ● Conjunto de instancias de JBoss que comparten “recursos” ● En un mismo host puede haber varias instancias ● Funcionando como Maestro – Esclavo
  • 29. 9ª Jornadas de SIG Libre, 201529 Domain (II) ● Domain controller: es el maestro del cluster ● Host controller: Controlador de un host (esclavo) ● Instances: Jboss (como en standalone) ● Groups: Agrupaciones lógica de instancias para agrupar por tipo de instancia (default, full, ha, o full-ha) o para desplegar en conjunto
  • 30. 9ª Jornadas de SIG Libre, 201530 Host maestro ● Para configurarlo (siguiendo el esquema anterior): ● Editar el fichero: "JBOSS-HOME/domain/configuration/domain.xml" – Los host maestro no suelen tener instancias definidas – Definir el "server-group" a utilizar:
  • 31. 9ª Jornadas de SIG Libre, 201531 Host maestro (II) ● Hay que crear un usuario para que los nodos esclavos lo usen para conectarse: "JBOSS_HOME/bin/add-user", indicando que este usuario es de dominio y para conectarse desde otras instancias – Hay que apuntar el <secret value=... /> que muestra el final del script. ● Arrancamos el host.
  • 32. 9ª Jornadas de SIG Libre, 201532 Host esclavo ● Se configura mediante el fichero: "JBOSS- HOME/domain/configuration/host-slave.xml" ● Definir un hostname del nodo ● Definir el usuario definido anteriormente y asignar la contraseña cifrada [...]
  • 33. 9ª Jornadas de SIG Libre, 201533 Host esclavo ● Arrancar las instancias dentro del host (server-one y server-two) ● Arrancar la instancia indicando donde está el maestro: – domain.sh -b IP_ESCLAVO -Djboss.domain.master.address=IP_MAESTRO -Djboss.bind.address.management=IP_ESCLAVO
  • 35. 9ª Jornadas de SIG Libre, 201535 ¿Es domain nuestra solución?
  • 36. 9ª Jornadas de SIG Libre, 201536 ¿Es domain nuestra solución? ● El "Domain" es una solución de Jboss para mejorar el rendimiento y escalabilidad. ● Requiere más equipos = mas configuración ● No soluciona el problema crítico de la HA (el maestro es un punto crítico) ● Otra solución – "modcluster" + Apache para balancear carga
  • 37. 9ª Jornadas de SIG Libre, 201537 Activo-Activo
  • 38. 9ª Jornadas de SIG Libre, 201538 Módulo "mod_cluster"
  • 39. 9ª Jornadas de SIG Libre, 201539 Módulo "mod_cluster" (II) ● Tiene dos partes ● Una corre en Jboss ● Otra corre en Apache (hace de proxy, siguiendo las normas de la parte Jboss) ● Apache: ● Instalar módulo usualmente en: " /usr/lib/apache2/modules/" ● Jboss: ● En el fichero "standalone-ha.xml" aparecen estas lineas (si se usa otra añadir): – <extension module="org.jboss.as.modcluster"/> – <subsystem xmlns="urn:jboss:domain:modcluster:1.0" />
  • 40. 9ª Jornadas de SIG Libre, 201540 Módulo "mod_cluster" (III) ● Configurar en apache el módulo: ● Activar el módulo y acceder a la consola.
  • 41. 9ª Jornadas de SIG Libre, 201541 Métricas de balanceo de carga ● Se puede definir como se eligen los nodos:
  • 42. 9ª Jornadas de SIG Libre, 201542 Sticky sessions ● Permite migrar las sesiones entre los nodos que definen el nodo, mediante almacenar por persistencia. ● Hay que definir un "Security Domain" ● En el subsistema "Web": – <subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual- server="default-host" native="false"> ● Añadir – <sso cache-container="web"/>
  • 43. 9ª Jornadas de SIG Libre, 201543 Sticky sessions ● En el fichero "jboss-web.xml" de la aplicación definir la política a usar ● Granularidad
  • 45. 9ª Jornadas de SIG Libre, 201545 One Jboss, many clusters ● Instancias Jboss con varios cluster definidos
  • 46. 9ª Jornadas de SIG Libre, 201546 Diferentes niveles de HA
  • 47. 9ª Jornadas de SIG Libre, 201547 Todo activo
  • 49. 9ª Jornadas de SIG Libre, 201549 Necesidades ● No todas son nuestras, vienen de proyectos para terceros ● Necesidad real de HA ● Usar paradigma Activo-Activo en todos los componentes (HP) ● Cluster con nodos separados geográficamente ● Actualizaciones de la base de datos en tiempo real ● SLA (tiempos de respuesta bajos)
  • 50. 9ª Jornadas de SIG Libre, 201550 Nodo ● Se define un nodo, parte mínima de un cluster: ● Apache (sólo dos nodos) ● Instancia de Jboss en Standalone con HA ● Geoserver (+ JAI + ImageIO) y plugins. ● PostgreSQL + PostGIS ● Un nodo es una unidad funcional, sin relación el resto. ● Si se quiere cambiar una información, se tiene que cambiar en todos -> Se puede hacer Activo-Activo. ● ¿Pero porqué no se hace un cluster de PostgreSQL? ● No hay soluciones maduras Activo-Activo de PostgreSQL, con alto rendimiento en la actualización de tablas.
  • 51. 9ª Jornadas de SIG Libre, 201551 Problemas a solucionar ● Manejar las base de datos -> Hibernate (pero no Hibernate Spatial) ● No permite manejar la base de datos, y hacer carga de datos iniciales. ● Definir JNDI para usarlos directamente con Geoserver ● Configuración entre nodos -> Infinispan ● Base de datos "clave-valor" común a todo el cluster (Jboss nos lo ofrece "gratis"). ● Sincronización de la información de Geoserver -> Librería "Geoserver-manager" ● Desarrollada por GeoSolutions. Permite usar el interfaz REST de control de Geoserver desde Java y permite desplegar cartografía ● Monitorización del estado de los nodos y los componentes -> PandoraFMS
  • 52. 9ª Jornadas de SIG Libre, 201552 Clonación ● Con esta arquitectura es sencillo clonar ● Solo hay que cambiar "hostname", y id del cluster ● Usar backup para dotar de contenido – Geoserver -> Copiar GEOSERVER_DATA_DIR – Desplegar otros WAR... – PostGIS -> pg_dump/pg_restore ● Si queremos añadir un nodo al cluster, solo hay que clonar
  • 53. 9ª Jornadas de SIG Libre, 201553 Easy...
  • 54. 9ª Jornadas de SIG Libre, 201554 Arquitectura mod_clustermod_cluster
  • 56. 9ª Jornadas de SIG Libre, 201556 Escenario de Stress ● 3 Nodos del cluster 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 (Win7) lanzando peticiones simultáneamente contra el cluster
  • 57. 9ª Jornadas de SIG Libre, 201557 Escenario de Stress ● 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 ● Basadas en las pruebas de stress del FOSS4G
  • 58. 9ª Jornadas de SIG Libre, 201558 Resultados