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

Despliegue Contínuo - CodePicnic

Hector Paz
November 16, 2016
82

Despliegue Contínuo - CodePicnic

Hector Paz

November 16, 2016
Tweet

Transcript

  1. ¿Qué es CodePicnic? - CodePicnic es una plataforma que permite

    ejecutar y compartir código desde el navegador a través de una terminal web. - Nuestras aplicaciones están desarrolladas en Rails, NodeJS y Go. - Las consolas corren en containers de Docker en instancias de AWS. - Realizamos despliegues diarios a staging y producción.
  2. Despliegue Contínuo en Codepicnic - Despliegue Contínuo de aplicaciones en

    desarrollo, staging, producción, etc. - Entrega Contínua de infrastructura, documentación, stacks, etc. - Nuestro código (aplicaciones e infraestructura) está en GitHub - Jenkins obtiene el código de los repositorios - Tenemos webhooks cuando queremos que el despliegue sea automático - Las excepciones se trasladan al control de versiones
  3. De Capistrano a Jenkins - Usábamos Capistrano para desplegar la

    aplicación principal - Con Jenkins añadimos visibilidad: quién, qué, cuándo, cómo y cuánto. - Al final Jenkins notifica al canal respectivo en Slack - Los jobs de jenkins se pueden usar para distintos ambientes: staging, producción, etc.
  4. Actualizar Containers - Tenemos una mini-aplicación en node que corre

    en cada container - Cuando se actualiza esa aplicación se debe desplegar en 50000 containers - Con Jenkins podemos realizar despliegues por bloques: hosts, tipos de container, antigüedad, etc. - El proceso demoraba días, pero en cada interacción hemos ido mejorando el tiempo porque tenemos más visibilidad. - Ahora usando volúmenes de docker y el proceso demora minutos, Jenkins despliega una sola vez a cada host.
  5. Y mas ... - Desplegamos aplicaciones en containers - Agregamos

    más funcionalidades: reiniciar servicios en supervisor, notificar a slack, etc. - Copias de seguridad diarias - Los jobs de Jenkins también están versionados - Corremos scripts de monitoreo: uso de disco, ancho de banda, etc.
  6. Tomar en cuenta - Hemos convertido tareas manuales y rutinarias

    en Jobs de Jenkins - Nuestro enfoque es siempre mejorar el proceso, Jenkins no es sinónimo de burocracia. - Añadimos automatización, orden y visibilidad pero lo mantenemos simple.Siguientes pasos: añadir tests y más pipelines.