Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ENUNCIADO PROYECTO 2
versión draft
Descripción:
Desplegar una aplicación de comunidad que represente un sistema de información del tipo
Sistema de Gestión de Contenidos (CMS, por sus siglas en inglés). En este caso se
seleccionará wordpress.
Requerimientos:
Versión draft
c. Habilitar el acceso HTTPS al sitio web desplegado utilizando el CMS
wordpress. Para esto se requiere que cada miembro del grupo, gestione la
adquisición y configuración de un certificado (es un tipo de archivo) de
Secure Socket Layer (SSL) de alguna autoridad certificadora.
Nota: Para lograr esta actividad, se le sugiere que genere el certificado SSL
utilizando el proyecto “Let’s encrypt. Aquí puede encontrar certificados
gratuitos para el dominio solicitado. Tenga en cuenta que primero debe
solicitar su dominio para poder realizar este paso.
4. A nivel de diseño de la solución, se requiere que considere lo siguiente:
a. Diseñar el sistema para 20.000 usuarios, con un nivel de concurrencia del
10%.
b. Diseñar el sistema para un almacenamiento total de 500 GB.
c. Se requiere que los clientes se conecten por diferentes ISP distribuidos por
un mismo país (80% del tráfico) y fuera del país (20%), cada usuario estará
conectado por una conexión de banda ancha de mínimo 20 Mbps.
5. Solicitar y gestionar un nombre de dominio para la aplicación del grupo. (es posible
reusar el utilizado en el proyecto1)
6. A nivel de diseño e implementación, se requiere que su solución permita:
a. La utilización de balanceadores de carga tanto externos así como internos
con el fin de satisfacer requerimientos no funcionales de alta disponibilidad.
Igualmente que permitan distribuir el tráfico sobre diferentes instancias.
b. Crecimiento horizontal por clonación. Con esta característica se debe buscar
y propender de que, en caso tal la carga de tráfico exceda la capacidad actual
del sistema, se instancie una nueva para soportar la carga de tráfico.
c. Alta disponibilidad en la capa de servicios
d. Alta disponibilidad en la capa de persistencia de datos para el manejo de
archivos.
e. Alta disponibilidad en la capa de bases de datos para el manejo de la
información almacenada en el motor definido para esto.
f. Sistema de backup y restore de datos, contenidos, aplicaciones, etc.
Nota: En este este punto solo puede utilizar o emplear un servicios
administrado de AWS p.ej. RDS, S3, autoscaling group, etc
7. Se debe definir así como utilizar estrategias que permitan contar con sistema(s) para
el monitoreo de la operación para el sitio web desplegado. En este punto, se le
sugiere considerar herramientas como uptime, que le permitan realizar un
monitoreo del sitio web y generar las alertas necesarias en caso de presentarse una
falla.
Versión draft
8. Presupuesto y estimación del costo inicial y mensual de la operación del sistema. En
el ambiente de Producción. Dado que el proyecto se va a desplegar en nube
utilizando la plataforma de AWS, se sugiere que pueda utilizar la calculadora de AWS
con el fin de estimar los costos asociados al despliegue de la solución.
9. Seguridad:
a. Solicitar, gestionar y utilizar un certificado SSL válido para la aplicación del
grupo.
b. Análisis de vulnerabilidades del sistema en producción (ver OWASP)
c. Utilización de algunas técnicas y manejo de vulnerabilidades de OWASP
d. Política de gestión de claves de usuario (passwords)
e. Implementación de técnicas de autenticación de 2 factores, (ej: recuperación
de claves mediante correo, o SMS)
f. Implementar Single Sign on (SSO), con Active Directory, LDAP, o auth0, gmail,
e integrarlo al CMS.
10. Rendimiento
a. Se requiere que se puedan lograr tiempos de respuesta del sitio web
implementado que en promedio sean entre uno (1) y dos (2) segundos como
máximo.
b. Se hace necesario que realice pruebas de rendimiento a nivel de car
concurrencia (ej: jmeter o similar)
c. Performance tunning de la aplicación (wordpress), de la Base de datos, así
como de los diferentes servicios del sistema
d. Diseño e implementación de un servicio de Content Distribution Network
(CDN , p.ej, cloud fare, o alguna similar). Esto con el fin de ayudar a mejorar
los tiempos de respuestas (latencia) y así ofrecer una mejor experiencia al
usuario final.
e. Diseño e implementación de caché a nivel de base de datos.
f. Diseño e implementación a nivel de caché para el manejo de archivos
(locales)
Reglas:
● Los equipos de trabajo deben estar constituidos máximo por tres (3) alumnos. Cada
miembro del equipo, trabajará y responderá por la parte común y el aporte con un
atributo de calidad en el sistema escalable en nube.
● Realizar el despliegue del ambiente de producción en AWS.
● Cada miembro del equipo deberá desarrollar el marco de referencia del atributo de
calidad seleccionado (documento)
Versión draft
● Se realizará el despliegue en producción en Amazon IaaS/PaaS en Docker con
Kubernetes o algunas de las opciones de despliegue que el proveedor Amazon ofrezca.
También se podría hacer en otras nubes como Azure, Google o IBM (NO en proveedores
de hosting de aplicaciones como Heroku).
Entregables:
Rúbricas de evaluación:
1. Aplicación monolítica individual desplegada en Amazon, con nombre de dominio y
certificado SSL
2. Sistema funcionando correctamente con los 3 atributos de calidad en Nube
3. Implementación de devops en pruebas y producción
4. Códigos y Documentación completa en el repo gitlab
Análisis y Diseño:
Versión draft
a. Qué patrones de arquitectura específicos (patrones de escalabilidad y
buenas prácticas) se utilizarán en el SISTEMA para apoyar esta escalabilidad:
i. Mejores prácticas
ii. Selección de tácticas
iii. Decisiones de diseño
b. Definición de Herramientas a utilizar
c. etc
6. Otra información que considere relevante, innovadora o diferenciadora en el
despliegue de la aplicación en el sistema.
Proceso de instalación:
Versión draft
• Reusar el dominio www.domain.com del proyecto1 por equipos para el
proyecto 2. ahora el www y domain.com apuntará al producto de este
proyecto 2.
• Los trabajos individuales deberán ser desplegados en:
• www1.domain.com
• www2.domain.com
• www3.domain.com
• Solicitar certificado SSL en let’s encrypt para nuestro dominio y configurarlo
en wordpress.
• 1a opción: let’s encrypt (para la versión monolítica)
• 2a opción: CloudFlare (versión escalable)
• Transferir el dominio de freenom hacia cloudflare para que allí se maneje, y
se aproveche otras características de este proveedor: gestión dns, CDN,
seguridad, monitoreo, etc.
• Lectura detallada de la documentación técnica de la aplicación a desplegar.
• leer muy bien, las especificaciones y requisitos para montar
wordpress (página de wordpress oficial)
• Descargar, Instalar y Correr la aplicación en AWS EC2
• En Docker únicamente
• Documentación hasta la fecha
• Semana 2:
• Realizar el análisis y el diseño del sistema en nube. (buscar arquitectura de
referencia de Moodle, drupal o wordpress en aws, buscar google y en
docs.aws)
• Realizar el aprovisionamiento de los recursos tecnológicos para el proyecto.
• Documentación del proceso. (en la bitácora del proyecto2)
• Diseño e implementación para alta disponibilidad
• Diseño e implementación para rendimiento
• Diseño e implementación para seguridad
• documentación del proceso.
• Semana 3: abril 19 - 23
• Monitoreo
• Pruebas
• Continuidad del servicio (tolerancia a fallos, backup, restore, recuperación
ante desastres)
• Valoración de la solución
• Entrega total Proyecto2
• Semana 4: abril 26 - 30
Versión draft
• Sustentación individual / grupal (rúbricas 3,4,5)
Versión draft