
De la aplicación local a la nube: arquitectura de una plataforma para una clínica de acupuntura
Exploro la arquitectura de un prototipo web para una clínica de acupuntura, desde su desarrollo local hasta su despliegue en AWS Lightsail, integrando Flask, MySQL y MultiChain.
De la aplicación local a la nube: arquitectura de una plataforma para una clínica de acupuntura
En un artículo anterior compartí cómo desarrollé un prototipo web para digitalizar los procesos de una clínica de acupuntura y cómo incorporé Blockchain como mecanismo complementario para la trazabilidad de los expedientes clínicos.
Una vez que la aplicación estaba funcionando en mi entorno local, surgió una nueva pregunta:
¿Cómo llevar el prototipo fuera de mi computadora y probarlo en un entorno real?
Para responderla, decidí desplegar la solución en AWS utilizando Amazon Lightsail.
La arquitectura
La solución está compuesta por diferentes tecnologías que cumplen funciones específicas dentro del sistema.
En el lado de la aplicación se utilizó Python con Flask para implementar la lógica del sistema, mientras que MySQL se encargó del almacenamiento de la información.
Para la trazabilidad de los expedientes se incorporó una red privada de Blockchain utilizando MultiChain.
La arquitectura general puede representarse de la siguiente manera:

La idea principal fue mantener una separación entre la información clínica y los registros utilizados para verificar su integridad.
Los expedientes permanecen en MySQL, mientras que MultiChain se utiliza como una capa complementaria para registrar hashes y evidencias de las transacciones.
¿Por qué AWS Lightsail?
Para el entorno de pruebas necesitaba algo más que ejecutar la aplicación localmente. Quería contar con un servidor accesible remotamente y con un entorno similar al que tendría una aplicación desplegada en la nube.
Elegí AWS Lightsail principalmente por tres razones:
- Facilidad de implementación: permitió crear y configurar rápidamente un servidor Ubuntu.
- Acceso remoto: la aplicación podía ser consultada desde Internet.
- Costos predecibles: para un prototipo y un entorno de pruebas, contar con recursos definidos facilitó controlar el costo de la infraestructura.
La elección no significa que Lightsail sea necesariamente la mejor opción para una implementación de producción a gran escala. Para el alcance del prototipo, buscaba principalmente una infraestructura sencilla que me permitiera validar la solución fuera del entorno local.
Del desarrollo local al despliegue
Uno de los retos fue trasladar una aplicación que funcionaba en mi entorno de desarrollo a un servidor en la nube.
El proceso implicó configurar el servidor Ubuntu, instalar las dependencias necesarias y preparar los diferentes componentes de la aplicación para ejecutarse en el nuevo entorno.
La aplicación Flask se ejecutó mediante Gunicorn, mientras que Nginx se utilizó como servidor web y punto de entrada para las solicitudes.
Esto permitió pasar de un escenario como:

a un entorno accesible remotamente:

¿Funcionó a la primera?
No.
Durante las pruebas aparecieron algunos errores de lógica y problemas que no se habían presentado de la misma manera durante el desarrollo local.
Esto fue una parte importante del proceso porque el despliegue permitió identificar diferencias entre ambos entornos y realizar ajustes en la aplicación.
Después de corregir los errores, las pruebas fueron ejecutadas nuevamente para verificar el funcionamiento del prototipo.
En total se evaluaron 112 casos de prueba, obteniendo resultados favorables después de las correcciones.
¿Por qué esta arquitectura?
La arquitectura fue diseñada de acuerdo con las necesidades del prototipo y no pensando desde el principio en una infraestructura de producción a gran escala.
Por eso, la solución utiliza un servidor virtual con recursos definidos y mantiene los diferentes componentes dentro de una arquitectura relativamente sencilla.
Sin embargo, el despliegue también permitió identificar una siguiente pregunta:
¿Esta arquitectura sería la adecuada si el sistema creciera?
Probablemente no sería suficiente mantener exactamente la misma infraestructura si aumentara considerablemente el número de usuarios, las operaciones o los requerimientos de disponibilidad.
Una siguiente etapa sería evaluar otras alternativas dentro de AWS, incluyendo una posible arquitectura serverless, y comparar aspectos como costo, escalabilidad, mantenimiento y complejidad.
Por ahora, AWS Lightsail cumplió su objetivo principal: permitirme llevar el prototipo fuera del entorno local y validar su funcionamiento en la nube.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article