IT & Engineering

Mailgun sur les serveurs Performance Cloud

Cet article a été publié le 28 août 2014.
Jusqu'à récemment, Mailgun se trouvait dans un environnement de colocation infogéré hébergé par notre société mère, Rackspace, sur des serveurs physiques.

Image pour Mailgun sur les serveurs Performance Cloud

Cet article a été publié le 28 août 2014.

Jusqu’à récemment, Mailgun se trouvait dans un environnement de colocation infogéré hébergé par notre société mère, Rackspace, sur des serveurs physiques. Cette décision repose en grande partie sur les mêmes fondements philosophiques qui ont poussé Rackspace à lancer OnMetal ses serveurs en juillet. Nous ne nous sentions pas à l’aise à l’idée de déployer Mailgun sur le cloud public, compte tenu de la fiabilité et des performances qu’il faut généralement prendre en compte lors de la conception. La situation a changé lorsque Rackspace a déployé les serveurs Performance Cloud en novembre 2013.

Dans cet article, nous allons vous expliquer les raisons de ce changement et son impact sur les performances de notre infrastructure.

Colocation infogérée

Nous étions plutôt satisfaits de notre déploiement en colocation infogérée, et nous ne sommes pas les seuls à l’être. Il existe de nombreux arguments en faveur de l’utilisation de serveurs dédiés plutôt que du cloud, mais le principal avantage reste le contrôle total de son matériel et de ses réseaux, ce qui n’est pas (encore) possible avec les déploiements sur le cloud. D’autres arguments contre l’utilisation du cloud par rapport aux serveurs dédiés concernent la fiabilité et les performances. Le cloud est perçu comme étant moins robuste et moins performant lorsqu’il s’agit de charges nécessitant de nombreuses opérations d’E/S.

Colocation infogérée

Un déploiement classique de Mailgun ressemble à ceci :

Dedicated-1

Sur ce schéma, la majorité du trafic arrive sur une paire d’équilibreurs de charge F5 5000 hautement disponibles (HA), qui redirige l’ensemble du trafic vers nos serveurs d’API dédiés.

Équilibreurs de charge F5

Ces équilibreurs de charge F5 sont des serveurs matériels particulièrement performants.

big-ip-5000-thumb-1

Ils sont capables de gérer :

  • Requêtes L7 par seconde : 750 000
  • Connexions L4 par seconde : 350 000
  • Requêtes HTTP L4 par seconde : 3,5 M
  • Connexions L4 simultanées maximales : 24 M
  • Débit : 30 Gb/s/15 Gb/s L4/L7

En outre, ces machines gèrent la terminaison SSL et sont capables d’atténuer certaines attaques DDoS.

R720

Les serveurs Dell R720 sont les chevaux de bataille de Mailgun, utilisés à la fois comme bases de données et comme serveurs de traitement. Ils sont équipés de 64 Go de RAM, d’un ou plusieurs disques SAS 15K RPM selon la configuration, et d’une ou deux cartes réseau à 10 Gb/s.

r720-1

Cloud

Les serveurs cloud sont utilisés pour des tâches auxiliaires, telles que la journalisation, la création de sauvegardes et l’exécution de diverses tâches. 90 % de l’environnement se trouvait sur du matériel dédié.

Globalement, l’équipe de Mailgun était satisfaite de la situation. Alors, pourquoi avoir migré ?

Les raisons de la migration

Performance

Il existe différents clouds disponibles, mais un en particulier a retenu notre attention, à savoir Rackspace Performance Cloud. Voici les tests de performance qui comparent les serveurs de la génération précédente aux nouveaux serveurs Performance Cloud et qui montrent une nette amélioration :

unixbench_30gb_8procs-3982442bc387018f1b2edb22d0500c86

Ces tests de performance indiquent que nous pouvons commencer à utiliser des serveurs cloud pour héberger nos clusters Cassandra, car les disques SSD augmentent considérablement la vitesse :

fio_IOPS-a15fa97dd4d4555793cfdaabb9eac391

De plus, les nouvelles machines cloud sont plus performantes que les serveurs R720 standard que nous avions installés dans nos environnements de colocation infogérée. Par ex. le score UnixBench de nos serveurs R720 est de 1 219, contre un score impressionnant de 4 876 sur les nouveaux serveurs Performance Cloud.

API

Les serveurs Rackspace Cloud peuvent être déployés rapidement et exploités à l’aide d’une API ce qui permet d’automatiser véritablement le provisionnement, la mise à l’échelle automatique et d’offrir tous les avantages habituels du fonctionnement sur le cloud. (Remarque : le provisionnement rapide via l’API est disponible pour les serveurs physiques via l’offre OnMetal de Rackspace. Nous avons hâte de pouvoir compléter notre infrastructure avec ces puissants serveurs à l’avenir.)

Préoccupations

Nous avions encore deux préoccupations majeures qui nous empêchaient de migrer vers le cloud.

Réseau

Les réseaux cloud peuvent constituer un goulot d’étranglement, en particulier lorsqu’il s’agit d’échanges de paquets à haute fréquence. Nous avons constaté d’importantes baisses de performances lors de l’utilisation de Redis en atteignant 5 000 à 6 000 paquets par seconde.

De plus, le débit constituait également une préoccupation majeure, car 1 Gb/s n’était pas suffisant.

Il s’agissait d’un obstacle majeur pour nous jusqu’à ce que Rackspace lance un réseau non virtualisé double de 10 Gb/s pour les serveurs Performance Cloud, ainsi que des cartes réseau distinctes pour CBS. Nos tests ont montré que ce nouveau réseau est robuste et ne subit pas les mêmes baisses de performances que le précédent réseau logiciel.

Fiabilité

Sur Internet, on trouve de nombreuses histoires d’instabilité du cloud qui ont entraîné la chute d’entreprises entières. S’y fier peut donc faire peur. Cependant, l’équipe Cloud Servers a promis une fiabilité solide par rapport aux fournisseurs de cloud habituels, nous avons donc décidé de faire le test.

Nouvel environnement Mailgun

HP

Notre nouvel environnement utilisait le même type d’équilibreurs de charge, mais dans ce cas précis, connectés via l’offre RackConnect de Rackspace, redirigeant ainsi l’ensemble du trafic directement vers le cloud.

Réseau

Nous avons passé plusieurs semaines à tester la charge de ce lien, en sollicitant nos serveurs d’API SMTP et HTTP situés sur le cloud, et nous n’avons remarqué aucune baisse de performances.

Fiabilité

Un déploiement classique de serveurs Performance Cloud Mailgun utilise environ une centaine de serveurs par région. Au cours des trois derniers mois, deux serveurs sont tombés en panne en raison de problèmes avec le serveur hôte. Ce chiffre est à peu près équivalent à ce que nous constations avec nos serveurs dédiés, où environ une machine sur 100 tombait en panne chaque mois.

Nous devons toutefois préciser que Mailgun utilise des serveurs Performance Cloud de grande et très grande taille (64 Go et 128 Go). Vous pourriez donc obtenir des résultats différents en choisissant des configurations plus petites.

Inconvénients

Le seul inconvénient que nous avons constaté jusqu’à présent est la politique de Rackspace concernant les maintenances à l’échelle du centre de données. Si vous ne pouvez pas vous permettre de subir des temps d’arrêt, il est possible que votre application doive être multi-DC dès le départ, car cela pourrait entraîner une interruption de plusieurs secondes pour une grande partie de l’environnement. Nous avons subi ce type de maintenance en avril, mais heureusement, nous disposons de plusieurs environnements de secours.

Résultats globaux

Globalement, nous sommes très satisfaits de notre migration. Nous pouvons désormais utiliser l’API Rackspace Cloud pour provisionner nos serveurs, tout en bénéficiant d’une infrastructure plus performante qu’avec la colocation infogérée.