SlideShare une entreprise Scribd logo
1  sur  56
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, remote-
    control, ...)
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

Contenu connexe

Tendances

Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomlaRoberto Segura
 
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 drupalSiteGround España
 
Uso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaUso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaRoberto Segura
 
Timerepublik
TimerepublikTimerepublik
Timerepublikbetabeers
 
Automatizacion de proyectos con gradle
Automatizacion de proyectos con gradleAutomatizacion de proyectos con gradle
Automatizacion de proyectos con gradleEdson Chávez Montaño
 
WebRTC y Kurento en el T3cgFest 2015
WebRTC y Kurento en el T3cgFest 2015WebRTC y Kurento en el T3cgFest 2015
WebRTC y Kurento en el T3cgFest 2015Micael Gallego
 
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016Pablo Arias
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonCarlos Azaustre
 

Tendances (16)

Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
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
 
Introducción a Java FX
Introducción a Java FXIntroducción a Java FX
Introducción a Java FX
 
Uso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomlaUso de tecnologías modernas en joomla
Uso de tecnologías modernas en joomla
 
Timerepublik
TimerepublikTimerepublik
Timerepublik
 
Automatizacion de proyectos con gradle
Automatizacion de proyectos con gradleAutomatizacion de proyectos con gradle
Automatizacion de proyectos con gradle
 
Gradle vs Maven
Gradle vs MavenGradle vs Maven
Gradle vs Maven
 
WebRTC y Kurento en el T3cgFest 2015
WebRTC y Kurento en el T3cgFest 2015WebRTC y Kurento en el T3cgFest 2015
WebRTC y Kurento en el T3cgFest 2015
 
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
Joomla como plataforma de eCommerce - Joomla Day La Rioja 2016
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un Hackathon
 
Andrés lopera rico
Andrés lopera ricoAndrés lopera rico
Andrés lopera rico
 
X pages
X pagesX pages
X pages
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Stack mean
Stack meanStack mean
Stack mean
 
Swing
SwingSwing
Swing
 

En vedette

Action Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate GiftsAction Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate GiftsTom Thornton
 
Services Provided by PMI & Pune Chapter
Services Provided by PMI & Pune ChapterServices Provided by PMI & Pune Chapter
Services Provided by PMI & Pune ChapterRahul Sudame
 
Improving the Unifier User Experience
Improving the Unifier User ExperienceImproving the Unifier User Experience
Improving the Unifier User Experiencep6academy
 
Lugares e identidades locales
Lugares e identidades localesLugares e identidades locales
Lugares e identidades localesGise Garcia
 
Geoconsult presentation
Geoconsult presentationGeoconsult presentation
Geoconsult presentationInc Group
 
2024-AEP_Linecard_85x11-web-ready
2024-AEP_Linecard_85x11-web-ready2024-AEP_Linecard_85x11-web-ready
2024-AEP_Linecard_85x11-web-readyChantal Sylvestre
 
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...Niels Pflaeging
 
Rocker camber
Rocker camberRocker camber
Rocker camberchope1969
 
Juan manuel 2 trabajo en equipo
Juan manuel 2 trabajo en equipoJuan manuel 2 trabajo en equipo
Juan manuel 2 trabajo en equipoDamaraGlez
 
GreenIT BB Award 2012 - BB Think Tank - Summit
GreenIT BB Award 2012 - BB Think Tank - SummitGreenIT BB Award 2012 - BB Think Tank - Summit
GreenIT BB Award 2012 - BB Think Tank - SummitNetzwerk GreenIT-BB
 
Catalogo Larome perfumes - maisperfumes.com
Catalogo Larome perfumes - maisperfumes.comCatalogo Larome perfumes - maisperfumes.com
Catalogo Larome perfumes - maisperfumes.comMais Perfumes
 
Politiedatamining met datadetective
Politiedatamining met datadetectivePolitiedatamining met datadetective
Politiedatamining met datadetectiveFrank Smilda
 
Grecia green technology park
Grecia green technology parkGrecia green technology park
Grecia green technology parkgreciadigital
 

En vedette (20)

Action Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate GiftsAction Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate Gifts
 
Revelate
RevelateRevelate
Revelate
 
Services Provided by PMI & Pune Chapter
Services Provided by PMI & Pune ChapterServices Provided by PMI & Pune Chapter
Services Provided by PMI & Pune Chapter
 
Improving the Unifier User Experience
Improving the Unifier User ExperienceImproving the Unifier User Experience
Improving the Unifier User Experience
 
Lugares e identidades locales
Lugares e identidades localesLugares e identidades locales
Lugares e identidades locales
 
Geoconsult presentation
Geoconsult presentationGeoconsult presentation
Geoconsult presentation
 
2024-AEP_Linecard_85x11-web-ready
2024-AEP_Linecard_85x11-web-ready2024-AEP_Linecard_85x11-web-ready
2024-AEP_Linecard_85x11-web-ready
 
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
 
Empleoandarax3.0
Empleoandarax3.0Empleoandarax3.0
Empleoandarax3.0
 
Rocker camber
Rocker camberRocker camber
Rocker camber
 
Periodico oficial
Periodico oficialPeriodico oficial
Periodico oficial
 
Juan manuel 2 trabajo en equipo
Juan manuel 2 trabajo en equipoJuan manuel 2 trabajo en equipo
Juan manuel 2 trabajo en equipo
 
Event Aarhus 6.5.15 Knud Schulz
Event Aarhus 6.5.15 Knud SchulzEvent Aarhus 6.5.15 Knud Schulz
Event Aarhus 6.5.15 Knud Schulz
 
GreenIT BB Award 2012 - BB Think Tank - Summit
GreenIT BB Award 2012 - BB Think Tank - SummitGreenIT BB Award 2012 - BB Think Tank - Summit
GreenIT BB Award 2012 - BB Think Tank - Summit
 
Photomaths2
Photomaths2Photomaths2
Photomaths2
 
Exodo
ExodoExodo
Exodo
 
Catalogo Larome perfumes - maisperfumes.com
Catalogo Larome perfumes - maisperfumes.comCatalogo Larome perfumes - maisperfumes.com
Catalogo Larome perfumes - maisperfumes.com
 
Politiedatamining met datadetective
Politiedatamining met datadetectivePolitiedatamining met datadetective
Politiedatamining met datadetective
 
Listado de hipermercados en rusia
Listado de hipermercados en rusiaListado de hipermercados en rusia
Listado de hipermercados en rusia
 
Grecia green technology park
Grecia green technology parkGrecia green technology park
Grecia green technology park
 

Similaire à Grails y EC2 - De cero a multinacional

Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Carlos Camacho
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaDomingo Suarez Torres
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsDomingo Suarez Torres
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true historyidealistacreamcode
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
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
 
Grails and Continuous delivery
Grails and Continuous deliveryGrails and Continuous delivery
Grails and Continuous deliveryInfo ArtdeCode
 
Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1AndresGuerreroG
 
Desarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesDesarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesGlobant
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .NetGlobant
 
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 disponibilidadIván Campaña Naranjo
 

Similaire à Grails y EC2 - De cero a multinacional (20)

Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con Grails
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true history
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
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
 
Grails and Continuous delivery
Grails and Continuous deliveryGrails and Continuous delivery
Grails and Continuous delivery
 
Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Desarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesDesarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalables
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net
 
avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)
 
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
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 

Plus de Gailen Tecnologías

Agile for Scrummies - BilboStack
Agile for Scrummies - BilboStackAgile for Scrummies - BilboStack
Agile for Scrummies - BilboStackGailen Tecnologías
 
El síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos I
El síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos IEl síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos I
El síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos IGailen Tecnologías
 
Cuando éramos tres esto lo hacíamos en una semana...
Cuando éramos tres esto lo hacíamos en una semana...Cuando éramos tres esto lo hacíamos en una semana...
Cuando éramos tres esto lo hacíamos en una semana...Gailen Tecnologías
 
¿Cuándo dejamos de ser personas para convertirnos en organizaciones?
¿Cuándo dejamos de ser personas para convertirnos en organizaciones?¿Cuándo dejamos de ser personas para convertirnos en organizaciones?
¿Cuándo dejamos de ser personas para convertirnos en organizaciones?Gailen Tecnologías
 
Economías de escala en Agile. Respondiendo a la pregunta incorrecta
Economías de escala en Agile. Respondiendo a la pregunta incorrectaEconomías de escala en Agile. Respondiendo a la pregunta incorrecta
Economías de escala en Agile. Respondiendo a la pregunta incorrectaGailen Tecnologías
 
From Big GORM-centered into a cloud of fast redis nodes
From Big GORM-centered into a cloud of fast redis nodesFrom Big GORM-centered into a cloud of fast redis nodes
From Big GORM-centered into a cloud of fast redis nodesGailen Tecnologías
 
Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches
Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches
Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches Gailen Tecnologías
 
Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2
Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2 Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2
Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2 Gailen Tecnologías
 
Groovy: Un nombre tonto para una palanca de productividad sobre Java
Groovy: Un nombre tonto para una palanca de productividad sobre JavaGroovy: Un nombre tonto para una palanca de productividad sobre Java
Groovy: Un nombre tonto para una palanca de productividad sobre JavaGailen Tecnologías
 
Deconstructing grails-i18n-fields plugin
Deconstructing grails-i18n-fields pluginDeconstructing grails-i18n-fields plugin
Deconstructing grails-i18n-fields pluginGailen Tecnologías
 
La alternativa ágil - Uniencounter
La alternativa ágil - UniencounterLa alternativa ágil - Uniencounter
La alternativa ágil - UniencounterGailen Tecnologías
 
Priorización del Valor del Negocio - Euskadi Invest
Priorización del Valor del Negocio - Euskadi InvestPriorización del Valor del Negocio - Euskadi Invest
Priorización del Valor del Negocio - Euskadi InvestGailen Tecnologías
 

Plus de Gailen Tecnologías (16)

Agile for Scrummies - BilboStack
Agile for Scrummies - BilboStackAgile for Scrummies - BilboStack
Agile for Scrummies - BilboStack
 
El síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos I
El síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos IEl síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos I
El síndrome de Niggle, la orientación a objetos, y la Familia de Juan Carlos I
 
Cuando éramos tres esto lo hacíamos en una semana...
Cuando éramos tres esto lo hacíamos en una semana...Cuando éramos tres esto lo hacíamos en una semana...
Cuando éramos tres esto lo hacíamos en una semana...
 
¿Cuándo dejamos de ser personas para convertirnos en organizaciones?
¿Cuándo dejamos de ser personas para convertirnos en organizaciones?¿Cuándo dejamos de ser personas para convertirnos en organizaciones?
¿Cuándo dejamos de ser personas para convertirnos en organizaciones?
 
Economías de escala en Agile. Respondiendo a la pregunta incorrecta
Economías de escala en Agile. Respondiendo a la pregunta incorrectaEconomías de escala en Agile. Respondiendo a la pregunta incorrecta
Economías de escala en Agile. Respondiendo a la pregunta incorrecta
 
Presentacion cas2013
Presentacion cas2013Presentacion cas2013
Presentacion cas2013
 
From Big GORM-centered into a cloud of fast redis nodes
From Big GORM-centered into a cloud of fast redis nodesFrom Big GORM-centered into a cloud of fast redis nodes
From Big GORM-centered into a cloud of fast redis nodes
 
Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches
Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches
Sesgo de confirmación, elección de bando, y el síndrome del Comprador de Coches
 
Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2
Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2 Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2
Bielsa, Guardiola, los principios ágiles, y el Scrum 4-4-2
 
Groovy: Un nombre tonto para una palanca de productividad sobre Java
Groovy: Un nombre tonto para una palanca de productividad sobre JavaGroovy: Un nombre tonto para una palanca de productividad sobre Java
Groovy: Un nombre tonto para una palanca de productividad sobre Java
 
Deconstructing grails-i18n-fields plugin
Deconstructing grails-i18n-fields pluginDeconstructing grails-i18n-fields plugin
Deconstructing grails-i18n-fields plugin
 
La alternativa ágil - Uniencounter
La alternativa ágil - UniencounterLa alternativa ágil - Uniencounter
La alternativa ágil - Uniencounter
 
Gailen - En 3 minutos
Gailen - En 3 minutosGailen - En 3 minutos
Gailen - En 3 minutos
 
¿Agile y distribuido?
¿Agile y distribuido?¿Agile y distribuido?
¿Agile y distribuido?
 
Transición a proyectos ágiles
Transición a proyectos ágilesTransición a proyectos ágiles
Transición a proyectos ágiles
 
Priorización del Valor del Negocio - Euskadi Invest
Priorización del Valor del Negocio - Euskadi InvestPriorización del Valor del Negocio - Euskadi Invest
Priorización del Valor del Negocio - Euskadi Invest
 

Dernier

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
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
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
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
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
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
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
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
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
 

Dernier (20)

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
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
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.
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
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
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
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
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
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
 

Grails y EC2 - De cero a multinacional

  • 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, remote- control, ...)
  • 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