KELA Presentacion Costa Rica 2024 - evento Protégeles
Incrementando la productividad de proyectos JavaEE con Integración y Entrega Contínua
1. Incrementando la productividad de
proyetos JavaEE con Integración y
Entrega Contínua
César Hernández CesarHernandezGt
@CesarHgt
CesarHernandezGt
2. César Hernández
● Ing. MGSI.
● Senior Software Enginner Tomitribe
● Java Champion
● Ducke’s Choice Award
● Oracle Certified Professional
● Blogger de TIC’s independiente
● +8 años Diseño e impl. de Java EE.
● Personal Training y conferencias técnicas.
CesarHernandezGt
@CesarHgt
CesarHernandezGt
3. Java es comunidad
www.guate-jug.net
/Guate.Java.User.Group
Grupo de
Usuarios
Java Guatemala
/ouggt
Grupo de Usuarios
Oracle Guatemala
/nullpointersband
Java
Community
Rock Band
/EventosJEspanol
JEspañol
https://community.oracle.com/com
munity/otn-speaker-bureau
OTN Speaker
BureautFactory
http://tfactory.github.io/
6. Encuesta
● Repositorio de versionamiento
● Pruebas unitarias
● Pruebas de carga
● Pruebas de regresión
● Repositorio de bibliotecas/artefactos
● CI Server
10. Manifiesto para el Desarrollo Ágil de
Software (2001)
http://www.agilemanifesto.org/iso/es/
11. Perspectivas
“La prueba del líder es la capacidad de reconocer un
problema antes de que se convierta en una emergencia”.
–John Maxwell
12. Ciclo de vida del software
Nueva
Característica
o Bug
Codificación Pruebas
Nuevo
Release
13. Ciclo de vida del software
Nueva
Característica
o Bug
Codificación Configuración
Pruebas
Funcionales
Pruebas de
carga
Despliegue
Nuevo
Release
14. Ciclo de vida del software
Nueva
Característica
o Bug
Codificación Integración Configuración
Despliegue
Pruebas
Unitarias
Pruebas
Integración
Pruebas
Regresión
Pruebas
Funcionales
Pruebas de
carga
Nuevo
Release
17. Problemas emergentes
● Poca visibilidad
● Falta de automatización
● Comunicación reactiva
● Versionamiento (SW/HW)
● No hay agilidad en el ciclo de desarrollo
● Necesidad de replicación entre ambientes
● Alto tiempo de release
● ....
21. ● Práctica de desarrollo de software
● Desarrolladores integran código en repositorio varias
veces al día.
● Cada registro de versionamiento es verificado por
una construcción automatizada, permitiendo a los
equipos para detectar los problemas a tiempo.
● Mediante la integración con regularidad, puede
detectar errores de forma rápida, y localizar más
fácilmente.
Integración Contínua
23. ● Mantener un único repositorio de código
● Automatizar el empaquetado
● Hacer el empaquetado self-testing
● Cada commit debe ser empaquetado en una máquina de
integración
● Mantener rápido el proceso de empaquetado
● Probar en un clon del ambiente de producción
● Facilitar a cualquiera tener la última versión del ejecutable
● Todos pueden ver que es lo que pasa
● Automatizar el deployment
La Prácticas de Integración Contínua
35. ● Extensión natural de integración continua
● Enfoque en el que los equipos garantizan que
cada cambio en el sistema es deployable en
producción
● Producir software robusto y de valor en ciclos
cortos
Entrega continua
38. ● Depende de un proceso maduro que
adopte integración contínua
● Confianza en las pruebas automatizadas
● Integridad referencial a nivel de base de
datos
● Infraestructura debe de responder con la
misma agilidad que el software
Retos