Infraestructura de POM Standard
Todas las webs de POM Standard se alojan en una infraestructura autoescalada en AWS (Amazon Web Services) personalizada. A continuación te contamos los detalles más techies.
¿Cómo es la infraestructura cloud detrás de las webs de POM Standard?
Usuarios01
Los usuarios visitan tu web y ven tus contenidos en un abrir y cerrar de ojos. ¡Y entre un click y otro no va a tener que esperar nada!
CDN02
Llegan al CDN (Content Delivery Network o Red de Distribución de Contenido) de AWS CloudFront, que es básicamente una serie de servidores ubicados en diferentes puntos del planeta que contienen todos los contenidos de tu web (textos, vídeos, imágenes, música, documentos, etc.), de forma que sirven a los usuarios los contenidos de tu web de una forma mucho más rápida y cercana a su ubicación (si alguien visita tu web desde Chile la información se descargará desde un servidor cercano).
Balanceador de carga03
Un balanceador de carga decide a qué servidor pedirle la información de tu web, y por tanto reparte las peticiones de los usuarios, en función de su ubicación geográfica, y también de la carga que tenga cada servidor en ese momento.
Autoescalado04
Todo el código de POM Standard está replicado en múltiples instancias (servidores) y, a medida que va siendo necesario, mediante una configuración autoescalada con frontales web redundantes, se van creando o eliminando nuevas instancias automáticamente.
¿Qué significa esto? Que tu web, independientemente del tráfico que tenga, siempre estará lista y funcionará a toda velocidad, ya que éstos frontales manejados por un autoescalador aseguran un desempeño continuo y ofrecen respuesta automatizada ante instancias caídas y picos de demanda.
Ficheros05
Unidad NFS (Network File System) para almacenamiento/propagación de ficheros de aplicación y usuario (archivos que vas subiendo a los medios de tu web) a los frontales web.
Es decir, todos los archivos se almacenan en un sistema independiente y optimizado para ello.
Base de datos06
Servidor de la base de datos con Amazon Aurora (RDS), que permite que todos los datos de tu web (lo que no son archivos, como los textos, pedidos, usuarios, etc.) se puedan utilizar y escalar en la nube. El servicio suministra capacidad de forma escalable al mismo tiempo que automatiza tareas como el aprovisionamiento de hardware, configuración de bases de datos, la implementación de parches y la creación de copias de seguridad, y les da un rendimiento rápido, alta disponibilidad y seguridad.
Elasticache Redis07
Elasticache Redis es un sistema de almacén de datos en memoria increíblemente rápido que ofrece una latencia inferior a un milisegundo para aplicaciones en tiempo real.
Eventos de cron08
Los «eventos de cron» son aquellas tareas que tu web ejecuta en segundo plano, como enviar un email de notificación (a través de Amazon SES o Simple Email Service), renovar una suscripción, publicar un post que habías programado, sincronizar tu sitemap.xml con Google Search Console…
Éstos se procesan mediante un sistema llamado Cavalcade, que es un sistema de cola de trabajos escalable, que dispone de un runner, que se trata de un servicio que supervisa constantemente en tiempo real los trabajos que le toca ejecutar.
El runner comprueba constantemente la base de datos en busca de nuevos trabajos, y es responsable de generar, gestionar y procesar los trabajos cuando les toca su turno.
Todo esto se hace en instancias independientes a las encargadas del procesamiento de la web, también de forma autoescalada, pero completamente separadas, garantizando que todo lo que debe suceder en segundo plano sucede, y cuando debe suceder.
Código09
Todos nuestros repositorios de código están en AWS CodeCommit, que es un servicio de control de código seguro, administrado y de alta escalabilidad para alojar repositorios de Git (sistema de control de versiones de código) privados.
Actualizaciones10
CodeDeploy automatiza las actualizaciones de software que vamos lanzando en POM Standard en todas las instancias de los diferentes servidores que tenemos en todo el mundo, y facilita el lanzamiento rápido de nuevas funcionalidades, y nos permite evitar tiempos de inactividad durante la implementación de una actualización.
Despliegues11
CodePipeline es un servicio de entrega continua que nos permite automatizar, junto al punto anterior, actualizaciones rápidas y fiables, automatizando las fases de compilación, prueba e implementación del proceso de lanzamiento cada vez que se realiza una modificación en el código.
Entorno de pre-producción12
Disponemos de un entorno de staging (pre-producción) en una infraestructura con frontal web y base de datos independientes.
En esencia, todo el código pasa por este entorno de staging (pre-producción), es probado, garantizamos que funciona como debe, y después sube a producción.
Copias de seguridad13
En la base de datos se realizan backups diarias mediante snapshots. Los snapshots se retienen durante los últimos 30 días.
En la instancia NFS (archivos que vas subiendo a los medios de tu web como imágenes, PDFs…) se realizan backups diarias mediante snapshots. Los snapshots se retienen durante los últimos 10 días, y se realizan en horario 4:30 UTC.
¿Tienes dudas?
Si tienes dudas o quieres comentar detalles técnicos, simplemente escríbenos y nos encantará leerte y charlar.