Blog de Amazon Web Services (AWS)
Campus Online: una plataforma interactiva para alumnos, docentes y administrativos de la Universidad IEU, basada en AWS
Por Dario Gomez, CEO de MXMart,
Gabriel Hernandez, Director de Tecnologia MXMART de Mexico y
Dimas Jesus Sanchez, Senior Arquitecto de Soluciones para Sector Publico
Introducción
En México, la llegada del COVID-19 trajo grandes cambios a los que tuvimos que adaptarnos, la educación no fue la excepción, durante el mes de marzo de 2020 la Secretaria de Educación Pública (SEP) dio la instrucción del cierre en los planteles educativos, esto con la finalidad de evitar una mayor propagación del virus.
La Universidad IEU, necesitaba dar continuidad al plan de estudios a sus alumnos y docentes de manera virtual, así como entregar una plataforma integral donde se pudiera tener la identidad de la propia institución.
Mxmart (AWS Select Consulting Partner / Public Sector Partner), en conjunto con Universidad IEU, implementaron una plataforma interactiva para dar continuidad al plan de estudios de los alumnos luego de la llegada del Covid-19 a México. El plan de trabajo incluyó el diseño, desarrollo e integración de los diferentes sistemas y orígenes de datos, así como la generación de una arquitectura en AWS que fuera segura, eficiente, optimizada y escalable, capaz de interactuar con alrededor de 20,000 usuarios. Adicional a esto, el plan contempló la integración hacia sus diferentes plataformas LMS (Sistema de gestión de aprendizaje) para creación de contenido e-learning y la distribución de las actividades de formación académica.
El diseño, desarrollo e integración de la solución se llevó a cabo de manera nativa en los servicios de AWS, todo sobre una arquitectura segura, escalable y basada en las mejores prácticas. Se integraron servicios como AWS Amplify, AWS X-Ray, Amazon Aurora Serverless, Amazon CloudFront, Amazon API Gateway, AWS Lambda, Amazon CloudWatch, Amazon WAF, entre los principales servicios.
Retos
El trabajo en equipo que predominó en el proyecto fue clave para la generación de este, ya que los sistemas utilizados por varios años, así como los procesos internos de cada área lo hacían un reto muy interesante para integrarlo de manera adecuada.
Así mismo, la arquitectura diseñada debía contar con todos los estándares de seguridad, conectividad y autenticación de los usuarios, y al mismo tiempo ser automática y escalable para soportar las cargas de trabajo.
Se buscaba también que los usuarios pudieran identificarse con el ADN de la Institución, es decir, colores corporativos, logos, diseño del campus; la parte grafica jugo un papel muy importante no sólo en lo visual, sino también en lo funcional.
Velocidad: Para poder cumplir con este gran proyecto se analizó la utilización de los servicios de AWS Amplify el cual nos permitió iniciar rápidamente con el desarrollo del sistema, ya que nos permite utilizar múltiples lenguajes de desarrollo tanto en el área de frontend como en el backend, permitiendo que AWS se encargue de la generación de todos los servicios de backend necesarios para la ejecución de la solución y enfocando los esfuerzos del equipo en el desarrollo, diseño y experiencia.
Elasticidad: Al desarrollar utilizando AWS Amplify y utilizando lenguajes modernos de frontend así como de backend, se pudo hacer conexiones con múltiples sistemas a través de API’s, hacer conexión con múltiples bases de datos cada uno con diferente motor.
Otro de los puntos a destacar es la utilización de servicios como Amazon S3, en el cual se almacena el frontend y se despliega la lógica del sistema, el cual tiene almacenamiento prácticamente ilimitado con lo cual se eliminan limitaciones de los contenidos, así mismo la implementación de Amazon CloudFront el cual permite dar la misma experiencia a los alumnos que visitan el Campus Online desde cualquier parte del mundo, ya que utiliza los Edge Locations que se encuentran en múltiples sitios en todo el mundo.
Seguridad: La plataforma cuenta con múltiples capas de seguridad, entre estas capas se puede mencionar el servicio de Amazon CloudFront, que además de proporcionar el contenido de un punto más cercano al usuario, además nos genera una barrera de protección contra ataques de tipo DDoS distribuyendo las peticiones a lo largo de la infraestructura global de AWS.
Otro punto de seguridad es el que nos ofrece AWS WAF (Web Application Firewall) el cual protege a los puntos de conexión que deben hacer peticiones hacia API’s externas.
Uno de los puntos más importantes es la utilización de funciones AWS Lambda, las cuales son ejecutadas dentro de la seguridad de AWS y las cuales no son expuestas a internet, por lo cual el sitio es expuesto como páginas HTML dinámicas, reduciendo prácticamente a cero vulnerabilidades típicas de una aplicación dinámica.
Despliegue
La arquitectura fue diseñada en alta disponibilidad para desplegarse en una región que cuenta con seis zonas de disponibilidad (AZ), y hacerlo de manera automatizada.
Los servicios se encuentran generados dentro de un Amazon Virtual Private Cloud (Amazon VPC), aprovechando subredes públicas y privadas para temas de seguridad, así como una configuración con las mejores prácticas para las aplicaciones, bases de datos e información.
Se implementaron diversas capas de seguridad con servicios especializados, grupos de seguridad, roles, así como una integración hacía la plataforma para la autenticación de los usuarios a través de Onelogin el cual fue un requisito por parte del corporativo.
Datos
El campus online es un hub de información, en donde los alumnos pueden ver la información más relevante en su carrera, como sus cursos, su progreso en el mismo y sus calificaciones, pueden revisar su historial de pagos, verificación de su documentación, y de la misma forma poder interactuar con múltiples sistemas, sin la necesidad de saber el url de los sitios o tener que iniciar sesión de forma manual en cada uno de estos.
De esta forma el campus debe de comunicarse con múltiples sistemas por medio de API’s, Amazon API Gateway es otro de los principales servicios utilizados, además de la conectividad a múltiples bases de datos, las cuales mucha de esta información es generada en On Premises y en donde la conexión está basada en el servicio de AWS VPN Site to Site en donde contamos con una conexión privada, segura y encriptada, asegurando la transferencia de la información de forma segura.
Para que la información del origen fuera consistente, disminuyendo la latencia de transferencia de la información y minimizando cualquier tipo de downtime, se generó una arquitectura de servicios de base de datos en la nube de AWS, en donde pudiera tener la misma información en On Premises, está arquitectura consiste en instancias de base de datos en el Servicio de Amazon Aurora Serverless con un motor de base de PostgreSQL, Instancias de AWS RDS con SQL Server e Instancias Aurora Clúster para servicios de Business Intelligence y para mantener sincronizada las bases de datos On Premises con respecto a su contraparte en AWS, se utilizó el servicio de AWS Database Migration Service.
Aplicación
La aplicación está desarrollada utilizando las librerías de AWS Amplify, la cual nos permitió desarrollar el frontend con el Lenguaje de React y el desarrollo del backend utilizando funciones AWS Lambda en varios lenguajes como NodeJs y Python, utilizando el servicio de Aws API Gateway para la generación de múltiples APIs.
Conexión con múltiples Servicios de Base de datos como AWS RDS, Amazon Aurora Serverless.
Almacenamiento de los contenidos en el servicio de Amazon S3, exposición del sitio a nivel global por medio de AmazonCloudFront.
Seguridad de sus APIs publicas utilizando AWS WAF.
Arquitectura
Conclusiones
Los resultados obtenidos fueron una plataforma intuitiva con alta disponibilidad, escalabilidad y seguridad donde los más de 15,000 alumnos pueden interactuar con sus maestros para el seguimiento educativo de manera muy práctica. Se mejoró la experiencia de usuario respecto a la interfaz y las pantallas, así como una mayor administración de la solución y del contenido.
Sobre los autores
Dario Gomez es CEO de MXMart
Dimas Jesus Sanchez es Senior Arquitecto de Soluciones para Sector Publico
Gabriel Hernandez es Director de Tecnologia MXMART de Mexico