Solución propuesta a la prueba de https://github.com/immfly/tech-test-infra
 
 
 
 
Go to file
Celso González 612ce26ea7 Added README 2023-03-06 01:19:41 +01:00
ansible Added README 2023-03-06 01:19:41 +01:00
assets Initial version 2023-03-06 00:54:12 +01:00
.gitignore Initial version 2023-03-06 00:54:12 +01:00
README.md Added README 2023-03-06 01:19:41 +01:00
run_all_processes.sh Initial version 2023-03-06 00:54:12 +01:00

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