Reto 7. Desplegando un microservicio en la nube usando PaaS
Clase 33 de 48 • Curso de Arquitectura de Aplicaciones con Docker 2018
Introducción
Muchos PaaS (Plataforma como servicio) permiten desplegar directamente contenedores; las grandes empresas que tienen plataforma cloud también tienen servicios que permiten desplegar contenedores directamente, bien desde una imagen local, bien desde una pública almacenada en Docker Hub.
Si tienes cuenta gratuita o de pago en alguno de esos servicios, merece la pena probarlos y ver la diferencia de precio con respecto al uso de máquinas virtuales completas, pero en este reto nos vamos a centrar en servicios gratuitos. Ya hemos usado sloppy.io, que ofrece un mes de prueba gratuito, en este reto nos centraremos en zeit.co.
Sobre este servicio hay una entrada en el blog de Platzi que también podéis consultar para tener información adicional https://platzi.com/blog/deploy-microservicios/
zeit.co zeit.com es un PaaS para node.js y contenedores que permite desplegar de forma gratuita imágenes siempre que se deje acceso al código fuente (lo que no debería de representar un problema, porque vamos a alojar los fuentes en GitHub) y no se exceda un número de despliegues determinado. El dominio que te asignan es también aleatorio, por lo que no sería en principio adecuado para un negocio. Para aprender, sin embargo, es más que adecuado, o incluso para desplegar pruebas y prototipos. Dado que se trata de un PaaS basado en node, hay que instalar el intérprete de este lenguaje. Aconsejamos que se proceda de la forma siguiente:
Linux (y posiblemente Mac) En este curso siempre hemos aconsejado usar Linux para desarrollar con Docker. Descargar un gestor de versiones de node.js tal como nvm. Instalar alguna de las últimas versiones de node.js con nvm install stable. npm install -g now instala el cliente de zeit.co
Windows Descargar node.js y npm desde sus lugares de instalación oficiales. El tercer paso se llevará cabo de la misma forma.
Tip
Recordar incluir en .dockerignore todos los ficheros que no se quieran subir a ningún lado
Despliegue
El despliegue de un contenedor sólo requiere ejecutar now en el directorio o carpeta en la que se halle el Dockerfile.
Posibles fuentes de problemas
Asegurarse que el contenedor funciona bien localmente y que se ha hecho EXPOSE sobre el puerto 80. Conviene limpiar de vez en cuando los proyectos anteriores, porque a partir de un número determinado no se despliegan correctamente. now rm borra los proyectos que no se estén usando.
Reto:
Desplegar el servicio web en zeit.co para que funcione correctamente.