cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp
TRANSCRIPT
![Page 1: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/1.jpg)
Desarrollo de aplicaciones en la nube con Scrum y XP
Leo Antoli - Iván Zaera
![Page 2: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/2.jpg)
Agenda
Introducción a la charlaIntroducción a cloud computingTemas de metodologias ágiles sobre cloud computingTemas complementarios / QA
![Page 3: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/3.jpg)
Introducción - Cloud computing
![Page 4: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/4.jpg)
Introducción - Capas
SaaSPaaSIaaS
FacturónGoogle Docs
Google App EngineMicrosoft Azure
Amazon EC2
![Page 5: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/5.jpg)
Introducción - Precio
![Page 6: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/6.jpg)
Introducción - Mantenimiento
![Page 7: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/7.jpg)
Metodología - Introducción
Desarrollo en nubes IaaSComo un hosting avanzado Desarrollo tradicional
Desarrollo en nubes PaaSAlta escalabilidad y distribuciónHosting escalable como commodity
Google App Engine: a favor y en contra
"Cambios" en Scrum
![Page 8: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/8.jpg)
Metodología - Limitaciones
Peticiones limitadas a 30 segundos de tiempo realSe solucionan con cron y cola de tareas
Alta distribución en la ejecución de peticionesPeticiones de la misma sesión pueden ser ejecutadas en distintas máquinas
La sesión tiene que ser serializable y no puede ser stickySe persiste en la cache de GAE
White list del API de Java
La base de datos es no-SQL (DataStore)
![Page 9: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/9.jpg)
Metodología - Rendimiento
Cola de tareas: API experimentalSe crean tareas desde las peticiones de clientesSe implementan como cualquier otra petición HTTPTodavía limitado a 30 segundos, pero lo van a cambiar
Servicio memcache
Cacheo agresivo de datos distribuidoCon timeouts y control de recursosImplementa el API JSR 107 pero también hay otro de bajo nivelControl concurrente similar a ConcurrentHashMap
![Page 10: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/10.jpg)
Metodología - SQL vs No-SQL
Dense scan indexRange scanEntity groups & ancestorsMerge joins!=, IN, AND, 3 reglas, MVPjoins, OR unset, nonindexed properties GAE Business
Ryan Barrett - Google I/O 2008
![Page 11: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/11.jpg)
Metodología - Manejo de la sesión
Tiene que ser serializable y no hay sticky sessionSe esta evaluando la posibilidad de sticky
Cuanto menos estado tengamos en sesión mejor
Dificultad en desplegar frameworks centricos en servidorJSF, Vaadin, ZK, ...Mejor usar Struts, WS, REST o servlets RPC
Mejor usar frameworks centricos en cliente
GWT, jQuery
![Page 12: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/12.jpg)
Metodología - Pruebas en servidor
http://code.google.com/p/kotori/wiki/KotoriWebJUnitRunner
Mike Cohn
![Page 13: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/13.jpg)
Ejecución complicada por depender del navegadorSoporte JUnit para GWT: pero lento, muy lentoSe propone usar el patron MVP
P
Metodología - Pruebas en cliente
M V1
C V2SERVIDOR
CLIENTE
TESTABLE NO TESTABLE
![Page 14: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/14.jpg)
Metodología - TDD / ATDD
http://wellington.pm.org/archive/200606/tdd/slide10.html
![Page 15: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/15.jpg)
Metodología - Seguridad
Google -Bélgica
![Page 16: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/16.jpg)
Metodología - Autenticación y autorización
![Page 17: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/17.jpg)
Metodología - Versionado
GAE permite tener accesibles varias versiones de la misma aplicación
Existe una privilegiada: la versión por defectoSe puede usar como entornos: dev, pre, pro, ...Se puede usar como entornos de clienteSe 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
![Page 18: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/18.jpg)
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.
![Page 19: Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp](https://reader034.vdocuments.net/reader034/viewer/2022052303/556c54b1d8b42acc228b4810/html5/thumbnails/19.jpg)
Temas complementarios