Migration auf die Google Cloud Platform (Google Cloud Platform - GCP)

[Teil 1 von 2]



Der Hike-Blog erschien am 12. Dezember 2012 und es gab damals nur sehr wenige Leser. Bis 2016 haben wir 100 Millionen registrierte Benutzer und 40 Milliarden monatliche Beiträge erreicht. Dieses Wachstum hat jedoch das Problem der Vergrößerung unserer Infrastruktur deutlich gemacht. Um dies zu vermeiden, brauchten wir eine Hochleistungsplattform zu einem erschwinglichen Preis. In den Jahren 2016 und 2017 waren wir mit zahlreichen Arbeitsunterbrechungen konfrontiert. Wir mussten dringend etwas dagegen unternehmen, sodass wir verschiedene Optionen in Betracht zogen.


Wir brauchten eine Cloud-Plattform, mit der Anwendungen in einer skalierbaren und zuverlässigen Cloud-Umgebung schnell erstellt, getestet und bereitgestellt werden können. Auf den ersten Blick scheint es, dass alle wichtigen Cloud-Plattformen in vielerlei Hinsicht ähnlich sind, aber sie weisen mehrere grundlegende Unterschiede auf.


Wir werden diese Veröffentlichung in zwei Teile teilen:


  1. Grund für die Wahl von GCP
  2. Wechseln Sie ohne Ausfallzeit zu GCP

Proof of Concept


Wir haben zunächst die Richtigkeit des Konzepts bewiesen, in dem wir die Kompatibilität der vorhandenen Infrastruktur mit den von der Google Cloud Cloud-Plattform angebotenen Diensten untersucht und Elemente für die zukünftige Entwicklung geplant haben.


Schlüsselbereiche für die Konzeptvalidierung:


⊹ Load Balancer
⊹ Rechenmaschine
⊹ Netzwerk und Firewalls
⊹ Sicherheit
⊹ Cloud-Verfügbarkeit
⊹ Big Data
⊹ Abrechnung


Die Bestätigung des Konzepts umfasste das Testen und Überprüfen der Bandbreite von virtuellen Maschinen / Netzwerk / Load Balancer sowie die Dienste für Stabilität, Skalierbarkeit, Sicherheit, Überwachung, Aufladung, Big Data und maschinelles Lernen. Im Juni 2017 haben wir eine wichtige Entscheidung getroffen, die gesamte Infrastruktur auf die Google Cloud Cloud-Plattform zu migrieren.


Wir wollten eine Cloud-Plattform wählen, die die unzähligen Herausforderungen bewältigen kann:


⊹ Load Balancer:


Wir hatten viele Probleme mit der Verwaltung lokaler HAProxy-Cluster, um täglich zig Millionen aktiver Benutzerverbindungen zu verwalten. Der Global Load Balancer (GLB) hat viele unserer Probleme gelöst.



Bei Verwendung des globalen GCP-Lastausgleichs kann eine einzelne Anycast-IP-Adresse bis zu 1 Million Anforderungen pro Sekunde an verschiedene GCP-Server wie die Managed Instance Groups (MIG) weiterleiten. Dies erfordert keine Vorwärmung. Unsere Gesamtantwortzeit hat sich um das 1,7- bis 2-fache verbessert, da GLB eine Pool-Implementierung verwendet, mit der Sie den Datenverkehr auf mehrere Quellen verteilen können.



⊹ Rechenmaschine:


Es gab keine großen Probleme mit den Computern selbst, aber wir brauchten eine Hochleistungsplattform zu einem erschwinglichen Preis. Der Gesamtdurchsatz von virtuellen Google-Maschinen erhöhte sich um das 1,3-1,5-fache, wodurch die Gesamtzahl der ausgeführten Instanzen virtueller Maschinen verringert werden konnte.


Redis-Tests wurden mit einem Cluster von 6 Kopien (8 Kerne, jeweils 30 GB) durchgeführt. Basierend auf den folgenden Ergebnissen schließen wir, dass GCP für die meisten REDIS-Operationen bis zu 48% (durchschnittliche) Leistungsverbesserungen und für bestimmte REDIS-Operationen bis zu 77% bietet.


Redis-Benchmark -h -p 6379 -d 2048 -r 15 -q -n 10000000 -c 100


Der Cloud-Computing-Dienst der Google Compute Engine (GCE) bietet zusätzliche Vorteile bei der Verwaltung unserer Infrastruktur, indem er Folgendes verwendet:


Managed Instance Group (MIG): MIG hilft uns, Anwendungsdienste in einer robusten Umgebung mit Mehrzonenfunktionen zu verwalten, anstatt Ressourcen für jede Zone zuzuweisen. MIG identifiziert und korrigiert automatisch nicht betriebsbereite Instanzen in einer Gruppe, um einen optimalen Betrieb aller Instanzen sicherzustellen.


Dynamische Migration: Die dynamische Migration hilft bei der Verwaltung von Instanzen virtueller Maschinen, selbst wenn ein Hostsystem ausfällt, z. B. beim Aktualisieren von Software oder Hardware. In Zusammenarbeit mit unserem vorherigen Cloud-Partner erhielten wir eine Benachrichtigung über ein geplantes Wartungsereignis und mussten die virtuelle Maschine stoppen und starten, um zu einer funktionierenden virtuellen Maschine zu wechseln.


Benutzerdefinierte virtuelle Maschinen: Im Rahmen von GCP können wir unsere eigenen virtuellen Maschinen mit der Verarbeitungsleistung des Prozessors und der für bestimmte Workloads erforderlichen Speichermenge erstellen.


⊹ Netzwerk und Firewalls:


Das Verwalten mehrerer Netzwerke und Firewall-Regeln ist nicht einfach und kann riskant sein. GCP-Netzwerk-VPC ist standardmäßig global und bietet interregionale Kommunikation ohne zusätzliche Konfiguration und ohne Änderung der Netzwerkbandbreite. Firewall-Regeln bieten VPC-Flexibilität für Projekte, die den Namen der Tag-Regel verwenden.


Für ein Netzwerk mit geringer Latenz und höherer Bandbreite mussten wir teure Instanzen mit einer Bandbreite von 10 Gbit / s auswählen und erweiterte Netzwerke für diese Instanzen aktivieren.



⊹ Sicherheit:


Sicherheit ist der wichtigste Aspekt für jeden Cloud-Dienstanbieter. In der Vergangenheit war die Sicherheit für die meisten Dienste entweder nicht verfügbar oder nur eine zusätzliche Option.


Google Cloud-Dienste werden standardmäßig verschlüsselt. GCP verwendet mehrere Verschlüsselungsstufen, um Daten zu schützen. Die Verwendung mehrerer Verschlüsselungsstufen bietet Schutz für Sicherungsdaten und ermöglicht Ihnen die Auswahl des besten Ansatzes basierend auf den Anwendungsanforderungen, z. B. mithilfe des Identity-Aware Proxy-Dienstes und standardmäßiger Verschlüsselung inaktiver Daten.


Darüber hinaus schließt GCP die jüngsten katastrophalen Ausführungslücken in der überwiegenden Mehrheit der modernen Prozessoren (Meltdown, Spectre). Google hat eine neue Methode zur binären Änderung namens Retpoline entwickelt , mit der Sie dieses Problem umgehen und für Benutzer unsichtbar Änderungen an der gesamten Arbeitsinfrastruktur vornehmen können.


⊹ Cloud-Verfügbarkeit:


Die Verfügbarkeit von GCP-Ressourcen unterscheidet sich von der anderer Anbieter von Cloud-Lösungen, da die meisten GCP-Ressourcen, einschließlich des Control Panels, entweder zonal oder regional sind. Wir mussten mehrere VPCs für einzelne Projekte von separaten Konten aus verwalten, die eine VPC- oder VPN-Verbindung für eine private Verbindung miteinander verbinden mussten. Wir mussten auch eine Kopie des Bildes in einem separaten Konto aufbewahren.


In Google Cloud sind die meisten Ressourcen entweder global oder regional. Zu diesen Ressourcen gehören das Control Panel (in dem wir alle virtuellen Maschinen unseres Projekts auf einem Bildschirm sehen können), Disk-Images, Container zum Speichern von Daten (mehrere Regionen innerhalb des Kontinents), VPC (aber separate Subnetze sind regional), globaler Lastausgleich und Veröffentlichung und Abonnement usw.



⊹ Big Data:


Wir sind von einer monolithischen, schwer zu verwaltenden Analysekonfiguration zu einem vollständig verwalteten BQ- System übergegangen , was zu Verbesserungen in drei Bereichen führte:


● Die Abfrageverarbeitungsgeschwindigkeit wurde um das 50-fache erhöht.


● Vollständig verwaltete Datenverarbeitungssysteme mit automatischer Skalierung.


● Die Datenverarbeitungszeit wurde von Stunden auf 15 Minuten reduziert.


⊹ Aufladen:


Es war schwierig, verschiedene Cloud-Dienstanbieter zu vergleichen, da viele Dienste nicht ähnlich oder vergleichbar waren, sich für verschiedene Nutzungsszenarien unterschieden und von bestimmten Nutzungsszenarien abhingen.


GCP-Vorteile:


Rabatte für die langfristige Nutzung: Wird mit zunehmender Nutzung virtueller Maschinen angewendet, wenn bestimmte Schwellenwerte erreicht werden. Wir können automatisch einen Rabatt von bis zu 30% auf Workloads erhalten, die während des größten Teils des Abrechnungsmonats ausgeführt werden.


Abrechnung pro Minute: Bei der Zuweisung einer virtuellen Maschine in GCE wird eine Gebühr für einen Zeitraum von mindestens 10 Minuten erhoben. Danach beginnt eine Abrechnung pro Minute für die tatsächliche Nutzung der virtuellen Maschine. Dies führt zu einer erheblichen Kostenreduzierung, da wir keine volle Stunde bezahlen müssen, selbst wenn die Maschineninstanz weniger als eine Stunde läuft.


Überlegene Hardware, weniger Instanzen: Wir haben festgestellt, dass Sie mit GCP für fast alle Ebenen und Anwendungen dieselbe Arbeitslast mit derselben Leistung, aber weniger Instanzen ausführen können.


Engagement statt Redundanz: Ein weiterer Faktor ist der Ansatz von GCP zum Preis von Instanzen virtueller Maschinen. In AWS besteht die primäre Möglichkeit, die Kosten einer Instanz einer virtuellen Maschine zu senken, darin, reservierte Instanzen für einen Zeitraum von 1 bis 3 Jahren zu erwerben. Wenn die Arbeitslast eine Änderung der Konfiguration der virtuellen Maschine erforderte oder wir diese Instanz nicht benötigten, mussten wir sie für reservierte Instanzen zu einem niedrigeren Preis auf dem Markt verkaufen. GCP verfügt über einen "Commitment Commitment Discount", der für die Reservierung von Prozessorressourcen und Speicher gilt. Dabei spielt es keine Rolle, welche Instanzen der virtuellen Maschine wir verwenden.


Fazit:


Basierend auf dieser detaillierten Analyse haben wir uns für den Wechsel zu GCP entschieden und begonnen, an dem Übergangsschema und den Checklisten zu arbeiten. Im nächsten Artikel werden wir darüber sprechen, was wir bei der Umsetzung dieses Projekts gelernt haben.

Source: https://habr.com/ru/post/de427347/


All Articles