Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Improvement - O como poner los robot...

Continuous Improvement - O como poner los robots de tu lado

Presentación para el meetup.uy sobre Continuos Integration - Jenkins - Chef @inConcert

Sebastián Moreno

November 03, 2012
Tweet

More Decks by Sebastián Moreno

Other Decks in Programming

Transcript

  1. Continuous Improvement o como poner los robots de tu lado

    Federico Silva @fedesilva Sebastián Moreno @kernelp4nic Monday, November 5, 12
  2. Continuous Improvement o como poner los robots de tu lado

    Federico Silva @fedesilva Sebastián Moreno @kernelp4nic Monday, November 5, 12
  3. Que Hacemos? Desarrollamos Tecnología para Centros de Contacto. Actualmente estamos

    en el beta de la versión 6 de nuestro producto. i6 extiende el concepto de contact center a canales más modernos como redes sociales, mensajería instantánea, mail, sms. Monday, November 5, 12
  4. PROBLEMA Está compuesto por 19 servicios que se construyen a

    partir de 99 módulos. Hay código escrito en C++, Lua, Javascript, Python, Ruby, Scala. Monday, November 5, 12
  5. COMPLEJIDAD También usamos varios servicios externos: • Cassandra • Redis

    • MongoDB • Asterisk • MySQL • Loquendo Y unas 30 librerías y paquetes otros externos. Monday, November 5, 12
  6. Ambientes Cada desarrollador se arma su propio ambiente. Instala sus

    herramientas y dependencias Copia otros proyectos internos de los que depende IT WORKS ON MY MACHINE! http://www.buildsonmymachine.com Monday, November 5, 12
  7. De Donde Venimos Version anterior de la plataforma Nunca se

    automatizo el testing 400 clientes con diferentes versiones Hotfixes que aplican a diferentes versiones del software Warmfixes ( not so hot anymore ) 2000+ tests Monday, November 5, 12
  8. La Solución Integración Contínua In software engineering, continuous integration (CI)

    is the practice of merging all developer workspaces with a shared mainline several times a day. Monday, November 5, 12
  9. La Solución Control de Versiones. Git. Visión coherente de todos

    los módulos en un momento del tiempo. Se automatiza el build Monday, November 5, 12
  10. Con ustedes el Sr Jenkins Que es Jenkins? Monitorea procesos

    repetitivos y los ejecuta en respuesta a eventos Servidor de Integración contínua La repetición es para las máquinas Monday, November 5, 12
  11. Sincronización Se acuerdan de la visión coherente? Hay que mantener

    las versiones actualizadas No es un proceso complicado, pero cada vez hay mas módulos La repetición es para las máquinas Monday, November 5, 12
  12. Cada uno con su tema Los tests y el build

    corren juntos Esto demora horas y no hay granularidad Se separan los tests y se paralelizan Se tiene feedback mas rápido y se pueden agregar mas tests Monday, November 5, 12
  13. Homogeneidad Se unifican Se acuerdan de los ambientes de trabajo?

    Una sola plataforma, Debian. Todas las dependencias salen un solo lugar Monday, November 5, 12
  14. Nuestro propio Chef! Configuration Management Se programan los ambientes Reutilización

    del código en producción se puede hasta programar la creación de las máquinas virtuales. Vagrant o libvirt o ... Monday, November 5, 12
  15. Deployment Tenemos un cluster en producción con la beta. Ahora

    que el proceso de deployment es claro estamos fabricando otro robot y escribiendo nuevas recetas para nuestro Chef La idea remplazar este setup en caliente con el trabajo del nuevo robot Se está desplegando a mano. Monday, November 5, 12
  16. Es para todos Nosotros tenemos un sistema complejo Otros pueden

    tener múltiples sistemas mas simples Es fácil viajar en el tiempo! Monday, November 5, 12