Herramientas para crear Ambientes de Desarrollo

Clase 5 de 29Curso Profesional de DevOps 2017

Resumen

Los cambios empiezan desde el ambiente de desarrollo. Queremos que cuando nuestro código vaya a producción, tenga la mayor similitud al ambiente de QA y de desarrollo.

**Por ejemplo: **
Un compilador diferente podría no tener las mismas optimizaciones que otro, con esto podría parecer que el código es correcto localmente, per en producción actúa diferente.

En caso de que el código tenga dependencia de un paquete local, pero en el OS de producción no lo tiene, habrá un grave problema.
Cuando los operadores reciben el código, lo corren en el ambiente que se usa en común para otros servicios, etc.

**¿Qué herramientas pueden ayudar con esto? **

La más común seria Vagrant.
Configurando un Vagrantfile podemos definir que version de OS tener. Instalar dependencias y configurar el sistema.

Recientemente Docker ha recibido muchísimo auge. Podríamos decir que es el “happy medium” entre Developers y Operators. Los developers pueden montar desde una “imagen” que los operadores consideren segura y solamente preocuparse porque el código corra adecuadamente en el docker container. Así, no hay que preocuparse por dependencias de OS, compilación, etc. Si funciona en tu contenedor local, la probabilidad que funcione en el contenedor de production es muy alta. Para el operador, recibir un container, es muy similar a recibir un binario ejecutable.

Como efecto secundario de tener un ambiente de desarrollo reproducible, traer gente nueva al equipo se hace mucho más fácil ya que su ambiente ya está configurado idéntico al los del resto del equipo.