Icono del sitio Optimizing Me

Continuous Delivery: Partos Sin Dolor

El presentar al mundo nuestras creaciones puede ser uno de nuestros más grandes temores. Publicar una canción, postear una foto en Instagram, poner en linea un Sitio Web o incluso publicar un Blog Post (como este), están cargados de una sentimiento que mezcla temor y expectación simultáneamente.

En el caso de la tecnología, y en específico del Software, los que tenemos el privilegio de trabajar en este arte experimentamos esa sensación en cada ocasión que «nuestros bebés van a salir al mundo», ó en otras palabras, cuando colocamos nuestro Software en Producción!

Y preguntarás: «Pero JJ, cómo lidiar con esto?»…..¡Qué bueno que preguntas! :). La filosofía DevOps tiene algunos secretos para minimizar el dolor de este «parto».


Pausa para entender la Jerga DevOps

Product Release = Hacer pública de la versión más reciente de un producto (obviamente, en Producción).

Deployment = Instalar, testear y configurar el producto en un ambiente, por ejemplo: Desarrollo o Pre-Producción. Un Deployment puede realizase incluso a Producción, sin hacerlo visible para el público hasta el momento del Product Release.

Ejemplos:

Ya que tenemos las cosas claras, prosigamos:


Estos son algunos de los síntomas de un Product Release doloroso:

«Si algo duele, hazlo más frecuentemente.«

Cuando Martin Fowler dice «Si algo duele, hazlo más frecuentemente«1Martin Folwer – FrequencyReducesDifficulty , se refiere a la búsqueda continua de los estresores que aportan al progreso. Ejemplo de la vida no-digital:

A pesar de sonar contraproducente, estas son pruebas tangibles de los beneficios de desafiar nuestros temores e incomodidades frecuentemente. Y, mientras más lo hacemos, más confianza en nosotros mismos tenemos, por ende, pasamos del temor a la curiosidad por saber qué más somos capaces de lograr.

La mentalidad de Continuous Delivery permite a empresas como Amazon ejecutar Releases cada 11.6 segundos. Tal vez tu no requieras realizar deployments a esa velocidad, pero definitivamente quieres utilizar Continuous Delivery para para automatizar aquello que te causa dolor y así evitar problemas y horas extras en el día del Release.

Consejos para lograr Continuous Delivery

Planifica Releases frecuentes

  1. Haz tus historias más pequeñas. Siempre hay forma de reducirlas.
  2. Utiliza la técnica de Dark Launch para ocultar funcionalidad que no esta lista.

Automatiza el Deployment al 100%

Ejecuta Tests antes del Deployment

Utiliza «Placeholders» en tus archivos de configuración.

Crea un Ambiente de Testing o PreProduccion


Nadie se salva de empezar con Releases dolorosos, esta una especie de de «Bautismo de Fuego». Siendo así, recuerda que desde el momento que los humanos dominamos al fuego, nuestra evolución fue para arriba .

Cuál es tu experiencia con Deployments y Releases? Que otras sugerencias tienes?

Deja tu comentario y hagamos que más personas se beneficien.

Keep on learning…and Delivering!

Salir de la versión móvil