El pasado lunes 15 de marzo, en Ecuador se iba a dar acceso a una página web para registrarse para recibir la vacuna en contra de COVID-19 (www.planvacunarse.ec). Si eres de Ecuador probablemente ya sabes lo que pasó después, la página paso caída todo el día. El tema me pareció interesante traerlo a esta publicación; primero, porque es de interés nacional y, segundo, porque cada día la tecnología afecta más y más a nuestras vidas y la de todos los que nos rodean.
Personalmente, pienso que la vacunación no debía haberse hecho con registro previo; uno, porque el acceso a esta opción está restringiendo a mucha gente que no tiene Internet, computadora ni conocimientos para usar la página web; y dos, porque creo que el gobierno debería saber lo suficiente de todos sus habitantes vía Registro Civil, IESS, escuelas, etc. como para hacer un listado y publicar los nombres de las personas elegibles en cada fase.
Si no era una opción hacerlo de esa forma, ahora sí vamos a la parte técnica que también deja mucho que desear. No tengo todos los requerimientos que debe cumplir el sistema de registro para vacunas, pero vamos a asumir los siguientes requerimientos funcionales:
Requerimiento informativo:
Requerimiento de registro:
Vamos a pretender que debemos diseñar un software que soporte estos requerimientos funcionales. Para un desarrollador junior es fácil tomar la herramienta que usa todos los días y hacer que cumpla con estos dos requerimientos. En el caso de quien se encargó de esta página su herramienta fue Wordpress para el sitio informativo y el plugin de formularios para el registro funciona para algunos cientos de visitas concurrentes, dependiendo de las características del servidor, pero para millones de no-vacunados simplemente no.
Como arquitectos de software debemos hilar más fino y obtener requerimientos que no están expresados explícitamente en los anteriores, temas como: quiénes van a usar este software, desde qué plataformas, con qué tipos de red, a cuántas personas podemos dar servicio al mismo tiempo, cuál es el nivel de servicio mínimo esperado, etc., etc.
Escoger la arquitectura correcta se trata de analizar y tomar decisiones con todos los requerimientos explícitos e implícitos que el software debe tener. Es probable que las herramientas que tienes a disposición entren en conflicto con los requerimientos de la arquitectura y eso está bien, no siempre vas a poder usar las herramientas que te gustan o con las que te sientes cómodo.
En mi opinión profesional, este sitio de registro de vacunación debió haberse hecho con la siguiente arquitectura:
- Generador de sitios estáticos, como hugo, gatsby o nextjs para satisfacer el primer requerimiento informativo. Esta opción tiene la ventaja de que puedes usar servicios de distribución de contenido y cache que han sido probados por empresas globales para servir sus sitios web. Servicios como AWS Cloudfront o Cloudfare son obligatorios en este tipo de ambientes en el que esperamos millones de visitantes al mismo tiempo. Dentro del mismo sitio estático se pudo haber tenido una aplicación de página única (single page application) para manejar el registro y usar una API hacia el backend para guardar la información.
- Funciones serverless, como AWS lambda o Serverless computing de Google Cloud para cumplir con el segundo requerimiento de registro. Esto permite tener flexibilidad a la hora de escalar la parte dinámica del sitio, como es recibir y guardar información para futuro. Este tipo de ambientes permiten recibir gran cantidad de tráfico sin manejar servidores.
- Y para la parte de guardar la información, una base de datos SQL no tiene mucho sentido, ya que el requerimiento principal de guardar la información lo más rápido posible no es una característica de estas bases, para eso usaría una base mucho más eficiente como DynamoDB en AWS que está diseñada para manejar escalas de trillones de peticiones por día y 20 millones de peticiones por segundo. Es decir, todo el Ecuador se pudo haber registrado sin problemas en poco tiempo.
Esto solo fue un experimento mental, estoy seguro de que hay muchos más requerimientos internos, como validar cédulas con el Registro Civil, validar emails, etc. Para la brevedad del artículo decidí dejarlos afuera. Por otro lado, estoy seguro de que hay otras herramientas con las que se puede construir una arquitectura correcta, ¿ustedes qué hubieran usado?
(*) Ingeniero de Software por la Escuela Politécnica del Ejército, como profesional independiente presta servicios de consultoría en análisis y desarrollo de aplicaciones a empresas locales e internacionales y tiene más de 18 años de experiencia atendiendo las necesidades técnicas de diferentes sectores como telecomunicaciones, banca, salud, legal, transporte, recursos humanos y nómina entre otros. marcelo.andrade.r@gmail.com El artículo original puede revisarlo aquí: https://marceloandrader.github.io/blog/2021/03/16/escoger-la-arquitectura-correcta/.
Revista Gestión no se responsabiliza por las opiniones ni comentarios publicados por sus colaboradores en este espacio, quienes son los responsables del contenido difundido. Si va a hacer uso de este artículo, por favor cite la fuente original. Artículo de opinión (O).
Encuentre contenido relacionado en nuestro archivo histórico:
¿Una segunda metida de mano al Banco Central?
El coronavirus nos deja lecciones para la vida
El costo social de la pandemia
¿Cómo debe negociar el Ecuador un nuevo TBI con EEUU?
Last modified on 2021-03-19