SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
De cero a multinacional
con Grails y EC2
Eloy García-Borreguero – Grupo Evandti
Jorge Uriarte – Gailen Tecnologías
Un vistazo atrás
Pidiendo consejo
de Java a Grails...
de Java a Groovy
Idioms, conceptos, aprendizaje...
Rendimiento, profiling...
Cuidado con el diseño...
¿Por qué Grails?
●

Promesa de productividad

●

Amortización de experiencia Java

●

Integración empresarial

●

Plataforma JVM conocida

●

Plugins
¿Por qué Grails?
●

Promesa de productividad

●

Amortización de experiencia Java

●

Integración empresarial

●

Plataforma JVM conocida

●

Plugins
Riesgos
●

¿Rendimiento? ¿Penalización de groovy y
capas extra?

●

Estabilidad de la base de código (v1.0.x -> )

●

Salud de la comunidad, soporte, plugins...

●

Curva de aprendizaje
Alternativas
●

Java / Spring / ...

●

Rails

●

PHP

●

...
¿Por qué EC2?
●

●
●

●

En uso en sistemas internos, desarrollo,
preproducción desde 2008
Diferir la decisión de “cuántos hierros comprar”
“Autoservicio instantáneo” vs. “problemas de
aprovisionamento”
Control absoluto vs. “Platform as a Service”
¿Por qué EC2?
●

●
●

●

En uso en sistemas internos, desarrollo,
preproducción desde 2008
Diferir la decisión de “cuántos hierros comprar”
“Autoservicio instantáneo” vs. “problemas de
aprovisionamento”
Control absoluto vs. “Platform as a Service”
Riesgos de EC2 en 2009
●

¿Rendimiento y estabilidad?

●

“pequeño cliente en gran proveedor”

●

●

Servicios en evolución (¿load balancer, sticky
sessions, persistencia de instancias, clustering,
...?)
¿Caro? Alquiler vs Compra
Alternativas a EC2 en 2009
●

Hosting “tradicional”

●

PaaS: GAE, ¿Otros?

●

No mucho más...
Decidido: Grails & EC2
Desarrollo inicial
Desarrollando en 2009
●

Se inició el desarrollo con la versión 1.1

●

Productividad aceptable

●

●

Aspectos de inmadurez (recarga en caliente,
soporte de pruebas, bugs con namespaces,...)
Carencia de un blueprint de arquitectura
estándar. Hubo que improvisar.
Desarrollando en 2009
●
●

●

Soporte de IDEs “inmaduro” y “lento”
Herramientas de apoyo no satisfactorias o no
adaptadas del todo (formato, QA, profiling, ...)
Buenas sensaciones de la evolución del
producto, nuevas versiones, bug-fixing y
workarounds
Echábamos de menos...
●

●

Sistema de workflows: Varias opciones,
ninguna madura, ninguna bendecida.
Terminamos por inventar nuestra propia,
pequeña rueda: “grails-fsm-plugin”
Nuestro primer plugin - fsm
La iluminación de los plugins
●

Aspectos,
comportamientos,
extensiones...

●

DSLs específicos...

●

Integración de librerías
Internacionalización - Idiomas
I18n estándar + Spring
●

Vistas

●

Bundle

●

Lógica específica de país/idioma
I18n estándar + Spring
●

Vistas

●

Bundle

●

Lógica específica de país/idioma
...pero echábamos de menos...
●

●

●

Internacionalización del dominio de la
aplicación
Cómo pasar entidades del sistema a multiples
idiomas
¿Modificar todas las capas, desde BD hasta
accesos a atributos en vistas?
Nuestro segundo plugin: i18n-fields
Nuestro segundo plugin: i18n-fields
●

●

●
●

Más complicado si quieres actuar antes de que
GORM/Hibernate hagan su magia
Primer uso serio de las transformaciones AST
de Groovy
Sensación de potencia (y algo de miedo)
Éxito final, transición suave sin cambios en
código cliente
Dudas que todavía teníamos
●

●

●

¿Va a haber problemas con el despliegue en
Amazon EC2?
¿Podemos usar herramientas que nos faciliten
la vida?
¿Soporte a avalanchas de usuarios?
–

Caché de páginas “ad-hoc” vía OSCache (vs . EHCaché
en GORM)
Internacionalización - escalabilidad
Problemas en EC2 en 2009
●

Falta de “sticky sessions” en balancer (ELB)

●

Falta de soporte multicast para clustering

●

Problemas https en ELB

●

Demasiado trabajo “a mano”
Palancas para “pasar nivel”
●

Terracotta

●

Integración de Springcache

●

Cloudfront
Evolución de la arquitectura en EC2
Explotación – Operación
●

WAR único

●

Script centralizado orquestando despliegue
●

●

Cambio de modelo -> Limpieza TERRACOTTA

Breve downtime:
●

Despliegue gradual

●

Mirror del entorno

●

AWS Beanstalk
El futuro
2 años después...
●

El desarrollo es mucho más estable y
productivo

●

El soporte de IDEs ha mejorado mucho

●

Migraciones indoloras desde 1.1 hasta 1.3.x

●

Existe un “core” de plugins estable que mejora
la plataforma
2 años después...
●
●

●
●

Aún es un infierno recargar clases de dominio
Mucha magia sigue siendo secreta y poco
documentada
Insuficientes herramientas de soporte aún
Sorpresas agradables (Spock, remotecontrol, ...)
Ya no sabría vivir sin...
●

Generación de XML es mágica, crítico para
integración con sistemas externos

●

Sintáxis “semi-funcional” muy potente

●

Magia incluída en el lenguaje

●

Inyección e integración de librerías en el
lenguaje vía DSLs
Problemas de diseño
●
●

Peter ya nos lo advirtió...
Tendencia a modelo anémico, con lógica en
torno a clases de “Servicio”
–
–
–
–

Fomentado por que el dominio no recarga en caliente
Inducido por la propia literatura
Problemas en inyección de dependencias al dominio
Es algo que se puede combatir/revertir
¿Rendimiento?
●

Grails/Groovy nunca han sido el problema
●

●

Tuning de BBDD y app sigue siendo la clave

Tuning de JVM y de los GC – Peor que JEE
●

Groovy sí ha sido un problema en esto

●

Las grandes caché en Java son todo un reto
2 años después...
●

Estabilidad incuestionable

●

Rendimiento bueno

●

Evolución continua

●

Servicios que surgieron “por el camino”:
●

LBS (+https, +sticky), RDS, Cloudfront, Email

●

Cloudwatch

●

Beanstalk
¿conclusiones?
http://www.ticketbis.com http://www.gailen.es http://www.eventbis.com
http://www.gailen.es http://www.ticketbis.com http://www.eventbis.com

Más contenido relacionado

Destacado

Estilos y tipos de aprendizaje
Estilos y tipos de aprendizajeEstilos y tipos de aprendizaje
Estilos y tipos de aprendizajerecajom
 
Habilidades digitales para el gestor de una empresa internacional (extracto)
Habilidades digitales para el gestor de una empresa internacional (extracto)Habilidades digitales para el gestor de una empresa internacional (extracto)
Habilidades digitales para el gestor de una empresa internacional (extracto)Chema G.Soto
 
Navieras que comercian con china
Navieras que comercian con chinaNavieras que comercian con china
Navieras que comercian con chinavijajato
 
Presentación bachilleres jga 2012 jt
Presentación bachilleres jga 2012 jtPresentación bachilleres jga 2012 jt
Presentación bachilleres jga 2012 jtcolegiojga
 
8366 mts2 bartolome mitre y mario bravo
8366 mts2   bartolome mitre y mario bravo8366 mts2   bartolome mitre y mario bravo
8366 mts2 bartolome mitre y mario bravoLopecito Pingos Todos
 
presentacion crem'e
presentacion crem'epresentacion crem'e
presentacion crem'emaferMn
 
Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...
Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...
Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...Jaime Alapont
 
Blogger business relax final
Blogger business relax   finalBlogger business relax   final
Blogger business relax finalJulios_julios
 
E-Learning und Fachkulturen (1)
E-Learning und Fachkulturen (1)E-Learning und Fachkulturen (1)
E-Learning und Fachkulturen (1)e-teaching.org
 
35 - muestra prensa escrita española
35 - muestra prensa escrita española35 - muestra prensa escrita española
35 - muestra prensa escrita españolaMiguel Cabral Martín
 
Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...
Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...
Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...Universidad Central de Venezuela
 
retoque fotografico
retoque fotografico retoque fotografico
retoque fotografico PedroHr2
 

Destacado (20)

Estilos y tipos de aprendizaje
Estilos y tipos de aprendizajeEstilos y tipos de aprendizaje
Estilos y tipos de aprendizaje
 
Tesis
TesisTesis
Tesis
 
Habilidades digitales para el gestor de una empresa internacional (extracto)
Habilidades digitales para el gestor de una empresa internacional (extracto)Habilidades digitales para el gestor de una empresa internacional (extracto)
Habilidades digitales para el gestor de una empresa internacional (extracto)
 
Navieras que comercian con china
Navieras que comercian con chinaNavieras que comercian con china
Navieras que comercian con china
 
1.1 explicacion basica oxigeno liquido
1.1 explicacion basica oxigeno liquido1.1 explicacion basica oxigeno liquido
1.1 explicacion basica oxigeno liquido
 
El verbo. numero y persona
El verbo. numero y personaEl verbo. numero y persona
El verbo. numero y persona
 
Presentación bachilleres jga 2012 jt
Presentación bachilleres jga 2012 jtPresentación bachilleres jga 2012 jt
Presentación bachilleres jga 2012 jt
 
8366 mts2 bartolome mitre y mario bravo
8366 mts2   bartolome mitre y mario bravo8366 mts2   bartolome mitre y mario bravo
8366 mts2 bartolome mitre y mario bravo
 
Caracteristicas del agua
Caracteristicas del aguaCaracteristicas del agua
Caracteristicas del agua
 
presentacion crem'e
presentacion crem'epresentacion crem'e
presentacion crem'e
 
El rol del maestro
El rol del maestroEl rol del maestro
El rol del maestro
 
Adjetivos ana belén
Adjetivos ana  belénAdjetivos ana  belén
Adjetivos ana belén
 
Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...
Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...
Taller de redes sociales para pacientes y asociaciones. II Congreso pacientes...
 
Blogger business relax final
Blogger business relax   finalBlogger business relax   final
Blogger business relax final
 
E-Learning und Fachkulturen (1)
E-Learning und Fachkulturen (1)E-Learning und Fachkulturen (1)
E-Learning und Fachkulturen (1)
 
35 - muestra prensa escrita española
35 - muestra prensa escrita española35 - muestra prensa escrita española
35 - muestra prensa escrita española
 
Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...
Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...
Comprendiendo la realidad de las mujeres que acompañan a los privados y priva...
 
retoque fotografico
retoque fotografico retoque fotografico
retoque fotografico
 
Esquemas
EsquemasEsquemas
Esquemas
 
Guia para la forma de consulta de agenda de alumno (2)
Guia para la forma de consulta de agenda de alumno (2)Guia para la forma de consulta de agenda de alumno (2)
Guia para la forma de consulta de agenda de alumno (2)
 

Similar a De cero a multinacional con Grails y EC2

Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Migración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xMigración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xjachavesnaranjo
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Igalia
 
programacion IDE java 2024.pptx
programacion           IDE java 2024.pptxprogramacion           IDE java 2024.pptx
programacion IDE java 2024.pptxVivianaRodrguez58
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
Code blocks & lenguaje c++
Code blocks & lenguaje c++Code blocks & lenguaje c++
Code blocks & lenguaje c++aldaircausado11
 
Presentacion tryton campus party
Presentacion tryton campus partyPresentacion tryton campus party
Presentacion tryton campus partycampus party
 
Visual fox pro
Visual fox proVisual fox pro
Visual fox proSer_2904
 
Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1AndresGuerreroG
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true historyidealistacreamcode
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avilaadezhiz
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning ComponentsDavid Carnicer
 

Similar a De cero a multinacional con Grails y EC2 (20)

Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
Migración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.xMigración Joomla 1.5 a 2.5/3.x
Migración Joomla 1.5 a 2.5/3.x
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
 
programacion IDE java 2024.pptx
programacion           IDE java 2024.pptxprogramacion           IDE java 2024.pptx
programacion IDE java 2024.pptx
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Code blocks & lenguaje c++
Code blocks & lenguaje c++Code blocks & lenguaje c++
Code blocks & lenguaje c++
 
Presentacion tryton campus party
Presentacion tryton campus partyPresentacion tryton campus party
Presentacion tryton campus party
 
Visual fox pro
Visual fox proVisual fox pro
Visual fox pro
 
Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true history
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avila
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning Components
 

Último

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

De cero a multinacional con Grails y EC2

  • 1. De cero a multinacional con Grails y EC2 Eloy García-Borreguero – Grupo Evandti Jorge Uriarte – Gailen Tecnologías
  • 2.
  • 3.
  • 4.
  • 7. de Java a Grails...
  • 8. de Java a Groovy
  • 11. Cuidado con el diseño...
  • 12. ¿Por qué Grails? ● Promesa de productividad ● Amortización de experiencia Java ● Integración empresarial ● Plataforma JVM conocida ● Plugins
  • 13. ¿Por qué Grails? ● Promesa de productividad ● Amortización de experiencia Java ● Integración empresarial ● Plataforma JVM conocida ● Plugins
  • 14. Riesgos ● ¿Rendimiento? ¿Penalización de groovy y capas extra? ● Estabilidad de la base de código (v1.0.x -> ) ● Salud de la comunidad, soporte, plugins... ● Curva de aprendizaje
  • 15. Alternativas ● Java / Spring / ... ● Rails ● PHP ● ...
  • 16. ¿Por qué EC2? ● ● ● ● En uso en sistemas internos, desarrollo, preproducción desde 2008 Diferir la decisión de “cuántos hierros comprar” “Autoservicio instantáneo” vs. “problemas de aprovisionamento” Control absoluto vs. “Platform as a Service”
  • 17. ¿Por qué EC2? ● ● ● ● En uso en sistemas internos, desarrollo, preproducción desde 2008 Diferir la decisión de “cuántos hierros comprar” “Autoservicio instantáneo” vs. “problemas de aprovisionamento” Control absoluto vs. “Platform as a Service”
  • 18. Riesgos de EC2 en 2009 ● ¿Rendimiento y estabilidad? ● “pequeño cliente en gran proveedor” ● ● Servicios en evolución (¿load balancer, sticky sessions, persistencia de instancias, clustering, ...?) ¿Caro? Alquiler vs Compra
  • 19. Alternativas a EC2 en 2009 ● Hosting “tradicional” ● PaaS: GAE, ¿Otros? ● No mucho más...
  • 22. Desarrollando en 2009 ● Se inició el desarrollo con la versión 1.1 ● Productividad aceptable ● ● Aspectos de inmadurez (recarga en caliente, soporte de pruebas, bugs con namespaces,...) Carencia de un blueprint de arquitectura estándar. Hubo que improvisar.
  • 23. Desarrollando en 2009 ● ● ● Soporte de IDEs “inmaduro” y “lento” Herramientas de apoyo no satisfactorias o no adaptadas del todo (formato, QA, profiling, ...) Buenas sensaciones de la evolución del producto, nuevas versiones, bug-fixing y workarounds
  • 24. Echábamos de menos... ● ● Sistema de workflows: Varias opciones, ninguna madura, ninguna bendecida. Terminamos por inventar nuestra propia, pequeña rueda: “grails-fsm-plugin”
  • 26. La iluminación de los plugins ● Aspectos, comportamientos, extensiones... ● DSLs específicos... ● Integración de librerías
  • 28. I18n estándar + Spring ● Vistas ● Bundle ● Lógica específica de país/idioma
  • 29. I18n estándar + Spring ● Vistas ● Bundle ● Lógica específica de país/idioma
  • 30. ...pero echábamos de menos... ● ● ● Internacionalización del dominio de la aplicación Cómo pasar entidades del sistema a multiples idiomas ¿Modificar todas las capas, desde BD hasta accesos a atributos en vistas?
  • 31. Nuestro segundo plugin: i18n-fields
  • 32. Nuestro segundo plugin: i18n-fields ● ● ● ● Más complicado si quieres actuar antes de que GORM/Hibernate hagan su magia Primer uso serio de las transformaciones AST de Groovy Sensación de potencia (y algo de miedo) Éxito final, transición suave sin cambios en código cliente
  • 33. Dudas que todavía teníamos ● ● ● ¿Va a haber problemas con el despliegue en Amazon EC2? ¿Podemos usar herramientas que nos faciliten la vida? ¿Soporte a avalanchas de usuarios? – Caché de páginas “ad-hoc” vía OSCache (vs . EHCaché en GORM)
  • 35. Problemas en EC2 en 2009 ● Falta de “sticky sessions” en balancer (ELB) ● Falta de soporte multicast para clustering ● Problemas https en ELB ● Demasiado trabajo “a mano”
  • 36. Palancas para “pasar nivel” ● Terracotta ● Integración de Springcache ● Cloudfront
  • 37. Evolución de la arquitectura en EC2
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Explotación – Operación ● WAR único ● Script centralizado orquestando despliegue ● ● Cambio de modelo -> Limpieza TERRACOTTA Breve downtime: ● Despliegue gradual ● Mirror del entorno ● AWS Beanstalk
  • 46.
  • 47.
  • 49. 2 años después... ● El desarrollo es mucho más estable y productivo ● El soporte de IDEs ha mejorado mucho ● Migraciones indoloras desde 1.1 hasta 1.3.x ● Existe un “core” de plugins estable que mejora la plataforma
  • 50. 2 años después... ● ● ● ● Aún es un infierno recargar clases de dominio Mucha magia sigue siendo secreta y poco documentada Insuficientes herramientas de soporte aún Sorpresas agradables (Spock, remotecontrol, ...)
  • 51. Ya no sabría vivir sin... ● Generación de XML es mágica, crítico para integración con sistemas externos ● Sintáxis “semi-funcional” muy potente ● Magia incluída en el lenguaje ● Inyección e integración de librerías en el lenguaje vía DSLs
  • 52. Problemas de diseño ● ● Peter ya nos lo advirtió... Tendencia a modelo anémico, con lógica en torno a clases de “Servicio” – – – – Fomentado por que el dominio no recarga en caliente Inducido por la propia literatura Problemas en inyección de dependencias al dominio Es algo que se puede combatir/revertir
  • 53. ¿Rendimiento? ● Grails/Groovy nunca han sido el problema ● ● Tuning de BBDD y app sigue siendo la clave Tuning de JVM y de los GC – Peor que JEE ● Groovy sí ha sido un problema en esto ● Las grandes caché en Java son todo un reto
  • 54. 2 años después... ● Estabilidad incuestionable ● Rendimiento bueno ● Evolución continua ● Servicios que surgieron “por el camino”: ● LBS (+https, +sticky), RDS, Cloudfront, Email ● Cloudwatch ● Beanstalk