IT & Engineering

Mailgun en Performance Cloud Servers

Esto se publicó el 28 de agosto de 2014.
Hasta hace poco, Mailgun estaba en un entorno de colocación gestionada alojado por nuestra empresa matriz, Rackspace, que utilizaba servidores bare metal.

Imagen para Mailgun en Performance Cloud Servers

Esto se publicó el 28 de agosto de 2014.

Hasta hace poco, Mailgun estaba en un entorno de colocación gestionada alojado por nuestra empresa matriz, Rackspace, que utilizaba servidores bare metal. Esta decisión se remonta a muchas de las mismas razones filosóficas por las que Rackspace lanzó OnMetal servidores en julio. No nos convencía la idea de desplegar Mailgun en la nube pública dada la fiabilidad y el rendimiento que normalmente hay que compensar a nivel de ingeniería. Esto cambió cuando Rackspace lanzó Performance Cloud Servers en noviembre de 2013.

En este artículo te explicamos el motivo del cambio y cómo ha mejorado el rendimiento de nuestra infraestructura como resultado.

Colocación gestionada

Estábamos bastante contentos con nuestro despliegue de colocación gestionada, y no somos los únicos. Hay muchos argumentos a favor de usar servidores dedicados en lugar de la nube, pero la mayor ventaja es tener un control total sobre tu hardware y tus redes, algo que (todavía) no se puede lograr con los despliegues en la nube. Otros argumentos en contra de usar la nube frente a los dedicados incluyen la fiabilidad y el rendimiento. Existe la percepción de que la nube es menos robusta y ofrece un menor rendimiento cuando se trata de cargas con un uso intensivo de E/S.

Colocación gestionada

Un despliegue habitual de Mailgun sería así:

Dedicated-1

En este diagrama, la mayor parte del tráfico llega a un par de balanceadores de carga F5 5000 de alta disponibilidad (HA), que enrutan todo el tráfico hacia nuestros servidores API dedicados.

Balanceadores de carga F5

Estos balanceadores de carga F5 son servidores de hardware de gran rendimiento.

big-ip-5000-thumb-1

Son capaces de procesar:

  • Peticiones L7 por segundo: 750 000
  • Conexiones L4 por segundo: 350 000
  • Peticiones HTTP L4 por segundo: 3,5 millones
  • Conexiones L4 simultáneas máximas: 24 millones
  • Rendimiento: 30 Gbps/15 Gbps en L4/L7

Además, estas bestias se encargan de la terminación SSL y son capaces de mitigar algunos ataques DDOS.

R720

Los Dell R720 son los caballos de batalla de Mailgun, utilizados tanto como bases de datos como servidores de procesamiento. Están equipados con 64 GB de RAM, una o varias unidades SAS de 15 000 RPM, según la configuración, y una o dos tarjetas de red (NIC) de 10 Gb/s.

r720-1

Nube

Los servidores en la nube se usan para tareas auxiliares, como el registro, la creación de copias de seguridad y la ejecución de varios trabajos; el 90 % del entorno se encontraba en hardware dedicado.

En general, el equipo de Mailgun estaba satisfecho con la situación actual. Entonces, ¿por qué decidimos migrar?

Razones para migrar

Rendimiento

Hay diferentes nubes disponibles, pero nos entusiasmó especialmente una en concreto: Rackspace Performance Cloud. Aquí tienes los bancos de pruebas que comparan el rendimiento de los servidores de la generación anterior con los nuevos Performance Cloud Servers y que muestran una enorme mejora:

unixbench_30gb_8procs-3982442bc387018f1b2edb22d0500c86

Estos bancos de pruebas indican que podemos empezar a utilizar Cloud Servers para alojar nuestros clústeres de Cassandra, ya que las unidades SSD añaden un enorme aumento de velocidad:

fio_IOPS-a15fa97dd4d4555793cfdaabb9eac391

Además, las nuevas máquinas en la nube ofrecen un mayor rendimiento que los R720 estándar que hemos estado configurando en nuestros entornos de colocación gestionada. P. ej. La puntuación de UnixBench para nuestros R720 es de 1219, frente a la impresionante cifra de 4876 en los nuevos Performance Cloud Servers.

API

Los servidores en la nube de Rackspace se pueden desplegar rápidamente y operar mediante una API lo que realmente ayuda a automatizar el aprovisionamiento, escalar automáticamente y disfrutar de todas las ventajas habituales de operar en la nube. (Nota: el aprovisionamiento rápido basado en API está disponible para servidores bare metal a través de los servicios OnMetal de Rackspace. Esperamos ampliar nuestra infraestructura con esos potentes servidores en el futuro).

Inquietudes

Aún teníamos dos inquietudes importantes que nos impedían migrar a la nube.

Redes

Las redes en la nube pueden ser un cuello de botella, sobre todo cuando se trata del intercambio de paquetes de alta frecuencia. Hemos visto enormes degradaciones del rendimiento a la hora de utilizar Redis cuando alcanzábamos los 5000-6000 paquetes por segundo.

Además, el rendimiento también era un problema importante y 1 Gb/s no era suficiente.

Esto supuso un gran obstáculo para nosotros hasta que Rackspace lanzó una red dual, unida y no virtualizada de 10 Gbps para los Performance Cloud Servers, además de tarjetas de red separadas para CBS. Nuestros bancos de pruebas demostraron que la nueva red es robusta y no sufre las degradaciones que tenía la red de software anterior.

Fiabilidad

En Internet hay muchas historias de inestabilidad en la nube que arruinan negocios enteros, por lo que da un poco de miedo depender de ello. Sin embargo, el equipo de Cloud Servers prometía una gran fiabilidad, en comparación con los típicos proveedores de la nube, así que decidimos probarlo.

Nuevo entorno de Mailgun

HP

Nuestro nuevo entorno utilizaba el mismo tipo de balanceadores de carga, pero en este caso, conectados a través de RackConnect de Rackspace, y enrutando todo el tráfico directamente a la nube.

Redes

Hemos pasado varias semanas haciendo pruebas de carga en este enlace, enviando peticiones a nuestros servidores SMTP y API HTTP ubicados en la nube, y no hemos notado ninguna degradación del rendimiento.

Fiabilidad

Un despliegue típico de Mailgun en los Performance Cloud Servers utiliza alrededor de cien servidores por región. En los últimos tres meses se cayeron dos servidores debido a problemas con el servidor anfitrión, lo que equivale aproximadamente a lo que experimentábamos en nuestros servidores dedicados, donde se caía alrededor de 1 máquina de cada 100 al mes.

Sin embargo, cabe destacar que Mailgun utiliza tamaños grandes y extragrandes (64 GB y 128 GB) de los Performance Cloud Servers, por lo que podrías observar resultados diferentes si eliges opciones más pequeñas.

Inconvenientes

Un inconveniente que hemos visto hasta ahora es la política de Rackspace para los mantenimientos de todo el centro de datos (DC). Esto puede requerir que tu aplicación sea multi-DC desde el principio si no puedes tolerar tiempos de inactividad, ya que podría provocar cortes de varios segundos en una gran parte de tu entorno. En abril sufrimos uno de estos mantenimientos, pero afortunadamente tenemos varios entornos a los que recurrir.

Resultados generales

En general, estamos muy contentos con la migración. Ahora podemos usar la API de Rackspace Cloud para aprovisionar nuestros servidores, con la ventaja añadida de tener una flota con mejor rendimiento en comparación con nuestra colocación gestionada.