|
|
||
|---|---|---|
| ansible | ||
| assets | ||
| .gitignore | ||
| README.md | ||
| run_all_processes.sh | ||
README.md
Immfly Infra Test
La solución propuesta ofrece un repositorio único con el playbook de ansible necesario para levantar la maquina virtual y hacer tanto el deploy del frontend como el del backend, basado en Golang, usando docker dentro de la maquinai virtual
Asi mismo se ofrece un único ejecutable que realiza todas las tareas de forma automatica. Bastaría con ejecutar el comando ./run_all_processes.sh
A continuación detallo un poco cada uno de los roles de ansible que se utilizan
Docker
La instalación de docker se realiza siguiendo las recomendaciones de Docker
Hay una instalación de paquetes necesarios, la actualización de los repositorios oficiales, la instalación del programa en si y por último una configuración que nos permite ejecutar los containers de docker como un usuario sin privilegios (nonroot en nuestro caso)
Backend
Por un lado tenemos el programa en Go situado en ansible/backend/files/go-backend. La filosofía del programa es la de un programa mínimo basado en la librería estandar del lenguaje.
Este programa incluye un Dockerfile en dos pasos que por un lado compila el ejecutable de forma estática y por otro lado genera una imagen con ese ejecutable de tamaño mínimo
Finalmente ansible se encarga tanto de hacer el build de dicha imagen y levantar el container asociado
Frontend
Para el frontend he usado una imagen estandar de nginx para servir el fichero de html, el fichero de configuración de nginx tiene algunos cambios para enlazar con el servicio de backend