A producción con Docker

Hace un par de semanas comencé a trabajar en un nuevo proyecto para dar una mano con cuestiones de infraestructura. Un punto interesante que me llevó a involucrarme en el proyecto es que se planea utilizar docker en el ambiente productivo. El equipo ya se encuentra utilizando docker + compose sobre sus servidores virtuales, pero la idea es utilizar el servicio de contenedores de Amazon.

Dicho servicio de contenedores no es completamente compatible con Docker-Compose. En primera instancia el servicio de Amazon provee un conjunto mucho más amplio de funcionalidades pero al mismo tiempo algunas funcionalidades soportadas por Compose están diseñadas de forma distinta en Amazon. Es interesante que Amazon provee entre sus herramientas una que convierte los Docker-Compose al formato de Task Definition que utiliza Amazon.

Continuará…

Estrategias de provisioning + deployment (parte 2)

En el proyecto en el que estoy trabajando actualmente utilizamos Ansible para hacer el provisioning de la infraestructura y CodeDeploy para manejar el deployment. CodeDeploy es un servicio que Amazon provee gratuitamente a los usuarios de EC2, la plataforma cloud de servidores virtualizados de Amazon.

El funcionamiento de CodeDeploy es bastante simple: copia archivos desde Github o S3 hacia el servidor destino y permite como parte de ese proceso ejecutar algunos scripts. Pero más allá de este funcionamiento simple, la parte más valiosa de CodeDeploy es la capacidad de trabajar en conjunto con el mecanismo de auto-scaling de Amazon de forma de simplificar el deployment a una cantidad variable de instancias ofreciendo incluso algunas variantes de estrategia (one-by-one, all-together, half-and-half).

La siguiente imagen ofrece una vista de alto nivel del proceso de deployment que estamos usando en el proyecto.

ansible_codedeploy

Continuará…