IT & Engineering

Mailgun no Performance Cloud Servers

Esta publicação foi feita em 28 de agosto de 2014.
Até pouco tempo atrás, o Mailgun ficava em um ambiente de colocation gerenciado, hospedado pela nossa empresa controladora, a Rackspace, usando servidores bare metal.

Imagem para Mailgun no Performance Cloud Servers

Esta publicação foi feita em 28 de agosto de 2014.

Até pouco tempo atrás, o Mailgun ficava em um ambiente de colocation gerenciado, hospedado pela nossa empresa controladora, a Rackspace, usando servidores bare metal. Esta decisão remonta a muitos dos mesmos motivos filosóficos pelos quais a Rackspace lançou OnMetal servidores em julho. Não tínhamos segurança para implantar o Mailgun na nuvem pública, dada a confiabilidade e o desempenho com os quais normalmente é preciso lidar no desenvolvimento. Isso mudou quando a Rackspace lançou o Performance Cloud Servers em novembro de 2013.

Neste post, daremos um panorama do nosso raciocínio por trás da mudança e de como o desempenho da nossa infraestrutura mudou como resultado.

Colocation gerenciado

Estávamos bem satisfeitos com nossa implantação de colocation gerenciado, e não somos os únicos. Há muitos argumentos a favor do uso de servidores dedicados em vez da nuvem, mas a maior vantagem é ter controle total sobre o seu hardware e redes, o que não pode ser alcançado por implantações em nuvem (ainda). Outros argumentos contra o uso da nuvem em vez de servidores dedicados incluem confiabilidade e desempenho. Existe a percepção de que a nuvem é menos robusta e tem menor desempenho quando se trata de cargas de trabalho com uso intensivo de E/S.

Colocation gerenciado

Uma implantação típica do Mailgun seria mais ou menos assim:

Dedicated-1

Neste diagrama, a maior parte do tráfego atinge um par de balanceadores de carga F5 5000s de alta disponibilidade (HA), que roteia todo o tráfego para nossos servidores de API dedicados.

Balanceadores de carga F5

Estes balanceadores de carga F5 são servidores de hardware de alto desempenho

big-ip-5000-thumb-1

Eles são capazes de lidar com:

  • Solicitações L7 por segundo: 750 mil
  • Conexões L4 por segundo: 350 mil
  • Solicitações HTTP L4 por segundo: 3,5 milhões
  • Conexões L4 simultâneas máximas: 24 milhões
  • Vazão: 30 Gbps/15 Gbps L4/L7

Além disso, essas máquinas lidam com terminação SSL e são capazes de mitigar alguns ataques DDOS.

R720

Os Dell R720s são a força de trabalho do Mailgun, usados como bancos de dados e servidores de processamento. Eles são equipados com 64 GB de RAM, uma ou várias unidades SAS de 15 mil RPM, dependendo da configuração, e uma ou duas NICs de 10 Gb/s.

r720-1

Nuvem

Os servidores em nuvem são usados para tarefas auxiliares, como criação de logs, backups e execução de vários trabalhos, mas 90% do ambiente estava localizado em hardware dedicado.

No geral, a equipe do Mailgun estava satisfeita com o cenário atual. Então, por que migramos?

Motivos para migrar

Desempenho

Existem diferentes nuvens disponíveis, mas estávamos mais empolgados com uma em particular – o Rackspace Performance Cloud. Aqui estão os benchmarks comparando o desempenho dos servidores da geração anterior com os novos Performance Cloud Servers, mostrando uma enorme melhoria:

unixbench_30gb_8procs-3982442bc387018f1b2edb22d0500c86

Esses benchmarks indicam que podemos começar a usar Cloud Servers para hospedar nossos clusters do Cassandra, já que os SSDs estão proporcionando um grande aumento de velocidade:

fio_IOPS-a15fa97dd4d4555793cfdaabb9eac391

Além disso, as novas máquinas em nuvem têm um desempenho superior aos R720s padrão que vínhamos configurando em nossos ambientes de colocation gerenciado. Por exemplo: a pontuação do UnixBench para nossos R720s é 1.219 em comparação com impressionantes 4.876 nos novos Performance Cloud Servers.

API

Os Rackspace Cloud Servers podem ser implantados rapidamente e operados por meio de uma API o que realmente ajuda a automatizar o provisionamento, o escalonamento automático e todas as vantagens habituais de operar na nuvem. (Nota: o provisionamento rápido baseado em API está disponível para servidores bare metal por meio da solução OnMetal da Rackspace. Esperamos expandir nossa infraestrutura com esses servidores potentes no futuro.)

Preocupações

Ainda tínhamos duas grandes preocupações que nos impediam de migrar para a nuvem.

Rede

A rede em nuvem pode ser um gargalo, especialmente quando se trata de troca de pacotes de alta frequência. Vimos enormes quedas de desempenho ao usar o Redis quando atingíamos de 5 a 6 mil pacotes por segundo.

Além disso, a vazão também era uma grande preocupação e 1 Gb/s não era suficiente.

Esse era um grande obstáculo para nós até que a Rackspace lançou a rede dupla, vinculada e não virtualizada de 10 Gbps para Performance Cloud Servers, além de NICs separadas para o CBS. Nossos benchmarks mostraram que a nova rede é robusta e não sofre com as degradações que afetavam a rede definida por software anterior.

Confiabilidade

A internet tem muitas histórias de instabilidade na nuvem que derrubaram empresas inteiras, então é um pouco assustador depender disso. No entanto, a equipe de Cloud Servers prometeu uma confiabilidade robusta em relação aos provedores de nuvem típicos, então decidimos testar.

Novo ambiente do Mailgun

HP

Nosso novo ambiente usava o mesmo tipo de balanceadores de carga, mas, neste caso, conectados pelo RackConnect, da Rackspace, roteando todo o tráfego diretamente para a nuvem.

Rede

Passamos várias semanas fazendo testes de carga nesse link, acessando nossos servidores de API HTTP e SMTP hospedados na nuvem, e não notamos nenhuma queda de desempenho.

Confiabilidade

Uma implantação típica do Performance Cloud Servers do Mailgun usa cerca de cem servidores por região. Nos últimos três meses, dois servidores caíram devido a problemas com o servidor de host, o que foi quase o mesmo que enfrentávamos em nossos servidores dedicados, onde cerca de uma máquina a cada 100 caía todo mês.

Devemos observar, no entanto, que o Mailgun usa perfis grandes e extragrandes (64 GB e 128 GB) de Performance Cloud Servers, então você pode observar resultados diferentes se escolher perfis menores.

Desvantagens

Uma desvantagem que vimos até agora é a política da Rackspace para manutenções em todo o data center. Isso pode exigir que sua aplicação esteja em vários data centers desde o início se você não puder tolerar tempo de inatividade, pois pode resultar em inatividade de vários segundos para uma parte significativa de um ambiente. Passamos por uma manutenção dessas em abril, mas, felizmente, temos vários ambientes para usar como contingência.

Resultados gerais

No geral, ficamos muito satisfeitos com a nossa migração. Agora podemos usar a API do Rackspace Cloud para provisionar nossos servidores, com a vantagem adicional de uma frota com melhor desempenho em comparação com nosso colocation gerenciado.