Pomatio se encuentra en beta privada. ¡Mantente atento!

Infraestructura

Pomatio está alojado en una infraestructura de autoescalada personalizada de AWS (Amazon Web Services).

Nuestros sistemas han pasado de ser una pila LAMP tradicional a una arquitectura altamente escalable y desacoplada, utilizando colas de trabajo y aprovechando lo mejor de las tecnologías de AWS, en mejora continua.

Aquí te contamos los detalles más techies.

Usuarios 01

Los usuarios visitan tu web y ven su contenido en un abrir y cerrar de ojos. ¡Y entre un click y otro no tendrán que esperar más que un instante!

CDN 02

Los usuarios llegan al CDN (Content Delivery Network) de AWS CloudFront, que básicamente es una serie de servidores ubicados en diferentes partes del planeta que contienen todos los contenidos de tu web (textos, videos, imágenes, música, documentos, etc.) , para que los contenidos de tu sitio web sean servidos a los usuarios de una manera mucho más rápida y cercana a su ubicación (por ejemplo, si alguien visita tu web desde Chile, la información se descargará de un servidor cercano).

Balanceador de carga 03

Un balanceador de carga decide a qué servidor pedir la información de tu sitio web, y por lo tanto distribuye las solicitudes de los usuarios, en función de su ubicación geográfica, y también de la carga que tiene cada servidor en ese momento.

Autoescalado 04

Todo el código de Pomatio se replica en múltiples instancias (servidores) y, según va siendo necesario, a través de una configuración autoescalada con frontales web redundantes, se crean o eliminan 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 estos frontales gestionados por un auto-escalador aseguran un rendimiento continuo y ofrecen respuesta automatizada ante instancias caídas y picos de demanda.

Archivos 05

Unidad NFS (Network File System) para almacenamiento/propagación de archivos de aplicación y de usuario (archivos que subes a los medios de tu sitio web) a los frontales web.

En otras palabras, todos los archivos se almacenan en un sistema separado y optimizado.

Base de datos 06

Servidores de base de datos con Amazon Aurora (RDS), que permite que todos los datos de su sitio web (como textos, pedidos, usuarios, etc.) puedan ser utilizados y escalados en la nube. El servicio brinda capacidad de manera escalable mientras automatiza tareas como el aprovisionamiento de hardware, la configuración de la base de datos, la aplicación de parches y las copias de seguridad, y les brinda un rendimiento rápido, alta disponibilidad y seguridad.

Elasticache Redis 07

Elasticache Redis es un sistema de almacenamiento de datos en memoria increíblemente rápido que ofrece una latencia de menos de un milisegundo para aplicaciones en tiempo real.

Eventos cron 08

Los «eventos cron» son aquellas tareas que tu sitio 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 tenías programado, sincronizar tu sitemap.xml con Google Search Console…

Estos son procesados por un sistema llamado Cavalcade, que es un sistema escalable de colas de trabajos y cuenta con un runner, que es un servicio que monitorea constantemente en tiempo real los trabajos que tiene que ejecutar.

El runner revisa constantemente la base de datos en busca de nuevos trabajos y es responsable de generar, administrar y procesar trabajos cuando es su turno.

Todo esto se hace en instancias independientes de los encargados de procesar 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ódigo 09

Todos nuestros repositorios de código se encuentran en AWS CodeCommit , que es un servicio de control de código altamente escalable, administrado y seguro para alojar repositorios Git (sistema de control de versión de código) privados.

Actualizaciones 10

CodeDeploy automatiza las actualizaciones de software que lanzamos en Pomatio en todas las instancias de los diferentes servidores que tenemos alrededor del 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.

Despliegues 11

CodePipeline es un servicio de entrega continua que nos permite automatizar, junto con el 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 un cambio de código.

Entorno de pre-producción 12

Contamos con un entorno de staging (pre-producción) en una infraestructura con un frontal web y una base de datos independientes.

En esencia, todo el código pasa por este entorno de prueba, se testea, garantizamos que funciona como debería y luego pasa a producción.

Copias de seguridad 13

Se realizan copias de seguridad diarias de la base de datos mediante instantáneas. Las instantáneas se conservan durante los últimos 30 días.

En la instancia NFS (archivos que subes a los medios de tu web como imágenes, PDFs…) se realizan copias de seguridad diarias a través de snapshots. Las instantáneas se conservan durante los últimos 10 días y se toman a las 4:30 hora UTC.