Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015

42
Incrementando la productividad y agilidad en proyectos Java Enterprise con Integración y Entrega contínua OTN Tour Guatemala 2015 César Hernández CesarHernandezGt @CesarHgt CesarHernandezGt

Transcript of Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015

Incrementando la productividad y agilidad en proyectos Java Enterprise con Integración y Entrega contínua

OTN Tour Guatemala 2015

César HernándezCesarHernandezGt@CesarHgt

CesarHernandezGt

César Hernández M.● Arquitecto de software● Ingeniero y M.Sc. Gerencia de

Sistemas de Información.● Oracle Certified Professional● Autor artículos en Oracle Technology

Network Latinoamérica.● Revisor técnico para Manning

Publications Co.● Blogger de TIC’s independiente● +7 años Diseño e impl. de Java EE.● Personal Training y conferencias

técnicas.CesarHernandezGt@CesarHgt

CesarHernandezGt

Artículos OTN.

Participación activa en comunidades

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

Agenda

● Encuesta● Entorno● Perspectivas● Integración Contínua● DevOps● Entrega Contínua

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 -

El entorno de un proyecto de software

PERSONAS PROCESOS TECNOLOGÍA PERSONAS

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 software

Nueva Característica

o BugCodificación Integración Configuración

Despliegue Pruebas Unitarias

Pruebas Integración

Pruebas Regresión

Pruebas Funcionales

Pruebas de carga

Nuevo Release

Perspectiva del hardware

Red

Almacenamiento

Procesamiento

Virtualización

Sistema Operativo

JVM

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

● 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

Developer

Developer

Tomcat

Tomcat

SVN

Sonar

Maven

Integración Manual .

✓ Deploy

✓ Comit

✓ Data Source✓ Properties✓ Reinicios✓ Integración✓ Despliegue Tomcat✓ Versionamiento .

wars✓ Despliegue Sonar✓ Respuesta

✓ Solicitud

Optimiación de recurso y depuración de tiempos muertos

Problemas afrontables con CI

Developer

Developer

Tomcat

Tomcat

SVN

Maven Configuración y Admin. Jenkins

✓ Deploy

✓ Comit

✓ Data Source✓ Properties✓ Reinicios✓ Adm. Jenkins

Sonar

Jenkins

✓ Solicitud

✓ Integración✓ Despliegue Tomcat✓ Despliegue Sonar✓ Versionamiento .

wars✓ Respuesta

¿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

● Extensión natural de integración continua● Eenfoque en el que los equipos garantizan que

cada cambio en el sistema es deployable en producción

● Se puede liberar cualquier versión del software con sólo pulsar un botón.

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?

The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.

Escenario general de CI CD

http://searchdatacenter.techtarget.com/news/4500248868/Enterprise-DevOps-open-source-hits-Targets-bulls-eye

Interacción entre CI y CD

http://searchdatacenter.techtarget.com/news/4500248868/Enterprise-DevOps-open-source-hits-Targets-bulls-eye