IT & Engineering
Mailgun auf Performance Cloud Servers
Dieser Beitrag wurde am 28. August 2014 veröffentlicht.
Bis vor Kurzem befand sich Mailgun in einer Managed-Colo-Umgebung, die unsere Muttergesellschaft Rackspace auf Bare-Metal-Servern hostete.
Dieser Beitrag wurde am 28. August 2014 veröffentlicht.
Bis vor Kurzem befand sich Mailgun in einer Managed-Colo-Umgebung, die unsere Muttergesellschaft Rackspace auf Bare-Metal-Servern hostete. Diese Entscheidung geht auf viele derselben philosophischen Gründe zurück, warum Rackspace OnMetal -Server im Juli einführte. Aufgrund der Kompromisse bei Zuverlässigkeit und Leistung, die in der Regel einen hohen Entwicklungsaufwand erfordern, kam eine Bereitstellung von Mailgun in der Public Cloud für uns nicht in Frage. Das änderte sich, als Rackspace Performance Cloud Servers im November 2013 einführte.
In diesem Beitrag erläutern wir die Hintergründe unserer Entscheidung und zeigen auf, wie sich die Leistung unserer Infrastruktur dadurch verändert hat.
Managed Colo
Wir waren mit unserer Managed-Colo-Bereitstellung ziemlich zufrieden und wir sind nicht die Einzigen. Es gibt viele Argumente für dedizierte Server im Vergleich zur Cloud, aber der größte Vorteil ist die vollständige Kontrolle über Hardware und Netzwerke. Dies lässt sich durch Cloud-Bereitstellungen (noch) nicht erreichen. Weitere Argumente gegen die Nutzung der Cloud gegenüber dedizierten Servern sind Zuverlässigkeit und Leistung. Es herrscht die Auffassung, dass die Cloud bei I/O-intensiven Arbeitslasten weniger robust und leistungsfähig ist.
Managed Colo
Eine typische Mailgun-Bereitstellung sah wie folgt aus:

In diesem Diagramm trifft der Großteil des Traffics auf ein hochverfügbares (HA) Paar von F5 5000s Load Balancern, das den gesamten Datenverkehr an unsere dedizierten API-Server weiterleitet.
F5 Load Balancer
Diese F5 Load Balancer sind ziemlich leistungsstarke Hardware-Server

Sie bewältigen:
- L7-Anfragen pro Sekunde: 750.000
- L4-Verbindungen pro Sekunde: 350.000
- L4-HTTP-Anfragen pro Sekunde: 3,5 Mio.
- Maximale gleichzeitige L4-Verbindungen: 24 Mio.
- Durchsatz: 30 Gbit/s / 15 Gbit/s L4/L7
Darüber hinaus übernehmen diese Kraftpakete die SSL-Terminierung und wehren bestimmte DDoS-Angriffe ab.
R720
Dell R720-Server sind die Arbeitstiere von Mailgun und werden sowohl als Datenbanken als auch als Verarbeitungsserver eingesetzt. Sie verfügen über 64 GB RAM, ein oder mehrere SAS-Laufwerke mit 15.000 U/min (je nach Konfiguration) und ein oder zwei 10-Gbit/s-NICs.

Cloud
Cloud-Server kamen für Hilfsaufgaben wie Protokollierung, das Erstellen von Backups und die Ausführung verschiedener Jobs zum Einsatz; 90 % der Umgebung befanden sich auf dedizierter Hardware.
Insgesamt war das Mailgun-Team mit dem damaligen Stand der Dinge zufrieden. Warum sind wir also migriert?
Gründe für die Migration
Leistung
Es gibt verschiedene Clouds auf dem Markt, aber eine bestimmte Cloud hat uns am meisten begeistert – Rackspace Performance Cloud. Hier sind die Benchmarks, die die Leistung der vorherigen Servergeneration mit den neuen Performance Cloud Servern vergleichen und eine enorme Verbesserung zeigen:

Diese Benchmarks zeigen, dass wir unsere Cassandra-Cluster ab sofort auf Cloud-Servern hosten, da SSDs die Geschwindigkeit massiv steigern:

Darüber hinaus sind die neuen Cloud-Instanzen leistungsfähiger als die Standard-R720-Server, die wir in unseren Managed-Colo-Umgebungen eingerichtet haben. Zum Beispiel liegt der UnixBench-Wert für unsere R720-Server bei 1.219 im Vergleich zu beeindruckenden 4.876 auf den neuen Performance Cloud Servern.
API
Rackspace Cloud Server lassen sich schnell bereitstellen und über eine API steuern, was die Automatisierung der Bereitstellung, die automatische Skalierung und all die üblichen Vorteile des Cloud-Betriebs enorm erleichtert. (Hinweis: Eine schnelle API-basierte Bereitstellung ist für Bare-Metal-Server durch Rackspaces OnMetal -Angebot verfügbar. Wir freuen uns darauf, unsere Infrastruktur in Zukunft mit diesen leistungsstarken Servern zu erweitern.)
Bedenken
Zwei große Bedenken hielten uns jedoch zunächst von der Migration in die Cloud ab.
Netzwerk
Cloud-Netzwerke stellen oft einen Engpass dar, insbesondere beim Hochfrequenz-Paketaustausch. Bei der Nutzung von Redis erlebten wir enorme Leistungseinbußen, sobald wir 5.000 bis 6.000 Pakete pro Sekunde erreichten.
Darüber hinaus war auch der Durchsatz ein großes Problem; 1 Gbit/s reichte einfach nicht aus.
Dies war für uns ein großes Hindernis, bis Rackspace duale, gebündelte und nicht-virtualisierte 10-Gbit/s-Netzwerke für Performance Cloud Server sowie separate NICs für CBS einführte. Unsere Benchmarks zeigten, dass das neue Netzwerk robust ist und nicht mehr unter den Leistungseinbußen leidet wie das vorherige Software-Netzwerk.
Verlässlichkeit
Im Internet kursieren viele Geschichten über Cloud-Instabilitäten, die ganze Unternehmen lahmlegen. Daher ist es durchaus beängstigend, sich darauf zu verlassen. Das Cloud-Server-Team versprach jedoch im Vergleich zu typischen Cloud-Anbietern eine hohe Zuverlässigkeit, also beschlossen wir, es zu testen.
Neue Mailgun-Umgebung

Unsere neue Umgebung nutzte dieselbe Art von Load Balancern, dieses Mal jedoch verbunden über Rackspaces RackConnect und leitete den gesamten Traffic direkt in die Cloud.
Netzwerk
Wir haben diese Verbindung mehrere Wochen lang Lasttests unterzogen und dabei unsere in der Cloud gehosteten SMTP- und HTTP-API-Server stark beansprucht, ohne Leistungseinbußen festzustellen.
Verlässlichkeit
Eine typische Mailgun-Bereitstellung auf Performance Cloud Servern nutzt etwa einhundert Server pro Region. In den letzten drei Monaten fielen aufgrund von Problemen mit dem Host-Server zwei Server aus. Dies entspricht in etwa unseren Erfahrungen mit dedizierten Servern, bei denen jeden Monat etwa ein System von 100 ausfiel.
Wir möchten jedoch anmerken, dass Mailgun die Varianten Large und Extra Large (64 GB und 128 GB) der Performance Cloud Server nutzt. Wenn Sie sich für kleinere Varianten entscheiden, fallen Ihre Ergebnisse möglicherweise anders aus.
Nachteile
Ein bisheriger Nachteil ist die Richtlinie von Rackspace für rechenzentrumsweite Wartungsarbeiten. Dadurch muss Ihre Anwendung gegebenenfalls von Anfang an auf mehrere Rechenzentren ausgelegt sein, falls Sie keine Ausfallzeiten tolerieren. Eine solche Wartung führt sonst schnell zu einer mehrsekündigen Ausfallzeit für einen Großteil der Umgebung. Wir haben im April eine solche Wartung erlebt, konnten aber glücklicherweise auf mehrere Umgebungen zurückgreifen.
Gesamtergebnisse
Insgesamt sind wir mit unserer Migration sehr zufrieden. Wir nutzen nun die Rackspace Cloud API für die Bereitstellung unserer Server und profitieren zusätzlich von einer leistungsfähigeren Flotte im Vergleich zu unserer Managed-Colo-Umgebung.