ejecutar y compartir código desde el navegador a través de una terminal web. - Nuestras aplicaciones están desarrolladas en Rails, NodeJS, Go y otros. - Las consolas corren en containers de Docker en instancias de AWS. - Realizamos despliegues diarios a staging y producción. - Nuestra infraestructura escala automáticamente.
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
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.
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.
más funcionalidades: reiniciar servicios en supervisor, notificar a slack, etc. - Podemos desplegar aplicaciones desde Slack aunque a @raymi no le gusta - Copias de seguridad diarias - Los jobs de Jenkins también están versionados - Corremos scripts de monitoreo: uso de disco, ancho de banda, etc.
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.