36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
## 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](https://docs.docker.com/engine/install/debian/)
|
|
|
|
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
|
|
|
|
|