diff --git a/README.md b/README.md new file mode 100644 index 0000000..1f1a457 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +## 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 + + diff --git a/ansible/backend/files/go-backend/go-backend b/ansible/backend/files/go-backend/go-backend deleted file mode 100755 index 4d59e4c..0000000 Binary files a/ansible/backend/files/go-backend/go-backend and /dev/null differ