Educa Reality

Proyecto de decoupling de aplicación monolítica a arquitectura autoescalable en AWS

Cliente y servicio Cloud

Resumen ejecutivo

Educa Reality es una empresa especializada en el desarrollo de productos educativos basados en realidad aumentada (AR) y realidad virtual (VR) que tiene como objetivo hacer que el aprendizaje y la educación sean divertidos mediante el uso de las nuevas tecnologías.

La RA y la RV son tecnologías disruptivas en la educación que aportan valor añadido al alumno y al docente al incrementar los niveles de adquisición y retención de conocimientos, facilitando el desarrollo de habilidades y competencias básicas y transversales.

Educa Reality necesitaba transformar su plataforma Skoobi para mejorar la escalabilidad y reducir costos. ACKstorm realizó un proyecto de decoupling, manteniendo cambios mínimos en el código y migrando la infraestructura a una arquitectura autoescalable en AWS. Esto resultó en una reducción del 27% en costos mensuales, alta disponibilidad y capacidad de adaptación a las demandas de usuarios sin necesidad de grandes inversiones iniciales en hardware.

Soluciones

  • RDS For MySQL
  • Auto Scaling Grups
  • S3
  • EC2
  • EFS
  • EBS
  • CloudFront
  • Route 53
  • Elasticache for Redis
  • ELK
  • GitLab
  • Jenkins

Del reto al resultado

El reto

El buque insignia de Educa Reality es su plataforma Skoobi de aprendizaje online mediante retos educativos en realidad aumentada y realidad virtual para estudiantes de Primaria, Secundaria y Bachillerato.

Esta plataforma está desarrollada mediante el framework de Laravel y base de datos mysql y estaba corriendo sobre una única instancia EC2 de AWS en la que se realizaban escalados verticales agregando más CPU, memoria y/o recursos de E/S para adaptación de las cargas de trabajo requeridas.

Los principales retos solicitado por el cliente fueron:

1. Evitar Refactor del Código: La aplicación Skooby dispone de una arquitectura monolítica y la premisa principal del cliente fue realizar las mínimas modificaciones posibles en el código para adaptarla lo más posible a una arquitectura cloud native.

2. Flexibilidad: Necesitaban que su plataforma fuera escalable para permitir adaptarse a las cargas de trabajo cambiantes que estaba sufriendo.

3. Capacidad fija: Necesitaba eliminar la provisión de su plataforma empleando el sobredimensionamiento de la misma para poder adaptarse a los picos de demanda.

4. Reducción del tiempo de indisponibilidad: Evitar la indisponibilidad de la plataforma debido a los pico de usuarios concurrentes y a las paradas provocadas para la adaptación de la plataforma al escalado vertical.

5. Eficiencia de costes y de rentabilidad: Reducir el coste elevado de disponer de “Capacidades fijas” de infraestructura.

La solución tecnológica

Para conseguir cumplir con los motivos anteriormente descritos y con la principal premisa que era realizar el mínimo cambio de código posible, ACKstorm propuso un proyecto de decoupling de la aplicación monolítica para adaptarla a una arquitectura autoescalable de forma horizontal.

Para ello se propuso fasear el proyecto en 5 diferentes fases:

1. Migración de la base de datos a un servicio gestionado RDS.

2. Alojar las sesiones de los usuarios en el servicio Gestionado ElastiCache Redis.

3. Mover los estáticos a almacenamiento en S3.

4. Dockerizar (objetivo: automatizar CI/CD).

5. Escalado horizontal mediante ASG.

Para la elaboración de la fases 4 y 5 se implementó el STACK de MANAGEMENT de ACKstorm consistente en un servidor de logger para alojar todos los logs de la plataforma y un servidor Builder para la realización de las tareas de CI/CD de construcción de un Docker y su posterior deploy.

Después de desarrollar todas las fases, las mejoras proporcionadas fueron una plataforma autoescalable que se adapta de forma elástica a las demandas de carga de los usuarios.

EducaReality Architecture

El resultado obtenido

Se ha conseguido que la plataforma Skoobi autoescale de acuerdo a la demanda de recursos y necesidades del negocio en todo momento sin necesidad de realizar grandes inversiones iniciales en hardware ni cambios de código.

Además, se han reducido los costes debido al uso sostenido del hardware empleado pues la plataforma aumenta en instancias c5.large (2vCPU/4GB RAM) si el uso medio de CPU’s de todas las instancias es superior al 70% y se reducen si el uso de la CPU cae por debajo del 50 %. Se ha conseguido un ahorro mensual del 27%.

Por último, se ha incrementado la disponibilidad de:

  • Los SLA’s de 99,99% que ofrecen las instancias de EC2.
  • Uso de las sondas de Healthcheck de ACKstorm a los nodos desplegados.
  • Eliminación de las paradas al la hora de provisionar verticalmente el hardware necesario en cada momento.

Testimonial

Àlex Torrella

Cloud Consultant Leader en ACKstorm

«Colaborar con Educa Reality para transformar su plataforma Skoobi ha sido una experiencia reveladora. En ACKstorm, abordamos el reto de convertir su arquitectura monolítica en una solución cloud native autoescalable sin necesidad de un refactor significativo del código. Implementamos una arquitectura elástica y eficiente en costos, reduciendo los tiempos de inactividad y mejorando la disponibilidad. Esto ha permitido a Educa Reality adaptarse dinámicamente a las demandas de sus usuarios y reducir sus costos en un 27%.»

Compártelo con tu comunidad

¿Quieres saber más sobre este caso de uso u otros?

Nos enfocamos en las soluciones, para que puedas enfocarte en tus desarrollos.