Aprende

Aprende sobre la última tecnología.

Construye

Da rienda suelta a tus conocimientos y construye!

Comparte

Que más gente lo aproveche para mejorar!
 

Instalando e inspeccionando aplicación java en Openshift

viernes, 15 de agosto de 2014

Instalando un .war en openshift :

Suponemos que tienes instaladas las tools (rhc) de no ser así puedes encontrar en la web de openshift todos los detalles de esta instalación .Una vez que tenemos instaladas las tools procedemos a realizar el despliegue de nuestro war.

vias para desplegar el war :

- git
- a traves de las tools de rhc

Nos centramos en la instalación de las tools veo que caso de los despliegues por git de un modo todavía no eficiente y explico :
Dado el caso que tengamos algún proyecto mavenizado y subido al repositorio hemos de eliminar los respectivos POMs y además cambiar la estructura del proyecto dejando solo la carpeta src de nuestro proyecto con una serie de especificaciones más en la que no entraremos en detalles.

A través de las tools de rhc mirar que simple :

- Generamos el .war (dado el caso que lo tengamos en un contenedor web,en nuestro caso Tomcat 7 (JBoss EWS 2.0)) pero podríamos estar hablando de un jboss y de un ear.
- Una vez generado el .war lo renombramos (ROOT.war).Este ROOT.war será el war a agregar en  
   nuestro siguiente paso

- Creamos un comprimido tar.gz  con la siguiente estructura :

build_dependencies/ (directorio vacio)
dependencies/
   jbossews/
       webapps/
           ROOT.war
repo/
   .openshift/
(directorio vacio,de momento y para nuestro intereses)


- Para los que no trabajan con linux en el mundo cloud ,lo de No linux es imposible o mejor aun luego doy una visión al respecto de momento te indico que comando ejecutar para crear nuestro .tar.gz :

En el directorio donde quiero crear el fichero (en nuestro caso justo encima de la carpeta de dependencias ejecuto el comando que sigue) :

tar czf testfile.tar.gz *

ya tengo mi fichero creado ,que quiero comprobar si todo ha salido bien :

tar tf testfile.tar.gz esta opción la he probado con Mac OSX  pero ha de valer para todo.

Toda vez que tenemos ya nuestro comprimido con la estructura y formato solicitando por nuestra plataforma vamos a proceder a subirlo a la nuestra plataforma PaaS :

1 - rhc app configure -a <nombre_de_app_desplegada_en_opneshift> --deployment-type binary
2 - rhc app deploy -a <nombre_de_app_desplegada_en_opneshift> path/de/testfile.tar.gz

Y ya hemos desplegado nuestra aplicación ,ven que fácil ?

Algunas consideraciones ,el hecho de renombrar el .war a ROOT.war hace ,de acuerdo a la plataforma que pase del content roto de la app y para acceder a ella lo hagamos a través del contentroot estándar que nos brinda openchift + urlparam establecido en el .war a la hora de mapear la navegacióndel servle de carga de alta aplicación.


Otro detalle de nuestra aplicación en el momento de definir el sistema de logger de la misma,en nuestro caso usamos log4j y tuvimos algún problema debido a que no encontraba la ruta donde deja los blog .Para todo ello openshift cuenta con variables de entornos que nos dicen :
- ip de nuestro entorno cloud,puertos ,path donde son alojados los logs etc.

Como acceder a toda esta información :

La unica via a través de la cual podemos conectarnos con nuestra plataforma y poder acceder a la máquina donde tenemos todo nuestro entorno virtualizado es vía SSH con lo que les indico varias cosas :

1 - crear clave publica en nuestra máquina sino la tenemos ya.
2 - esta clave publica podemos agregarla a nuestro dominio(No Aplicación ) en openshift.



Luego de pasados los puntos 1 y 2 la vía para conectaron Ssh seria la siguiente :

ssh -t 53c920c9e0b8cd1e12000045@nombre_de_app-nombre_de_dominio.rhcloud.com una vez hecho esto ya estamos en nuestra plataforma.
Detalle importante del que seguramente te habrás dado cuenta,los dígitos alfanuméricos son los del ssh son los que aparecen debajo de Source Code en la imagen anterior.Esta imagen corresponde a la imagen de propiedades de la aplicación en el propio entorno de openshift.
Un detalle ,ya una ves dentro de la máquina de openshift el comando  ls .\env nos brinda todos las variables entorno que contiene nuestro entorno y que necesariamente será de gran utilidad.Ver imagen que sigue .


Creo que por hoy será suficiente nuestra entrega de java sobre openshift ,es probable aunque no seguro que aun nos quede otra entrega lo siguiente a ello ruby o scala sobre openshift ,cassandra ,spark,map reduce ,lucene ,solr y demás.Justo luego que culminemos una última entrega de java.Eso será luego que volvamos de las vacaciones que justo comienzan hoy.Algo pendiente y que seria muy interesante ver seria OPENSTACK de Redhat un producto cuando menos interesante y enfocado a cambiar una tendencia...hasta septiembre ..






Entendiendo Platform as a Service RedHat OpenShift

jueves, 14 de agosto de 2014

Dejamos los protocolos Bittorrent aparcados por un tiempo.tengo pendiente imágenes a subir así que vamos con otro amigo PaaS(Platform as a Service) ,de RedHat. Una plataforma desde mi punto de vista y para lo que conozco del tema que esta muy bien.Tiene como ventajas algunas prestaciones free en las que además no necesitamos introducir tarjeta de crédito como en Amazon si bien es cierto que toda esa libertad de apertura de puertos para recibir peticiones ,hacer bindings con sockets etcétera en redhat aun es impensable incluso en la versión enterprise de Openshift.
No se si están familiarizados con Cloud Computing tanto el termino como lo que ello implica,de momento suponemos que si .De no ser así les adjunto un video que en cierto modo da una idea sobre el término y los distintos módulos que engloba,no es nada complejo el concepto a nivel global ni tampoco su uso.Otra cosa bien distinta es la construcción de los mismos,pero de eso hablaremos en próximas entregas.

Si entras en el link : https://www.openshift.com/ tienes 3 opciones vamos a coger la free ,estamos empezando :) .

Toda vez que creamos una cuenta ya podemos :
1- crear un dominio
2- crear hasta 3 aplicaciones para ese dominio con capacidad para 1Gb en cada una.

Como funciona ?
Cada aplicación que creamos le agregamos los llamados Cartridges que no son más que funcionalidades o servicios que estarán a nuestra disposición .
Por ejemplo tenemos una aplicación web y la necesitamos desplegar en un Tomcat (contenedor web)  o en Jboss pues agregamos un Cartridge que los tenga y ya nos lo deplegara en dicho tomcat,todo ello para entorno Java aunque también encontramos Cartridges  para PHP o para Ruby  lenguaje al que nos iremos inclinando junto con Scala en futuras entradas.Nos iremos desvinculando de JAVA poco a poco ,ninguna queja en particular salvo que se nos ha vuelto aburrido luego de tantos años.