Virtualization has been around much of the history of computing from the introduction of virtual memory to virtualization at the operating system level and containers. The use of containers as a deployment tool has boomed since the release of Docker as free software in 2013. Docker includes a large set of tools ranging from building and executing containers on a single node to managing multiple containers in clusters. However, the distribution of deployment descriptors and of maintenance scripts is not properly addressed. This work introduces the mechanisms provided by Docker and describes a practice developed by the Bitlogic team for the deployment and management of the container lifecycle.
10. Presentación
• Uso de formatos declarativos para configuraciones
• Existencia de un contrato claro entre las aplicaciones y el sistema
operativo para mayor portabilidad
6
11. Presentación
• Uso de formatos declarativos para configuraciones
• Existencia de un contrato claro entre las aplicaciones y el sistema
operativo para mayor portabilidad
• Simplificación de despliegue en plataformas cloud
6
12. Presentación
• Uso de formatos declarativos para configuraciones
• Existencia de un contrato claro entre las aplicaciones y el sistema
operativo para mayor portabilidad
• Simplificación de despliegue en plataformas cloud
• Integración continua para mayor agilidad
6
13. Presentación
• Uso de formatos declarativos para configuraciones
• Existencia de un contrato claro entre las aplicaciones y el sistema
operativo para mayor portabilidad
• Simplificación de despliegue en plataformas cloud
• Integración continua para mayor agilidad
• Escalabilidad sin cambios significativos en la arquitectura,
herramientas y prácticas de desarrollo
6
14. Procesos administrativos
El código de administración y despliegue debe
• entregarse junto con el de la aplicación para evitar inconsistencias
7
15. Procesos administrativos
El código de administración y despliegue debe
• entregarse junto con el de la aplicación para evitar inconsistencias
• ser autocontenido y no depender de la existencias de herramientas o
bibliotecas en el sistema
7
18. Bootstrap
Un nuevo contenedor denominado Bootstrap encargado de
• distribución de scripts de mantenimiento y configuraciones
9
19. Bootstrap
Un nuevo contenedor denominado Bootstrap encargado de
• distribución de scripts de mantenimiento y configuraciones
• descarga de imágenes del sistema
9
20. Bootstrap
Un nuevo contenedor denominado Bootstrap encargado de
• distribución de scripts de mantenimiento y configuraciones
• descarga de imágenes del sistema
• gestión del ciclo de vida (inicio, detención, estado, etc)
9
21. Bootstrap
Un nuevo contenedor denominado Bootstrap encargado de
• distribución de scripts de mantenimiento y configuraciones
• descarga de imágenes del sistema
• gestión del ciclo de vida (inicio, detención, estado, etc)
• tareas de mantenimiento (upgrade, downgrade, migración, etc)
9
22. Uso
Para descargar las imágenes de los servicios
$ docker run --rm bootstrap pull
Para desplegar los contenedores
$ docker run --rm bootstrap up
Para detener los contenedores
$ docker run --rm bootstrap stop
10
26. Ventajas
• Aplica a cualquier tipo de proyecto que use Docker
• Puede usarse con cualquier motor de integración y despliegue
continuos
13
27. Ventajas
• Aplica a cualquier tipo de proyecto que use Docker
• Puede usarse con cualquier motor de integración y despliegue
continuos
• Facilita el despliegue del producto en el entorno de desarrollo
13
28. Ventajas
• Aplica a cualquier tipo de proyecto que use Docker
• Puede usarse con cualquier motor de integración y despliegue
continuos
• Facilita el despliegue del producto en el entorno de desarrollo
• Permite desplegar remotamente usando la API TCP de Docker
13
29. Ventajas
• Aplica a cualquier tipo de proyecto que use Docker
• Puede usarse con cualquier motor de integración y despliegue
continuos
• Facilita el despliegue del producto en el entorno de desarrollo
• Permite desplegar remotamente usando la API TCP de Docker
• Garantiza la compatibilidad con cada versión del producto
13
30. Ventajas
• Aplica a cualquier tipo de proyecto que use Docker
• Puede usarse con cualquier motor de integración y despliegue
continuos
• Facilita el despliegue del producto en el entorno de desarrollo
• Permite desplegar remotamente usando la API TCP de Docker
• Garantiza la compatibilidad con cada versión del producto
• Es agnóstico de la plataforma subyacente (Swarm, Kubernetes, etc)
13
32. Comparación con Puppet, Chef, Salt, Ansible, etc
• Tiene un propósito muy específico
• No requiere agentes adicionales (solo Docker)
14
33. Comparación con Puppet, Chef, Salt, Ansible, etc
• Tiene un propósito muy específico
• No requiere agentes adicionales (solo Docker)
• Puede ser implementado por el equipo de desarrollo del producto
14
36. Resumen
• Los contenedores permiten consolidar la infraestructura.
• Docker ha bajado la barrera de acceso a contenedores.
15
37. Resumen
• Los contenedores permiten consolidar la infraestructura.
• Docker ha bajado la barrera de acceso a contenedores.
• Bootstrap resuelve el problema de la distribución de configuraciones.
15
38. Resumen
• Los contenedores permiten consolidar la infraestructura.
• Docker ha bajado la barrera de acceso a contenedores.
• Bootstrap resuelve el problema de la distribución de configuraciones.
• Bootstrap permite unificar la interfaz de operación.
15