«Continuous Delivery»: Sube a producción sin estrés.

«Continuous Delivery»: Sube a producción sin estrés.

El lunes 7 de marzo comenzará el curso «Continuous Delivery» con Néstor Salceda y qué mejor forma de conocer su enfoque y contenido que con una explicación de su profesor. ¡Esperamos que te guste!

Estoy bastante seguro que todos hemos sufrido alguna vez esa situación en la que un maravilloso jueves por la mañana nos han pasado un proyecto para desplegar con un fichero llamado «deploy.txt» que contenía una documentación detallada y varios pasos para seguir tenía que estar puesto en producción al día siguiente.  Evidentemente, tras mucha pelea con la aplicación a desplegar, que es la primera vez que oyes hablar de ella, centenares de llamadas a tus colegas de desarrollo y encontrar algunos pasos que se habían escapado de la documentación; a las 3 de la mañana del viernes, con los ojos rojos, recuerdas el cielo tan azul que tenía ese jueves por la mañana.

Todos nos hemos sentido frustrados por esta situación, y nos hemos preguntado si no hay otro modo mejor de hacer estas cosas y evitar estas situaciones de estrés. Y efectivamente lo hay, y lo aprenderás en este curso.

Te vamos a enseñar a escapar de los despliegues manuales, del despliegue único a final del ciclo o de las manualidades en la gestión de la configuración de los entornos de producción.

Vamos a hablar de valor, de cómo entregar valor. Veremos los principios que hay tras todo esto de la entrega continua, hablaremos de eXtreme Programming o Lean Software Development, de los ciclos de realimentación, de teoría de colas y tiempo de ciclo, todo ello desde un enfoque práctico, con un montón de ejemplos.

Nos centraremos en la anatomía del deployment pipeline y hablaremos de cada una de sus partes, la fase de commit, de tests de aceptación o de despliegue a diferentes entornos (UAT, producción, staging …) utilizando el mismo script de despliegue y evitando el bien conocido problema de los snowflake servers. Avanzaremos hasta el final y hablaremos de los patrones para evitar la pérdida de servicio durante los despliegues: Blue green deployment y canary releasing, y hasta uniremos alguna de estas ideas con técnicas para poder facilitar A/B testing.

Pondremos mucho énfasis también en la gestión de los entornos de producción, hablaremos de infraestructura como código, utilizaremos un sistema de control de código fuente y pondremos sobre la mesa la idea de TDD para todo el área de infraestructura. Además, seremos capaces de automatizar toda esta gestión de la infraestructura.

Todo ello lo acompañaremos con nombres propios y utilizaremos una serie de herramientas: git, vagrant, terraform, docker o ansible. Pero, poniendo énfasis en los principios, para que seas capaz de sustituir cada una de estas herramientas con las que tu prefieras, teniendo clara la dirección.

Podrás ver lo que yo veo, como si estuvieses a mi lado, con mi consola de fondo para que puedas seguir cada uno de los pasos al detalle y, por supuesto, podrás preguntarme cada duda que te surja.

Como guinda del pastel, pondremos toda la carne en el asador y utilizando consul, terraform y ansible haremos que nuestra aplicación escale y sacaremos nuevos nodos en muy pocos minutos que se registrarán automáticamente, posibilitando el escalado horizontal y por supuesto, sin pérdida de servicio.

Y finalmente, seremos capaces de recordar ese cielo azul del jueves y dejaremos de vivir con el estrés de los pasos manuales, las llamadas y los correos con tus compañeros, la configuración de los diferentes entornos, la falta de fiabilidad del proceso de despliegue, la lentitud a la hora de sacar un nuevo entorno de producción o el bus factor del experto de despliegue.

Más información sobre el curso

[ctt title=»Sube a producción si estrés con el curso ‘continuos delivery’ de @geeks_academy con @nestorsalceda http://bit.ly/1Q21qqu» tweet=»Sube a producción si estrés con el curso ‘continuos delivery’ de @geeks_academy con @nestorsalceda http://ctt.ec/L1e0P+» coverup=»L1e0P»]