Reto 9: desplegando en una nube comercial
Clase 44 de 48 • Curso de Arquitectura de Aplicaciones con Docker 2018
Introducción
Mientras que docker-compose permite desplegar servicios fácilmente en la nube y los servicios de línea de órdenes permiten desplegar contenedores individuales, Docker Cloud permite componer y escalar servicios de forma relativamente sencilla, con un sistema de gestión que usa los recursos que tenga el usuario (su propia nube) para gestionar fácilmente todos los servicios necesarios.
Como el usuario tiene que tener previamente una cuenta en algún servicio cloud, se aconseja que se obtenga una cuenta en Digital Ocean con el cupón de 20$ que dan en el propio Docker cloud. Si se tiene otro servicio se puede usar también, porque al final el frontal va a ser el mismo, pero personalmente he encontrado Digital Ocean mucho más fácil de vincular desde Docker Cloud.
En Docker Cloud se puede usar también la propia cuenta de Docker. Adicionalmente, tendrá que descargarse el programa de línea de órdenes docker-cloud, un programa escrito en Python que actualmente sólo funciona con la versión 2.
Frente a docker-compose, que permite trabajar en local y crear entornos de prueba de forma rápida, docker-cloud permite desplegar servicios y aplicaciones en la nube, incluyendo escalado, y trabaja de forma más eficiente en un entorno profesional.
El objetivo de este curso es precisamente que la persona sea capaz de desplegar servicios en la nube, así que este reto se puede considerar la culminación del curso.
Tip
Desplegar desde la línea de órdenes puede ser al principio un poco desconcertante. Se puede probar a desplegar inicialmente desde la web, para comprobar que no haya ningún problema, para eventualmente desplegar usando docker-cloud y docker-stack.
Posibles fuentes de problemas
La conexión del servicio a la nube puede ser un poco complicada, así que puedes probar varios que te ofrezcan el cupón gratuito hasta encontrar el más adecuado.
El cupón tiene una cantidad limitada de dinero. Recuerda borrar los servicios una vez probados para que no continúen consumiendo dinero.
Reto:
Contenedorizar un servicio web creado anteriormente y desplegarlo. Este servicio web contendrá:
- Un conjunto de imágenes que ejecuten el servicio web.
- Un servicio de almacén de datos o de log, a elección del usuario.
- Un servicio de equilibrado de carga usando haproxy.
- Crear un script que permita reproducir el despliegue las veces que se desee.