Administrando Jboss 100302093304 Phpapp01

download Administrando Jboss 100302093304 Phpapp01

If you can't read please download the document

description

hh

Transcript of Administrando Jboss 100302093304 Phpapp01

Administrando Jboss

Javier Turgano Molina

Cursos GULUniversidad Carlos III01 Feb 2010

ndice

Introduccin

Presentando Jboss

Primera toma de contacto

Desplegando aplicaciones

Gestionando nuestro servidor

Ajuste de rendimiento

Clustering

Seguridad

Dudas

Introduccin

Presentando Jboss

Qu es Jboss?

Servidor de aplicaciones JAVA programado en JAVA.

Licencia: GPL/LGPL

Confiable a nivel de empresa

Altamente Modular

Lnea de Comandos + XML

Cumple los estandares

Requisitos

Requisitos Hardware 512 MB RAM 100 MB hard disk space 400 MHz CPU

JDKs soportadas Sun JDK 1.6 OpenJDK 1.6 IBM JDK 1.6

Sistema Operativo

Cualquiera capaz de ejecutar una JDK: Linux y UNIX as cmo Windows.

Caractersticas

Clustering

Failover (including sessions)

Load balancing

Distributed caching (using JBoss Cache, a standalone product)

Distributed deployment (farming)

Deployment API

Management API

Aspect-Oriented Programming (AOP) support

JSP/Servlet 2.1/2.5 (Tomcat)

JavaServer Faces 1.2 (Mojarra)

Enterprise Java Beans versions 3 and 2.1

JNDI (Java Naming and Directory Interface)

Hibernate-integration (for persistence programming; JPA)

Caractersticas

JDBC

JTA (Java Transaction API)

Support for Java EE-Web Services like JAX-WS

SAAJ (SOAP with Attachments API for Java)

JMS (Java Message Service) integration

JavaMail

RMI-IIOP (JacORB, alias Java and CORBA)

JAAS (Java Authentication and Authorization Service)

JCA (Java Connector Architecture)-integration

JACC (Java Authorization Contract for Containers)-integration

Java Management Extensions

Comparativa
servidores de aplicaciones

Es Tomcat un servidor de aplicaciones?

Podemos ver una comparativa de Servidores de Aplicaciones en:

http://en.wikipedia.org/wiki/Comparison_of_application_servers

Versiones de Jboss

Primera toma de contacto

Instalando
la mquina virtual Java

En primer lugar debemos de instalar la mquina virtual JAVA:

Desde la web del proveedor.Usando paquetes de nuestra distribucin.

Instalando Jboss

Descargamos Jboss

Lo descomprimimos:

tar zxvf jboss-xxxx.tar.gz

Lo arrancamos:

cd jboss-xxxx/bin./run.sh

ROCK and ROLL !!!

Accediendo a nuestro jboss

Escuchando en red

Por defecto Jboss slo escucha en localhost, pero podemos modificarlo:

./run.sh -b 0.0.0.0

Estructura de directorios

jboss//bin/client/docs/lib/server

Tipos de configuraciones

Distintos tipos de configuraciones predefinidas:

jboss/server//all/default/minimal/production

Seleccionamos la que queremos arrancar:

./run.sh -c default

Directorios en cada
configuracin

jboss/server/default//conf/data/deploy/lib/log/tmp/work

/jboss/server/all/deploy-hasingleton/farm

Componentes

bsh-deployer.xmlcache-invalidation-service.xmlclient-deployer-service.xmlear-deployer.xmlejb3.deployerejb3-interceptors-aop.xmlejb-deployer.xmlhsqldb-ds.xmlhttp-invoker.sarjboss-aop-jdk50.deployerjboss-bean.deployerjboss-ha-local-jdbc.rarjboss-ha-xa-jdbc.rarjbossjca-service.xmljboss-local-jdbc.rarjboss-web.deployer

jbossws.sarjboss-xa-jdbc.rarjmsjmx-console.warjmx-invoker-service.xmljsr88-service.xmlmail-ra.rarmail-service.xmlmanagementmonitoring-service.xmlproperties-service.xmlquartz-ra.rarschedule-manager-service.xmlscheduler-service.xmlsqlexception-service.xmluuid-key-generator.sar

jboss/server/default/deploy

Desplegando aplicaciones

Tipos de aplicaciones

- myapp.jar- myapp.war- myapp.ear- myapp-ds.xml

Modos de despliegue:

ComprimidoDesplegado

Configuracin de aplicaciones

myapp.war//WEB-INFweb.xmljboss-web.xml

myapp.ear/META-INFapplication.xml

Gestin de clases en Jboss

Por qu tenemos que tener cuidado con la gestin de clases en Jboss?

Cmo se comporta por defecto el cargador de clases?

Podemos modificar ese comportamiento?

Desplegando

Ejemplo: HUDSON - http://hudson-ci.org/

mkdir /opt/hudsonexport HUDSON_HOME=/opt/hudsoncp hudson.war jobss/server/default/deploy

Iniciamos servidor de aplicaciones.

Accediendo

http://localhost:8080/hudson

Accediendo a bases de datos

Depende de cada aplicacin pero es posible que necesitemos aadir uno de estos dos:

Driver JDBC de la BD.

Un data source con la conexin.

Gestionando nuestro servidor

Logs

Dnde estn los logs en jboss?

Configuracin principal de log4j en:

/server/default/conf/jboss-log4j.xml

Reducir el nivel de log

/server/default/conf/jboss-log4j.xml

Logs estilo Apache

jboss/server/all/deploy/jboss-web.deployer/server.xml

Herramientas de administracin

A travs de web:jmx-console

web-console

En el escritorio:jconsole

En lnea de comando:jps + jmap

twiddle

Plataformas de administracin:Jboss-on

RHQ/jopr

jmx-console

web-console

jconsole

jconsole

Para usarlo activamos la depuracin remota en /jboss/bin/run.conf

JAVA_OPTS= $JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

Lnea de comandos

Tambin disponemos de herramientas tiles en lnea de comandos:

- jps- jmap- twiddle

jboss/bin/twiddle.sh -s 127.0.0.1:1099 invoke jboss.system:type=ServerInfo listThreadCpuUtilization

Ajuste de rendimiento

Gestin de memoria

Configurando la memoria

Lmite de memoria con 32 bits: ~ 2Gb

Configuracin en jboss/bin/run.conf

-Xms1000m -Xmx3000m -XX:PermSize=256m -XX:MaxPermSize=384m

Recoleccin de basura

Tipos de recolecciones:GCFull-GC

Poltica por defecto:STOP THE WORLD!!!!

Recoleccin de basura

Depurando el recolector de basura:

-verbose:gc -XX:+PrintGCTimeStamps-XX:+PrintGCDetails

Configuraciones alternativas del Garbace Colector:

Recolector paralelo:+UseParallelGC

Conector nativo

Podemos mejorar el rendimiento como servidor web usando el conector nativo:

http://labs.jboss.com/jbossweb/downloads/jboss-native.html

Evita cuelgues en la versin open source entre Apache y Jboss.

Otros parmetros
a tener en cuenta

Eliminar servicios innecesarios

Reducir nivel de log

Precompilar los JSPs

Delegar el contenido esttico (apache, ngynx)

Desactivar hot-deploy en produccin

Tuning del sistema operativo

Tuning acceso a Bases de Datos

Tuning acceso a la red

Clustering

Balanceo de carga con Apache

Apachemod_jk

Jboss

Jboss

JbossCluster

HTTP

HTTPS

AJP

Configuracin de Apache

Balanceamos a travs del mdulo mod_jk de Apache:

apt-get install libapache2-mod-jk

Worker.properties

/etc/libapache2-mod-jk/workers.properties

workers.tomcat_home=/opt/jbossworkers.java_home=/usr/lib/jvm/java-1.5.0-sunps=/

worker.list=node1,node2,lb

node1.ajp13_worker.port=8009node1.ajp13_worker.host=node1.mydomain.connode1r.ajp13_worker.type=ajp13node1.ajp13_worker.lbfactor=1

node2.ajp13_worker.port=8009node2.ajp13_worker.host=node2.mydomain.connode2r.ajp13_worker.type=ajp13node2.ajp13_worker.lbfactor=1

worker.loadbalancer.type=lbworker.loadbalancer.balance_workers=node1,node2worker.loadbalancer.sticky_session=0

Virtual Host

/etc/apache2/sites-available/site.mydomain.com

JkWorkersFile /etc/libapache2-mod-jk/workers.propertiesJkShmFile /var/log/apache2/jk.shm

ServerName site.mydomain.com

CustomLog /var/log/apache2/site.mydomain.com.access.log combinedErrorLog /var/log/apache2/site.mydomain.com.error.log

DocumentRoot /var/www/

JkMount /app-solo-nodo1 node1JKMount /* lbJKMount /images lb

Jboss Cluster

Nos permite compartir sesiones entre distinos nodos de Jboss.

Utiliza comunicacin multicast basada en JGroups.

Para activarlo debemos arrancar as:

./run.sh -c all -b 192.168.1.1 -g MiCluster -Djgroups.bind_addr=192.168.1.1

Configuracin
de las aplicaciones

Requisito: No tener objetos no serializables en sesin

Activacin: En el web.xml de la aplicacin aadimos la siguiente opcin:

Sticky Sessions

En caso de no poder realizar la comparticin de sesiones an podremos recurrir a las sesiones pegajosas.

En Apache en /etc/libapache2-mod-jk/workers.properties...worker.loadbalancer.sticky_session=1...

Sticky Sessions

En cada uno de los Jboss

En jboss/server/all/deploy/jboss-web.deployer/server.xml

... ...

En /server/all/deploy/jboss-web.deploy/META-INF/jboss-service.xml

true

Seguridad

Correr jboss
cmo usuario no privilegiado

Podemos correr jboss con cualquier usuario del sistema.

Por tanto no lo lanzaremos cmo root.

SSL Crear almacn
de certificados

Creamos un certificado y lo metemos en su almacen:

keytool -genkey -alias tomcat -keyalg RSA

Lo copiamos dentro de la instalacin de jboss:

cp .keystore jboss/server/default/conf/mykeystore

SSL - Configuracin

jboss/server/default/deploy/jboss-web.deployer/server.xml

Accedemos a travs de localhost:8443

Asegurando jmx-console

Descomentamos en jboss/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml

java:/jaas/jmx-console

Descomentamos en jboss/server/default/deploy/jmx-console.war/WEB-INF/web.xml

HtmlAdaptorAn example security config that only allows users with therole JBossAdmin to access the HTML JMX console web application

/*GETPOST

JBossAdmin

Asegurando jmx-console

Descomentamos en jboss/server/default/conf/login-config.xm

props/jmx-console-users.propertiesprops/jmx-console-roles.properties

Creamos el fichero jboss/server/default/conf/props/jmx-console-users.properties

admin=contrasena

Y aadimos el usuario al grupo admin jboss/server/default/conf/props/jmx-console-roles.properties

jmx-admin=JBossAdmin,HttpInvoker

Aseguramos web-console

Usaremos los mismos credenciales que la jmx-console.

jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml

HtmlAdaptorAn example security config that only allows users with therole JBossAdmin to access the HTML JMX console web application

/*GETPOST

JBossAdmin

jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml

java:/jaas/jmx-console

Dudas

www.turegano.net

www.twitter.com/setoide

Licencia Creative Commons Reconocimiento 2.5 de Espaa

Contacto

Ilustraciones

TituloAutorLicencia

Jboss LogoRed hatAll right reserved

The gamev@lentinaAttribution-Noncommercial-No Derivative Works 2.0 Generic

Tux TieadpowersAttribution 2.0 Generic

I wanna hold your handbategaAttribution 2.0 Generic

LegospectiveGuillermoAttribution-No Derivative Works 2.0 Generic

Cats love linuxphotohiroAttribution 2.0 Generic

Day 10/366 my muscle building supplementssize8jeansAttribution-Noncommercial 2.0 Generic

DSC00179blatchAttribution-Share Alike 2.0 Generic

HandcuffedwlodiAttribution-Share Alike 2.0 Generic

Masarwa majonrawlinsonAttribution 2.0 Generic

Administracin de Jboss - Cursos del Gul