En este documento se explicar谩 con detalle t茅cnico y de instalaci贸n el desarrollo de este proyecto, as铆 como los pasos para instalarse y poder replicar nuestros resultados.
Este proyecto fue desarrollado en GCP con algunas de sus herramientas por lo que los nombres har谩n referencias a configuraciones de esta plataforma, pero puede hacerse lo mismo en otras IaaS.
Utilizando el Compute Engine de GCP, montamos las instancias de VM para nuestra infraestructura. Las VM implementadas son los main
servers, los gallery
servers y los load-balancer
servers.
En la siguiente tabla se resumen las configuraciones iniciales:
Servidor | Configuraci贸n |
---|---|
load-balancer |
|
main y gallery |
Cada m谩quina se configur贸 con los siguientes comandos:
# Updating system
sudo apt update -y && sudo apt upgrade -y
sudo apt install wget -y
sudo apt install git -y
# Installing docker and docker-compose
sudo wget -O - https://bit.ly/docker-install | bash
# Downloading the project
git clone https://github.com/juansedo/tet-challenge2.git
Ya que tenemos las IP p煤blicas de las m谩quinas, con el servicio de Freenom se puede solicitar un dominio gratuito. La configuraci贸n del DNS queda as铆:
Aqu铆 se diferencian los dos servidores que se tienen en el mismo repositorio. Por lo que se puede ejecutar uno u otro:
# Starting main
cd tet-challenge2/wordpress/
cp .env.example .env
sudo docker-compose up -d
# Starting gallery
cd tet-challenge2/wordpress/
cp .env.example2 .env
sudo docker-compose up -d
# Starting load balancer for main
cd tet-challenge2/load-balancer/lb-main
cp .env.example .env
sudo nano nginx/nginx.conf # Check and update upstream ip's
sudo docker-compose up -d
Este servidor contiene la p谩gina inicial del proyecto con un feed donde se pueden visualizar los proyectos de P1 y P2. La parte visual se realiz贸 de forma manual manteniendo el volumen wordpress
con esta informaci贸n.
Este servidor contiene una galer铆a de distribuci贸n aleatoria de los proyectos de P1 y P2. La parte visual se realiz贸 de forma manual manteniendo el volumen wordpress
con esta informaci贸n.
Este servidor despliega un contenedor nginx
con la configuraci贸n necesaria para tener un balanceador de carga. Dado que el archivo nginx
no se puede controlar con variables de entorno de forma simple, se cre贸 la configuraci贸n espec铆fica de cada balanceador (uno por p谩gina) y por esto dos carpetas.
As铆, la ruta http://cdn.proyecto2-tet.tk es el proyecto gestionado por un CDN.
Para generar estos reportes escogimos una cuenta gratuita de Site24x7 que permite generar reportes de estado de salud de los servicios, monitorear sus certificados, verificar tiempos de carga e incluso analizar servicios o m谩quinas VM de nubes espec铆ficas (GCP, AWS, etc). Incluye notificaciones al correo de cambios de estado.
En Wordpress se hicieron configuraciones adicionales correspondientes a la instalaci贸n de plugins que permitieran configuraciones adicionales como el Single Sign On y el Two Factor Authentication. Mencionaremos los instalados y una gu铆a oficial que utilizamos para la configuraci贸n de los servicios:
Configuraci贸n hecha con Auth0 y ampliamente guiada por esta gu铆a: https://auth0.com/blog/wordpress-sso-with-auth0/ Configuraci贸n hecha con Auth0 y ampliamente guiada por esta gu铆a: https://auth0.com/docs/login/mfa/mfa-factors/configure-sms-voice-notifications-mfa Configuraci贸n hecha con W3 Total Cache y Redis https://thibaut-deveraux.medium.com/a-docker-compose-file-to-install-wordpress-with-a-traefik-reverse-proxy-an-ssl-certificate-and-a-e878c2a03a17Nombre | |
---|---|
David Calle Gonz谩lez | |
Juan Sebasti谩n D铆az Osorio | |
Santiago Hidalgo Ocampo |