GithubHelp home page GithubHelp logo

tet-challenge2's Introduction

Proyecto 2 - T贸picos especiales en Telem谩tica 馃摱

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.

Dise帽o l贸gico de la implementaci贸n

A

Configuraci贸n e inicializaci贸n de instancias

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 image
image
image
main y gallery image
image
image

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

Configuraci贸n de DNS

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铆:

image

Inicio de los servidores

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

main

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.

gallery

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.

load balancer

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.

Content Delivery Network (CDN)

Utilizamos la prueba gratuita de 14 d铆as de cdn.net, la cu谩l decidimos solo implementar en la p谩gina principal y en un subdominio para simplificar la presentaci贸n de lo que se ha implementado.

As铆, la ruta http://cdn.proyecto2-tet.tk es el proyecto gestionado por un CDN.

Reportes uptime del servidor

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.

Plugins de Wordpress

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:

Single Sign On

auth0-logo

Configuraci贸n hecha con Auth0 y ampliamente guiada por esta gu铆a: https://auth0.com/blog/wordpress-sso-with-auth0/

Two Factor Authentication

auth0-logo

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

Database and Page Cache (NO FUNCION脫 EN LA IMPLEMENTACI脫N)

w3tc-logo

redis-logo

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-e878c2a03a17

Participantes 馃毠

Nombre
David Calle Gonz谩lez
Juan Sebasti谩n D铆az Osorio
Santiago Hidalgo Ocampo

tet-challenge2's People

Contributors

juansedo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.