SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

Presentacion de xp scrum final (1)
Presentacion de xp scrum final (1)Presentacion de xp scrum final (1)
Presentacion de xp scrum final (1)marihencely
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3Saul Villarreal
 
Introduccion a Scrum con caso práctico
Introduccion a Scrum  con caso prácticoIntroduccion a Scrum  con caso práctico
Introduccion a Scrum con caso prácticoDaniel Escribano Ales
 
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Sergio Yazyi
 
Cómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShareCómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideSharePedro Bermudez Talavera
 

En vedette (10)

Presentacion de xp scrum final (1)
Presentacion de xp scrum final (1)Presentacion de xp scrum final (1)
Presentacion de xp scrum final (1)
 
Monografia metodologia xp
Monografia   metodologia xpMonografia   metodologia xp
Monografia metodologia xp
 
Scrum paso a paso
Scrum paso a pasoScrum paso a paso
Scrum paso a paso
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
INGENIERIA DE SOFTWARE - METODOLOGIA SCRUM, EJEMPLO PRACTICO, t3
 
Introduccion a Scrum con caso práctico
Introduccion a Scrum  con caso prácticoIntroduccion a Scrum  con caso práctico
Introduccion a Scrum con caso práctico
 
Tarjetas CRC
Tarjetas CRCTarjetas CRC
Tarjetas CRC
 
presentaciones
presentacionespresentaciones
presentaciones
 
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...
 
Cómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShareCómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShare
 

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

Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosSpanishPASSVC
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1AndresGuerreroG
 
Charla Atributos de calidad con .Net
Charla Atributos de calidad con .NetCharla Atributos de calidad con .Net
Charla Atributos de calidad con .NetCarlos Paez
 
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...Edgardo Crovetto
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...Eudris Cabrera
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web ServicesLuis Fernando Aguas Bucheli
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasRodrigo Corral
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sPablo Pellegrinet
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureJose Luis Soria
 
Redhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware PortfolioRedhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware PortfolioAdrian Gigante
 
Atraer, Convertir, Sostener Claves para la rentabilidad de un E-commerce
Atraer, Convertir, Sostener Claves para la rentabilidad de un E-commerceAtraer, Convertir, Sostener Claves para la rentabilidad de un E-commerce
Atraer, Convertir, Sostener Claves para la rentabilidad de un E-commerceNexica
 
Kumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoKumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoDeivinson Tejeda
 

Similaire à Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp (20)

DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizados
 
GENEX
GENEXGENEX
GENEX
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1Curso Arquitectura J2 Ee Parte1
Curso Arquitectura J2 Ee Parte1
 
Charla Atributos de calidad con .Net
Charla Atributos de calidad con .NetCharla Atributos de calidad con .Net
Charla Atributos de calidad con .Net
 
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
 
IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Pangoscrum
PangoscrumPangoscrum
Pangoscrum
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’s
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para Azure
 
Redhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware PortfolioRedhat Open Day - JBoss Middleware Portfolio
Redhat Open Day - JBoss Middleware Portfolio
 
Gwt IV -mvp
Gwt IV -mvpGwt IV -mvp
Gwt IV -mvp
 
Atraer, Convertir, Sostener Claves para la rentabilidad de un E-commerce
Atraer, Convertir, Sostener Claves para la rentabilidad de un E-commerceAtraer, Convertir, Sostener Claves para la rentabilidad de un E-commerce
Atraer, Convertir, Sostener Claves para la rentabilidad de un E-commerce
 
Kumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoKumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y Futuro
 

Plus de Agile Spain

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

Plus de Agile Spain (20)

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