Caso: El negocio cuenta con una aplicación web móvil (Web App) que genera ingreso a través de suscripciones. El sistema tiene una base geográfica en la que se georeferencían ciertos recursos y sus propiedades. La información se mantiene en una base de datos geográfica -residente en un centro de datos físico- y periódicamente se extrae para crear un caché en la aplicación, con el objetivo de minimizar los tiempos de respuesta de la Web App.
Como la mayoría de las aplicaciones Web, ésta sigue un proceso casi continuo de mejora. Los ciclos de mejora, que pueden contemplar nuevas funcionalidades y/o correcciones a errores, tienen una vida de entre una semana y dos meses, dependiendo de su alcance. Al concluir, se cuenta con una nueva versión que, ya probada, se pone en producción.
El acceso a la aplicación móvil, en términos de número de usuarios concurrentes, es muy variable y poco predecible, en rangos de unos cientos, hasta varios miles. Un objetivo importante es que el tiempo de respuesta de la aplicación no se degrade notoriamente con el aumento en la carga de trabajo.
Solución:
La solución que se integró en AWS contempla los siguiente puntos:
El personal de la empresa se conecta al centro de datos virtual a través de VPN. En el centro de datos hay 2 redes, una privada en el segmento 10.16.0.0/24 y una pública (a través de un Gateway), en el segmento 10.16.1.0/24. De esta forma, sólo el servidor de VPN, el extractor de datos geográficos (xtract) y el balanceador de carga (LB) están expuestos en Internet.
Los trabajos de mejora y corrección de la aplicación se llevan a cabo en un servidor “dev”, accesible solamente en la red privada. Este servidor puede ser prendido y apagado bajo demanda, ahorrando así los costos de CPU no requeridos cuando no hay desarrollo.
Igualmente, la extracción de datos geográficos que se ejecuta semanalmente y que procesa datos durante aproximadamente 72 horas, permanece apagado el resto del tiempo, con el ahorro correspondiente.
“xtract” actualiza los datos de “app”. Después de una actualización de app, se crea una imagen virtual que será posteriormente utilizada para lanzar instancias de servidores de la WebApp (rt1 ... rtN).
“rt1” ... “rtN” son instancias del servidor de la WebApp que se generan en función de la carga de usuarios. El balanceador de carga LB está programado para automáticamente crear o eliminar instancias de app en función del tráfico y/o de la carga del CPU en las instancias rt1 ... rtN. El mínimo de instancias disponibles es 2, de manera a que en el escenario de mínima carga y de una eventual falla en uno de los servidores, quede el otro para responder durante el tiempo que tome el balanceador de carga para detectar la falla y crear una instancia de reemplazo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis lacinia, magna a rutrum tincidunt, sapien tellus pharetra sapien, nec pulvinar magna nunc ut erat. Etiam finibus, nisl id elementum tristique, dui nibh dignissim turpis, nec accumsan ex magna vel libero. Curabitur ut venenatis magna. Donec ut orci sit amet augue molestie fringilla non vel diam. Nunc tincidunt nisi in scelerisque congue. Vestibulum consectetur euismod ante in porta. Phasellus vitae lectus arcu. Phasellus posuere malesuada purus nec bibendum. Phasellus ultricies magna purus. Sed semper, eros non ullamcorper ullamcorper, nunc ipsum suscipit augue, ac scelerisque turpis lacus id dui. Suspendisse potenti.
Para más información: contáctenos...