SlideShare una empresa de Scribd logo
Desarrollo de aplicaciones en
  la nube con Scrum y XP
      Leo Antoli - Iván Zaera
Agenda
 Introducción a la charla
 Introducción a cloud computing
 Temas de metodologias ágiles sobre cloud computing
 Temas complementarios / QA
Introducción - Cloud computing
Introducción - Capas



 SaaS                  Facturón
                       Google Docs




 PaaS                  Google App Engine
                       Microsoft Azure




  IaaS                 Amazon EC2
Introducción - Precio
Introducción - Mantenimiento
Metodología - Introducción

  Desarrollo en nubes IaaS
    Como un hosting avanzado
    Desarrollo tradicional
  Desarrollo en nubes PaaS
    Alta escalabilidad y distribución
    Hosting escalable como commodity

  Google App Engine: a favor y en contra

  "Cambios" en Scrum
Metodología - Limitaciones

  Peticiones limitadas a 30 segundos de tiempo real
      Se solucionan con cron y cola de tareas
  Alta distribución en la ejecución de peticiones
      Peticiones de la misma sesión pueden ser ejecutadas
      en distintas máquinas

  La sesión tiene que ser serializable y no puede ser sticky
     Se persiste en la cache de GAE
  White list del API de Java

  La base de datos es no-SQL (DataStore)
Metodología - Rendimiento

 Cola de tareas: API experimental
    Se crean tareas desde las peticiones de clientes
    Se implementan como cualquier otra petición HTTP
    Todavía limitado a 30 segundos, pero lo van a cambiar

 Servicio memcache
    Cacheo agresivo de datos distribuido
    Con timeouts y control de recursos
    Implementa el API JSR 107 pero también hay otro de
    bajo nivel
    Control concurrente similar a ConcurrentHashMap
Metodología - SQL vs No-SQL




   Ryan Barrett - Google I/O 2008


                                    Dense scan index
                                    Range scan
                                    Entity groups & ancestors
                                    Merge joins
                                    !=, IN, AND, 3 reglas, MVP
                                    joins, OR
                                    unset, nonindexed properties
                                    GAE Business
Metodología - Manejo de la sesión

  Tiene que ser serializable y no hay sticky session
     Se esta evaluando la posibilidad de sticky
  Cuanto menos estado tengamos en sesión mejor

  Dificultad en desplegar frameworks centricos en servidor
      JSF, Vaadin, ZK, ...
      Mejor usar Struts, WS, REST o servlets RPC

  Mejor usar frameworks centricos en cliente
     GWT, jQuery
Metodología - Pruebas en servidor




  Mike Cohn




                  http://code.google.com/p/kotori/wiki/KotoriWebJUnitRunner
Metodología - Pruebas en cliente

  Ejecución complicada por depender del navegador
  Soporte JUnit para GWT: pero lento, muy lento
  Se propone usar el patron MVP



                     P
     M               C         V            V2
                               1
          SERVIDOR
                              CLIENTE
          TESTABLE              NO TESTABLE
Metodología - TDD / ATDD




            http://wellington.pm.org/archive/200606/tdd/slide10.html
Metodología - Seguridad




       Google -Bélgica
Metodología - Autenticación y autorización
Metodología - Versionado

 GAE permite tener accesibles varias versiones de la misma
 aplicación
     Existe una privilegiada: la versión por defecto
 Se puede usar como entornos: dev, pre, pro, ...
 Se puede usar como entornos de cliente
 Se puede usar como versiones funcionales: 1.0, 2.0, ...

 Permite realizar experimentos de UI

 Hay que tener cuidado con la sesión: se puede serializar en
 una versión anterior y despertar en la nueva
Preguntas habituales

1. ¿Hay que hacer algún cambio fundamental (y cuáles) en Scrum para que
   se adapte bien a proyectos hechos para entornos de cloud computing?
2. ¿Cómo hacer TDD, pruebas automáticas, integración continua y demás
   prácticas de XP en estos entornos? ¿Hay buenas prácticas para estos
   entornos que no sean aplicables a entornos más tradicionales?
3. ¿Cómo afecta al diseño emergente el que se usen bases de datos no
   relacionales?
4. La aplicación se acopla a la plataforma elegida y después es muy difícil
   cambiarlo.
5. No tengo control sobre la infraestructura, rendimiento, etc.
6. Son tecnologías nuevas, mi gente no sabe de ellas, etc.
7. Hay que hacer pruebas de rendimiento, carga, etc., aunque el entorno
   utilizado supuestamente se encargue automáticamente de escalar.
8. Las aplicaciones y datos en la nube no son seguras, no se que pasa con
   ellas.
Temas complementarios

Más contenido relacionado

PPSX
Pangoscrum
PPTX
Microservicios con Spring Boot
PDF
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
ODP
Introducción a la agilidad
PDF
PDF
Pst metodologia xp
PPT
Presentacion de xp scrum UDO MONAGAS AYDSI- I- 2014
PPTX
Tarjetas crc
Pangoscrum
Microservicios con Spring Boot
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Introducción a la agilidad
Pst metodologia xp
Presentacion de xp scrum UDO MONAGAS AYDSI- I- 2014
Tarjetas crc

Destacado (9)

PPT
Presentacion de xp scrum final (1)
DOCX
Monografia metodologia xp
ODP
Scrum paso a paso
PDF
Diferencias entre scrum y xp
PPTX
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
PPT
Introduccion a Scrum con caso práctico
PPTX
Tarjetas CRC
PDF
presentaciones
PDF
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Presentacion de xp scrum final (1)
Monografia metodologia xp
Scrum paso a paso
Diferencias entre scrum y xp
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
Introduccion a Scrum con caso práctico
Tarjetas CRC
presentaciones
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Publicidad

Similar a Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp (20)

PDF
Un poco más allá con grails. PrimerViernes
PDF
200405 - Aplicaciones Web
PDF
Web Service buscador de localizaciones de IP’s
KEY
Grails, opción real y escalable para sitios web de alta carga
PPT
Arquitectura
PPT
Softonic Labs - Web Escalable
PPTX
Conociendo Nuestro Fua interno
PPTX
BarCampCR 2013 - Tecnologías emergentes - Leopoldo Rojas M
PDF
App engine
PDF
Grails y EC2 - De cero a multinacional
PPTX
Desarrollo de Software
PDF
Curso Arquitectura J2 Ee Parte1
PPT
Lo Nuevo En Spring3 0
PDF
Jobsket Spring 2GX Madrid
KEY
SpringIO 2012 Madrid-Escalabilidad con Grails
PDF
Code Blast 2012 - Node.js
PDF
1/9 Curso JEE5, Soa, Web Services, ESB y XML
KEY
Taller Spring3 + BlazeDS 4 + Flex 4
PPTX
Desarrollo de Software 2013
Un poco más allá con grails. PrimerViernes
200405 - Aplicaciones Web
Web Service buscador de localizaciones de IP’s
Grails, opción real y escalable para sitios web de alta carga
Arquitectura
Softonic Labs - Web Escalable
Conociendo Nuestro Fua interno
BarCampCR 2013 - Tecnologías emergentes - Leopoldo Rojas M
App engine
Grails y EC2 - De cero a multinacional
Desarrollo de Software
Curso Arquitectura J2 Ee Parte1
Lo Nuevo En Spring3 0
Jobsket Spring 2GX Madrid
SpringIO 2012 Madrid-Escalabilidad con Grails
Code Blast 2012 - Node.js
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Taller Spring3 + BlazeDS 4 + Flex 4
Desarrollo de Software 2013
Publicidad

Más de Agile Spain (20)

PDF
Lessons learned from contrasting Design Thinking and Agile Project Management...
PDF
Visual Scrum - What you see is What you get
PDF
Un Primer Paso a la Agilidad: Retrospectivas para el Aprendizaje de la Ingeni...
PDF
Análisis de la implementación de prácticas ágiles en Argentina
PDF
Como cocinar tu contrato ágil
PDF
Cas2010 gestion-agil-de-la-configuracion
PDF
Cas2010 itinerario-implementacion-agil
PDF
Cas2010 gestion-agil-de-equipos
PDF
Cas2010 integrando-practicas-agiles-y-de-experiencia-de-usuario
PDF
Cas2010 toolchain-for-agile-teams-traceability-from-product-vision-to-working...
PDF
Cas2010 los-principios-agiles-como-guia-o-por-que-querras-volver-a-modelos-tr...
PDF
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
PDF
Cas2010 is-there-space-for-testers-in-agile-projects
PDF
Cas2010 one-year-of-software-developments-to-win-a-world-racing-championship
PDF
Cas2010 pair-programming-strategies
PDF
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
PDF
Cas2010 herramientas-de-pruebas-unitarias-pex-y-moles
PDF
Ser ágil en España, un caso real con equipos de trabajo en remoto
PDF
Cuore.js: Una historia de amor
PDF
Stop the line & Stop Feature Development practices
Lessons learned from contrasting Design Thinking and Agile Project Management...
Visual Scrum - What you see is What you get
Un Primer Paso a la Agilidad: Retrospectivas para el Aprendizaje de la Ingeni...
Análisis de la implementación de prácticas ágiles en Argentina
Como cocinar tu contrato ágil
Cas2010 gestion-agil-de-la-configuracion
Cas2010 itinerario-implementacion-agil
Cas2010 gestion-agil-de-equipos
Cas2010 integrando-practicas-agiles-y-de-experiencia-de-usuario
Cas2010 toolchain-for-agile-teams-traceability-from-product-vision-to-working...
Cas2010 los-principios-agiles-como-guia-o-por-que-querras-volver-a-modelos-tr...
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
Cas2010 is-there-space-for-testers-in-agile-projects
Cas2010 one-year-of-software-developments-to-win-a-world-racing-championship
Cas2010 pair-programming-strategies
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 herramientas-de-pruebas-unitarias-pex-y-moles
Ser ágil en España, un caso real con equipos de trabajo en remoto
Cuore.js: Una historia de amor
Stop the line & Stop Feature Development practices

Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp

  • 1. Desarrollo de aplicaciones en la nube con Scrum y XP Leo Antoli - Iván Zaera
  • 2. Agenda Introducción a la charla Introducción a cloud computing Temas de metodologias ágiles sobre cloud computing Temas complementarios / QA
  • 4. Introducción - Capas SaaS Facturón Google Docs PaaS Google App Engine Microsoft Azure IaaS Amazon EC2
  • 7. Metodología - Introducción Desarrollo en nubes IaaS Como un hosting avanzado Desarrollo tradicional Desarrollo en nubes PaaS Alta escalabilidad y distribución Hosting escalable como commodity Google App Engine: a favor y en contra "Cambios" en Scrum
  • 8. Metodología - Limitaciones Peticiones limitadas a 30 segundos de tiempo real Se solucionan con cron y cola de tareas Alta distribución en la ejecución de peticiones Peticiones de la misma sesión pueden ser ejecutadas en distintas máquinas La sesión tiene que ser serializable y no puede ser sticky Se persiste en la cache de GAE White list del API de Java La base de datos es no-SQL (DataStore)
  • 9. Metodología - Rendimiento Cola de tareas: API experimental Se crean tareas desde las peticiones de clientes Se implementan como cualquier otra petición HTTP Todavía limitado a 30 segundos, pero lo van a cambiar Servicio memcache Cacheo agresivo de datos distribuido Con timeouts y control de recursos Implementa el API JSR 107 pero también hay otro de bajo nivel Control concurrente similar a ConcurrentHashMap
  • 10. Metodología - SQL vs No-SQL Ryan Barrett - Google I/O 2008 Dense scan index Range scan Entity groups & ancestors Merge joins !=, IN, AND, 3 reglas, MVP joins, OR unset, nonindexed properties GAE Business
  • 11. Metodología - Manejo de la sesión Tiene que ser serializable y no hay sticky session Se esta evaluando la posibilidad de sticky Cuanto menos estado tengamos en sesión mejor Dificultad en desplegar frameworks centricos en servidor JSF, Vaadin, ZK, ... Mejor usar Struts, WS, REST o servlets RPC Mejor usar frameworks centricos en cliente GWT, jQuery
  • 12. Metodología - Pruebas en servidor Mike Cohn http://code.google.com/p/kotori/wiki/KotoriWebJUnitRunner
  • 13. Metodología - Pruebas en cliente Ejecución complicada por depender del navegador Soporte JUnit para GWT: pero lento, muy lento Se propone usar el patron MVP P M C V V2 1 SERVIDOR CLIENTE TESTABLE NO TESTABLE
  • 14. Metodología - TDD / ATDD http://wellington.pm.org/archive/200606/tdd/slide10.html
  • 15. Metodología - Seguridad Google -Bélgica
  • 16. Metodología - Autenticación y autorización
  • 17. Metodología - Versionado GAE permite tener accesibles varias versiones de la misma aplicación Existe una privilegiada: la versión por defecto Se puede usar como entornos: dev, pre, pro, ... Se puede usar como entornos de cliente Se puede usar como versiones funcionales: 1.0, 2.0, ... Permite realizar experimentos de UI Hay que tener cuidado con la sesión: se puede serializar en una versión anterior y despertar en la nueva
  • 18. Preguntas habituales 1. ¿Hay que hacer algún cambio fundamental (y cuáles) en Scrum para que se adapte bien a proyectos hechos para entornos de cloud computing? 2. ¿Cómo hacer TDD, pruebas automáticas, integración continua y demás prácticas de XP en estos entornos? ¿Hay buenas prácticas para estos entornos que no sean aplicables a entornos más tradicionales? 3. ¿Cómo afecta al diseño emergente el que se usen bases de datos no relacionales? 4. La aplicación se acopla a la plataforma elegida y después es muy difícil cambiarlo. 5. No tengo control sobre la infraestructura, rendimiento, etc. 6. Son tecnologías nuevas, mi gente no sabe de ellas, etc. 7. Hay que hacer pruebas de rendimiento, carga, etc., aunque el entorno utilizado supuestamente se encargue automáticamente de escalar. 8. Las aplicaciones y datos en la nube no son seguras, no se que pasa con ellas.