Ecuador jug 2017 -incrementando la productividad de proyectos java ee con ci y cd
-
Upload
cesar-hernandez -
Category
Technology
-
view
125 -
download
0
Transcript of Ecuador jug 2017 -incrementando la productividad de proyectos java ee con ci y cd
Incrementando la productividad de proyetos JavaEE con Integración y
Entrega Contínua
César HernándezCesarHernandezGt@CesarHgt
CesarHernandezGt
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
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/community/otn-speaker-bureau
OTN Speaker BureautFactory
http://tfactory.github.io/
Agenda
● Encuesta● Entorno● Perspectivas● Integración Contínua● DevOps● Entrega Contínua
Encuesta
● Repositorio de versionamiento● Pruebas unitarias● Pruebas de carga● Pruebas de regresión● Repositorio de bibliotecas/artefactos● CI Server
Encuesta (cont)
● Periodicidad de releases○ 1 cada trimestre○ 1 al mes○ 1 a la semana○ 1 al dia○ 1 cada hora
Entorno“La especie más fuerte no es la que sobrevive, tampoco la
más inteligente, sino la que se adapta mejor al cambio.”- Charles Darwin -
PERSONAS PROCESOS TECNOLOGÍA PERSONAS
El entorno de un proyecto de software
Manifiesto para el Desarrollo Ágil de Software (2001)
http://www.agilemanifesto.org/iso/es/
Perspectivas“La prueba del líder es la capacidad de reconocer un
problema antes de que se convierta en una emergencia”.–John Maxwell
Ciclo de vida del software
Nueva Característica
o BugCodificación Pruebas Nuevo
Release
Ciclo de vida del software
Nueva Característica
o BugCodificación Configuración
Pruebas Funcionales
Pruebas de carga Despliegue Nuevo
Release
Ciclo de vida del softwareNueva
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
Perspectiva del hardware
RedAlmacenamientoProcesamientoVirtualización
Sistema OperativoJVM
Software
Perspectiva en proyectos Java EE
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 ● ....
Oportunidades
http://blog.import.io/post/simply-outsourcing-observations-from-my-time-in-india
Oportunidades
http://www.thecloudinfographic.com/2012/03/02/saas-paas-and-iaas-what-are-they.html
Integración Contínua1991
● 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
Integración Contínua
http://www.teleread.com/chris-meadows/amazons-kiva-robots-herald-warehouse-automation/
● 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
Costo de detección de errores
Problemas afrontables con CI
En 1 mes, el tiempo muerto por no tener CI
Problemas afrontables con CI
En 1 año...
Optimización de recurso y depuración de tiempos muertos
Problemas afrontables con CI
✓
✓
✓✓✓✓✓✓
✓✓
✓
Optimización de recurso y depuración de tiempos muertos
Problemas afrontables con CI
✓
✓
✓✓✓✓
✓
✓✓✓✓
✓
¿Donde comenzar?
PERSONAS PROCESOS TECNOLOGÍA PERSONAS
Perspectivas de incorporación de cambios
● Costo● Licenciamiento● Soporte● Tiempo● ROI
Tecnológia
ProcesoRECURSOHUMANO
DEVOPS (2008)
http://corpsite-blog.s3.amazonaws.com/blog/wp-content/uploads/2014/10/Screen-Shot-2014-10-21-at-10.35.35-AM-4061918db9a7d7de7a7ccc9587164f58.png
DESARROLLO
● Nuevas características
● Innovación
OPERACIONES
● Disponibilidad● Confiabilidad● Seguridad
DevOps: Mejorar el software manteniendo el sistema estable, rápido y disponible
DEVOPS (2008)
https://en.wikipedia.org/wiki/File:Devops.svg
● Comunicación● Colaboración● Integración● Automatización
Herramientas Op
Entrega Continua2010
● 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
Entrega continua
Entrega continua
● 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
Oportunidades en infraestructura
Oportunidades en infraestructura
● Definir y versionar infraestructura en archivos planos
Herramientas para proyectos JavaEE
Escenario general de CI CD
http://searchdatacenter.techtarget.com/news/4500248868/Enterprise-DevOps-open-source-hits-Targets-bulls-eye
Recursos recomendados
Recursos recomendados
https://youtu.be/K1l8717tN2chttps://youtu.be/McTZtyb9M38
Recursos recomendados
http://ora.cl/hn0
César Hernández
PREGUNTAS?CesarHernandezGt@CesarHgt
CesarHernandezGt