Dieser Artikel stellt Organisationen, die eine interne Bewertung der Migration einer zweischichtigen Webanwendung in die Cloud durchführen, die Google Cloud-Optionen vor ## Anwendungsarten Zweistufige Webanwendungen bestehen aus einem Webserver, auf dem eine Anwendung ausgeführt wird, und einer Datenbank zum Speichern von Anwendungsdaten. Das Ausführen von Linux, Apache, MySQL und PHP, allgemein als LAMP-Stack bezeichnet, ist ein gängiges Beispiel für eine zweischichtige Webanwendung. Variationen der Linux-Distribution, der Webserver-Software, der Datenbank oder der Programmiersprache wirken sich auf die technischen Details jeder Migration aus, aber die Migrationsübersicht und die Schritte sind konsistent ## Migrationsphasen Cloud-Migrationen erfolgen in den folgenden vier Phasen Bewertung Identifizieren Sie alle Merkmale Ihres Workloads, listen Sie die Ressourcen auf, die zum Ausführen Ihres Workloads in der Cloud erforderlich sind, und nennen Sie alle wichtigen Abhängigkeiten und Verbindungen zu anderen Workloads. Anhand der vollständigen Merkmalsliste können Sie dann mit der Planung beginnen, welche Anwendungen und Workloads in welcher Reihenfolge verschoben werden sollen In modernen Unternehmen gibt es viele verschiedene Arten von Anwendungen, von kundenorientierten Apps über Backoffice-Apps bis hin zu Entwicklertools und experimentellen Anwendungen. All diese Anwendungen gleichzeitig und auf die gleiche Weise zu verschieben, wäre riskant und ineffizient Ein Beispiel wäre, Anwendungen in die folgenden drei großen Kategorien zu sortieren: - Anwendungen, die leicht zu verschieben sind. Diese haben weniger Abhängigkeiten, sind neuer, werden intern geschrieben, haben also keine Lizenzüberlegungen und sind toleranter gegenüber Skalierung und Unterstützung von Cloud-Designmustern - Anwendungen, die schwer zu bewegen sind. Diese haben mehr Abhängigkeiten, sind weniger skalierungstolerant, lassen sich nur schwer mit Cloud-Diensten betreiben oder haben komplexe Lizenzanforderungen - Anwendungen, die nicht verschoben werden können. Einige Anwendungen, die möglicherweise keine guten Kandidaten für eine Migration sind, werden auf spezialisierter oder älterer Hardware ausgeführt, haben geschäftliche oder behördliche Anforderungen, die es erforderlich machen, dass sie in Ihrem Rechenzentrum bleiben, oder haben komplexe Lizenzanforderungen, die nicht erforderlich sind Erlauben Sie ihnen nicht, in die Cloud zu wechseln Dies sind nur einige Beispiele für Möglichkeiten zum Sortieren von Anwendungen. Es ist wahrscheinlich, dass Ihre Anwendungen viel mehr entscheidende Faktoren haben, die Sie verwenden können, um eine Priorisierungsmatrix aller Anwendungen zu erstellen. Anhand dieses Rankings können Sie Ihre erste zu verschiebende Anwendung auswählen und mit der Planung Ihrer Google Cloud-Grundlage beginnen Stiftung Entwerfen und planen Sie spezifische Details für die Bereitstellung der neuen Cloud-Umgebung. Diese schließen ein: - Die Cloud-Architektur und das Sicherheitsmodell, um eine Infrastrukturgrundlage für Ihre Workloads bereitzustellen Netzwerkressourcen, um eine sichere und zuverlässige Kommunikation zwischen Anwendungen zu ermöglichen. Dies erfordert eine umfassende Planung für Identity and Access Management (IAM), Virtual Private Cloud (VPC)-Design und externe Zugriffsmethoden Die Endzustandstechnologie und -tools, auf denen Ihre Workloads ausgeführt werden Berücksichtigung von Abhängigkeitsmanagement, Zeitplänen und Methoden zum Verschieben von Daten Migration Verschieben Sie die Daten und stellen Sie Dienste, Infrastruktur und Code an Ihrem Zielort bereit. Sie sollten Automatisierung und Tools verwenden, um diese Vorgänge zu unterstützen Optimierung Validieren Sie, ob die Entscheidungen und Annahmen, die Sie in der Assessment- und Gründungsphase getroffen haben, mit der Realität nach der Migrationsphase übereinstimmen. Sie identifizieren alle erforderlichen Änderungen. Überlegen Sie, wie Sie andere Cloud-native Optionen erkunden können, z. B. den Wechsel von Infrastructure as a Service (IaaS) zu Platform as a Service (PaaS) oder die Nutzung von Managed-Service-Angeboten. Abhängig vom Ergebnis der Optimierungsphase können Sie den Zyklus erneut beginnen, um Änderungen oder Modifikationen vorzunehmen. Beginnen Sie immer wieder in der Bewertungsphase und nutzen Sie Ihre Erfahrung, um mit jeder Iteration effizienter zu werden ## Arten von Migrationen Die drei häufigsten Migrationsstrategien zum Verschieben von Anwendungen in die Cloud werden in den folgenden Abschnitten beschrieben Heben und verschieben Verwenden *Lift and Shift*, wenn Sie Anwendungen verschieben möchten, während Sie sie ändern wenig wie möglich, wie sie funktionieren. Dies funktioniert am besten für Anwendungen, die kann unverändert innerhalb der Cloud laufen, wenn die Anwendung schnell verschoben wird Priorität haben oder wenn das Unternehmen wenig Appetit oder Bedarf für Veränderungen hat. Diese Die Migration erfordert mehr Arbeit von Infrastruktur- und Betriebspersonal Unterstützung der grundlegenden Änderungen, wo der Dienst ausgeführt wird, und weniger Arbeit von Entwicklern, da, wenn überhaupt, nur sehr wenig Code geändert werden muss Wenn beispielsweise beide Ebenen Ihrer Webanwendung auf VMs gehostet werden, können Sie sie unverändert migrieren, indem Sie Auf virtuelle Maschinen migrieren verwenden. Wenn sich diese VMs in der Cloud befinden, können Sie ein Upgrade auf eine Cloud-nativere Rechenplattform für zusätzliche Vorteile in Betracht ziehen Verbessern und bewegen Verwenden *verbessern und verschieben* wenn Sie Ihre Anwendung in der modernisieren möchten Prozess der Migration in die Cloud. Dies wird häufig bei der Anwendung verwendet wird in der Cloud nicht unterstützt, wie sie ist, oder wenn größere Software-Updates oder Hardware sind bereits erfasst und geplant. Diese Migration erfordert Infrastruktur, Betrieb und Entwickler zusammenarbeiten, um die Funktion des zu verbessern Anwendung in der Cloud und ermöglicht der Anwendung, davon zu profitieren Cloud-native Vorteile wie mehr Portabilität, Skalierbarkeit und Zuverlässigkeit Eine andere Variation dieser Strategie besteht darin, sich zu verbessern und sich in einer Bewegung zu bewegen. Wenn beide Ebenen Ihrer Webanwendung auf VMs gehostet werden, können Sie Migrate to Containers verwenden, um diese VMs automatisch zu verschieben und in Container zu konvertieren, die auf Google Kubernetes Engine (GKE) ausgeführt werden. Reißen und ersetzen Verwenden *Rip and Replace*, wenn Sie eine neue Lösung in der Cloud erstellen möchten, und Setzen Sie die aktuelle Version Ihrer lokalen Lösung herunter. Dies wird häufig verwendet wenn folgende Bedingungen zutreffen: - Die bestehende Anwendung lohnt sich weder technisch noch finanziell in der Cloud - Die Lizenzierung der Software in der Cloud ist unerschwinglich oder unpraktisch - Die Anwendung erfüllt die geschäftlichen Anforderungen überhaupt nicht mehr Da Rip-and-Replace das Neuschreiben einer Anwendung von Grund auf erfordert, wird es in diesem Migrationsleitfaden nicht behandelt ## Bewertungsphase Bevor eine Migration beginnen kann, müssen Sie Ihren Ausgangspunkt gründlich verstehen Unbeantwortete Fragen gefährden den Erfolg der Migration. Zeit in der Bewertungsphase zu verbringen, trägt dazu bei, eine reibungslose und ereignislose Migrationsphase zu gewährleisten. Verbringen Sie so viel Zeit wie möglich, um so viele relevante Informationen wie möglich zur Unterstützung Ihrer Migration zu erfassen Anwendungssoftware-Stack Arbeiten Sie mit Ihren Infrastruktur-, Betriebs- und Entwicklungsteams zusammen, um die folgenden Details zu identifizieren: - Betriebssystem: Genaue Verteilung, Version, Patches, installierte Pakete - Webserver: Genaues Softwarepaket, Versionsnummer, Pakete oder andere Softwaremodifikationen sowie alle Konfigurationsdateien und Regeln für Webserversoftware - Datenbank: Genauer Softwarename, Version, Schema, Replikationsstrategie und Sicherungszeitplan - Laufzeitumgebungen: Genaue Versionen aller Backend- und Frontend-Umgebungen Hardwareressourcen des Systems Beantworten Sie für die Ebenen Webserver und Datenbank die folgenden Fragen: - Wie viele Server laufen derzeit? - Wie hoch ist die Gesamtzuweisung von CPUs, einschließlich Generation, Architekturtyp und Geschwindigkeit? - Welcher RAM- und Plattenspeicherplatz wird jedem Server zugewiesen? Sind HDDs oder SSDs im Einsatz? ÜBERFALLEN? - Wie hoch ist die aktuelle Auslastung, die durchschnittliche Auslastung und die Spitzenauslastung von CPU, RAM und Speicherplatz?Sehen Sie sich Ihren Durchschnitt und Spitzenwert im Kontext Ihrer spezifischen geschäftlichen Nutzung an.Beispielsweise muss ein Unternehmen, das die Olympischen Spiele unterstützt, möglicherweise zwei Jahre zurückblicken, um zu sehen, wie der wahre Spitzenwert aussieht, während andere Anwendungen möglicherweise eine stabilere Ausführungsrate aufweisen.Sehen Sie sich die Zeitachse für den typischsten Anwendungsfall für den Durchschnitt und die Zeitachse für die häufigste Nutzung für den Spitzenwert an.Suchen Sie auch nach zyklischen Nutzungsmustern wie Wochenenden, Abenden und Werktagen.– Welche Sicherungs-, Replikations- oder Sharding-Strategie wird für die Datenbank verwendet und wie die sich auf den Speicherplatzbedarf und die Anzahl der erforderlichen Server auswirken?NetzwerkressourcenAnalysieren Sie die Netzwerkarchitektur, die das Funktionieren Ihrer Anwendung ermöglicht.Stellen Sie sicher, dass Sie über genaue und aktuelle Diagramme der logischen und physischen Netzwerktopologie der Infrastruktur verfügen, die Ihre Anwendung unterstützt.Die Diagramme müssen alle Verbindungen, Abhängigkeiten und Netzwerkdienste klar darstellenBeantworten Sie die folgenden Fragen:- Wie greifen Kunden auf Ihre Anwendung zu?Über einen Webbrowser?Direkt über eine IP-Adresse?Über eine mobile App?Verwenden Sie eine virtuelle private Netzwerkverbindung?- Haben Sie eine Liste aller anwendbaren SSL/TLS-Zertifikate und Verschlüsselungsschlüssel?- Wo werden alle anwendbaren SSL/TLS-Zertifikate gehostet?Wann laufen sie ab?Wie erneuern Sie Zertifikate?Wie erhalten Sie neue Zertifikate?Haben Sie Zugriff auf alle aktuellen Zertifikate?- Haben Sie eine Liste aller zutreffenden Domänen, die die Anwendung unterstützen?- Wo werden diese Domains gehostet?Wann laufen sie ab?Wie erneuern Sie sie?Haben Sie Zugriff auf die Konten, die die Registrierung steuern?- Wo wird Ihr DNS gehostet und kontrolliert?- Haben Sie Zugriff auf alle Systeme und Tools, die DNS steuern?Wie lauten die aktuellen CNAME-zu-IP-Zuordnungen für jede Domäne, und haben Sie eine Sicherungskopie?- Wie lauten Ihre DNS-Time-to-Live (TTL)-Einstellungen?- Wo passen Ihre Firewalls und andere Netzwerkzugriffs- und Kontrollgeräte in die Architektur?Welche Regeln gelten jetzt, um Datenverkehr zuzulassen oder zu verweigern?Wer ist verantwortlich und wie ist das Verfahren zur Änderung oder Aktualisierung dieser Regeln?- Verwenden Sie externe Netzwerkdienste?Zum Beispiel ein Content Delivery Network (CDN)-Anbieter oder ein DDoS-Schutzdienst (Distributed Denial of Service)?## GründungsphaseGoogle Cloud bietet viele Optionen zum Ausführen von Rechen- und Datenbankarbeitslasten für mehrschichtige Anwendungen wie LAMP.In diesem Abschnitt werden diese Optionen vorgestellt und erläutert, warum Sie möglicherweise eine der anderen Optionen bevorzugen.Compute-zentrierte OptionenCompute EngineCompute Engine ist eine IaaS Angebot, mit dem Sie eine virtuelle Maschine (VM) in Google Cloud ausführen können.Sie können Webframeworks, Serversoftware, Datenbanken und jede andere Software installieren, die Ihr Betriebssystem unterstützt.Wenn Sie Ihre eigene LAMP-Anwendung auf Bare-Metal, auf einer VM, in einem Rechenzentrum oder bei einem anderen Cloud-Anbieter ausführen, könnte diese Option Ihren vorhandenen Server genau, wenn nicht genau replizieren.Diese Option bietet die größte Kontrolle über die Konfiguration des Betriebssystems und die Softwareeinstellungen des Webservers.Compute Engine ermöglicht umfassende Kontrolle über Maschinentypen, Instanzgruppen, Speicheroptionen, Load Balancer und zahlreiche andere Details.Weitere Quickstarts, Tutorials und mehr finden Sie in der vollständigen Compute Engine-Dokumentation.Das direkte Verschieben Ihrer Anwendung zu Compute Engine ist die häufigste Lift-and-Shift-Migration.Anleitungen zum Zuordnen lokaler Ressourcen zu Compute Engine finden Sie unter Best Practices für die Migration virtueller Maschinen zu Compute EngineCloud Deployment ManagerDer Google Cloud Marketplace bietet eine einfache LAMP-Installation über Deployment Manager.Sie können einen Server starten, auf dem Debian Linux, Apache, MySQL, PHP und phpMyAdmin bereits installiert und in einer Standardkonfiguration konfiguriert sind.Sie erhalten in nur wenigen Minuten einen voll funktionsfähigen Webserver und Zugangsdaten für die MySQL-InstallationGoogle Kubernetes EngineGKE ist eine verwaltete, produktionsbereite Umgebung für die Bereitstellung containerisierter Anwendungen.Mit GKE hören Sie auf, ein Betriebssystem zu verwalten, indem Sie Ihre Webserver-Software containerisieren.Beispielsweise sind die Webserver Apache und NGINX in jedem öffentlichen Container-Repository verfügbar.Wenn Sie Container zum Ausführen von Arbeitslasten in Ihrer Umgebung verwenden, ist GKE ein effizienter Dienst, um einen ähnlichen Bereitstellungs- und Test-Workflow aufrechtzuerhalten, wenn Sie Ihre LAMP-Arbeitslast zu Google Cloud migrieren.Wenn Sie keine Container verwenden, sollten Sie GKE für schnellere Bereitstellungen und Wiederherstellungen, eine effizientere Nutzung von Ressourcen und die Notwendigkeit, das zugrunde liegende Betriebssystem und die VMnicht verwalten zu müssen, erkunden Weitere Informationen zur Containeranwendungsverwaltung im großen Maßstab finden Sie in der GKE-Dokumentation für Schnellstarts, Tutorials, Konzepte, Anleitungen und andere Ressourcen, die Ihnen beim Einstieg helfen.Verschieben Ihrer lokalen LAMP-Anwendung zu GKE ist eine Improve-and-Move-Migration, während die Migration von einer selbstverwalteten Container-basierten Infrastruktur eine Lif-and-Shift-Migration istApp EngineApp Engine ist eine serverlose Plattform zum Erstellen hochgradig skalierbarer Anwendungen.Abhängig von der Art der Anwendung, die Sie ausführen, kann App Engine die Verwaltung von Servern, Containern oder Bereitstellungen überflüssig machen, sodass sich Ihre Entwickler auf das Schreiben von Code konzentrieren und die Komplexität der Verwaltung der zugrunde liegenden Infrastruktur verringern können.Nicht alle Workloads sind gute Kandidaten für den Wechsel zu App Engine, aber diejenigen, die es sind, sehen Kosten- und Komplexitätsreduzierungen, während sie die Skalierungsgeschwindigkeit und die Widerstandsfähigkeit der Anwendung unter Last erhöhenApp Engine gibt es in zwei Varianten: Die Standardumgebung deckt eine Vielzahl von Sprachen ab (einschließlich PHP für unsere LAMP-Anwendung), und die flexible Umgebung ermöglicht eine stärkere Anpassung von Laufzeiten, Leistung und Infrastruktur.Sehen Sie sich die Dokumentation für die Sprache Ihrer Wahl an, um mehr zu erfahrenDatenbankoptionen Selbstverwaltet auf Compute Engine Sie können MySQL, PostgreSQL oder jede andere SQL-basierte Datenbank auf einer Compute Engine-Instanz installieren. Dies bietet das gleiche Maß an Kontrolle, das Sie hätten, wenn Sie MySQL auf einer Workstation, auf einem Server in einem Rechenzentrum oder als VM bei einem anderen Cloud-Anbieter ausführen würden. Wenn Sie Ihre Datenbank auf einer VM ausführen, liegt es in Ihrer Verantwortung, Failover, Replikation, Partitionierung und Hochverfügbarkeit zu konfigurieren, zu überwachen und zu warten Sie können die Datenbank als Compute-Workload behandeln, indem Sie CPU, RAM und Speicherplatz berücksichtigen, um sicherzustellen, dass genügend Ressourcen für die zuverlässige Ausführung der Anwendung vorhanden sind Wie das Verschieben der Compute-Workload zu Compute Engine stellt dieser Ansatz eine Lift-and-Shift-Migration dar Cloud-SQL Cloud SQL ist ein vollständig verwalteter Datenbankdienst, der die Installation, Einrichtung und Wartung Ihrer Datenbank an Google Cloud auslagert. Es automatisiert Backups, Replikation, Patches und Updates und lässt Sie sich auf Ihre Anwendung konzentrieren. Cloud SQL-Datenbanken können von Arbeitslasten verwendet werden, die auf allen Rechendiensten von Google ausgeführt werden, einschließlich Compute Engine, GKE und App Engine. Sofern Sie keine umfassende Kontrolle über Ihre MySQL-Datenbank benötigen, ist Cloud SQL eine einfach einzurichtende und voll funktionsfähige Option zum Ausführen einer LAMP-Arbeitslast Cloud SQL kann MySQL und PostgreSQL nativ ausführen und unterstützen. Wenn Sie von einer dieser Datenbanken zu Cloud SQL migrieren, handelt es sich um eine Lift-and-Shift-Migration. Wenn Sie neue Methoden für Replikation, Backup-Strategie oder Einfachheit bei der Verwaltung Ihrer Infrastruktur erkunden, könnte dies eine Verbesserungs- und Umzugsmigration sein Andere Aufbewahrungsmöglichkeiten Cloud Storage ist ein skalierbarer, vollständig verwalteter, äußerst zuverlässiger und kosteneffizienter Objekt- oder Blobspeicher, der sich ideal zum Speichern von Bildern, statischen Assets und anderen unstrukturierten Daten eignet. Cloud Storage kann zum Hosten einer statischen Website verwendet werden, ist jedoch nicht zum Speichern aktiver Datenbankinhalte ausgelegt. Es ist auch ein idealer Ort, um Backup- und Disaster-Recovery-Objekte sowie Daten für das Streaming zu speichern Erwägen Sie die Verwendung von Cloud Storage als Speicherort zum Speichern von Sicherungen Ihrer Datenbank während und nach Ihrer Migration Feuerwehr Firestore ist eine vollständig verwaltete, serverlose, Cloud-native NoSQL-Dokumentendatenbank, die das Speichern, Synchronisieren und Abfragen von Daten für Ihre mobilen, Web- und Internet of Things (IoT)-Anwendungen auf globaler Ebene vereinfacht. Seine Client-Bibliotheken bieten Live-Synchronisation und Offline-Support, während seine Sicherheitsfunktionen und Integrationen mit Firebase und Google Cloud die Erstellung wirklich serverloser Apps beschleunigen. Wenn Ihre Anwendung Inhalte enthält, die von einem NoSQL-Format profitieren könnten, z. B. Benutzerprofile, Produktkataloge oder Spielstatus, sollten Sie Firestore in der Optimierungsphase Ihrer Migration erkunden Firebase Firebase ist eine umfassende mobile Entwicklungsplattform, die Speicher- und Datenbankoptionen umfasst. Wenn Ihre Anwendung eine mobile Workload unterstützt, sollte die Firebase-Plattform in Ihrer Optimierungsphase berücksichtigt werden Cloud Spanner Spanner ist ein global verteilter und stark konsistenter Datenbankdienst der Enterprise-Klasse, der für die Cloud entwickelt wurde. Es kombiniert die Vorteile relationaler Datenbankstrukturen mit der horizontalen Skalierbarkeit nicht relationaler Datenbanken. Wenn Ihre Anwendung von verbesserter Verwaltbarkeit, Skalierbarkeit und Transaktionen mit starker Konsistenz profitieren könnte, ziehen Sie in Ihrer Optimierungsphase die Migration Ihrer Datenbank zu Spanner in Betracht Google Cloud bietet viele andere Speicheroptionen, um eine Vielzahl von Arbeitslasten zu unterstützen ## Migrationsphase Nachdem Sie Ihre Bewertung abgeschlossen und Ihre Migration geplant haben, können Sie mit dem Verschieben von Daten, Diensten und Ressourcen in Google Cloud beginnen. Jede Anwendung hat ihre eigenen Anforderungen. Dieser Abschnitt geht durch einige Beispiele, um zu veranschaulichen, was diese Phase beinhaltet Lift-and-Shift: Compute Engine Der erste Schritt zu Beginn Ihrer Lift-and-Shift-Migration ist die Einrichtung eines kompatiblen Multi-Tier-Dienstes in Compute Engine. Es gibt zwar viele Ansätze dafür; die folgenden sind die drei häufigsten: - Manuelle Einrichtung. Starten Sie eine VM mit dem gewünschten Betriebssystem, aktualisieren Sie dann die Repositorys manuell, installieren und konfigurieren Sie die Software und stellen Sie die Datenbank und die Laufzeitumgebung manuell bereit und konfigurieren Sie sie. Dieser Ansatz bietet ein hohes Maß an Kontrolle, ist jedoch zeitaufwändiger, fehleranfälliger und weniger reproduzierbar als andere Methoden - Automatisiert. Verwenden Sie Migrate to VMs, um einen Stapel von VMs (in einer bestimmten Reihenfolge) von lokal in automatisch bereitgestellte und konfigurierte VMs in der richtigen Größe in Compute Engine zu migrieren - Cloud-Marktplatz. Starten Sie einen vorkonfigurierten LAMP-Stack in Ihrem Google Cloud-Projekt. Vergewissern Sie sich, dass das bereitgestellte Betriebssystem und die Softwareversionen mit Ihrer Anwendung funktionieren. Sehen Sie sich die Cloud Marketplace-Dokumentation an, um mehr zu erfahren - Automatisierte Bereitstellung. Erstellen Sie produktionsbereite VMs mithilfe von Continuous-Integration-/Continuous-Deployment-Konzepten und einer Vielzahl von Konfigurationsmanagement-Tools (Chef, Puppet, Ansible, Salt), Infrastructure-as-Code-Tools (Deployment Manager, Terraform) und Automatisierungs-Frameworks (Cloud Build). Die automatisierte Bereitstellung ermöglicht testbare, wiederholbare und automatisierte Methoden zur Bereitstellung von VMs und Software, die Ihre Anwendungs- und Governance-Anforderungen erfüllen Verbessern und verschieben: GKE und Cloud SQL Um zu einer verwalteten Containerlösung zu wechseln, müssen Sie zunächst die Grundlage für Ihre Cluster- und verwaltete SQL-Lösung schaffen Starten eines GKE-Clusters Das Erstellen eines Clusters in GKE und das Verwalten dieses Clusters sind die ersten Schritte. Verwenden Sie die Informationen aus Ihrer Bewertungs- und Gründungsphase, um Ihren anfänglichen Cluster angemessen zu dimensionieren und zu konfigurieren und Best Practices für die Sicherheitshärtung anzuwenden Startoptionen für Cloud SQL Erstellen Sie anhand der in Ihrer Bewertungs- und Gründungsphase gewonnenen Datenbankinformationen eine neue Cloud SQL-Instanz und befolgen Sie andere Anleitungen, um die Datenbank für Ihre Anwendung zu erstellen. Google bietet eine Liste mit Best Practices für Cloud SQL, Leitfäden zum Einrichten von Hochverfügbarkeit und andere Tutorials für die horizontale Skalierung. Erkunden Sie die Optionen zum Herstellen einer Verbindung von Google Kubernetes Engine zu Cloud SQL und wählen Sie die Option aus, die für Ihre Anwendung und Ihr Erfahrungsniveau sinnvoll ist Serverlos verbessern und verschieben: App Engine und Cloud SQL Wenn Sie sich entscheiden, Ihre LAMP-Anwendung zu einem serverlosen Framework zu migrieren, müssen Sie Ihre Anwendung möglicherweise ändern, um App Engine zu unterstützen. Jede Anwendung ist anders, und es gibt viele Strategien. Beginnen Sie damit, Folgendes zu überprüfen: - Verschaffen Sie sich einen Überblick über die Microservice-Architektur in App Engine - Verstehen, wie Entwicklungs-, Test-, QA-, Staging- und Produktionsumgebungen mit Mikrodiensten in App Engine erstellt und benannt werden - Lernen Sie die Best Practices für das Entwerfen von APIs für die Kommunikation zwischen Microservices kennen - Lernen Sie die Best Practices für die Leistung von Microservices kennen Abhängig von Ihrer organisatorischen und persönlichen Erfahrung und Ihrer Vertrautheit mit der Ausführung von serverlosem Code kann die serverlose Improve-and-Move-Strategie erheblich mehr Zeit in Anspruch nehmen als die Lift-and-Shift-Optionen. Das Beste aus serverlosen Lösungen zu Ihnen zu bringen, könnte jedoch ein großer Gewinn für Ihr Unternehmen sein ## Optimierungsphase Nachdem Ihre Anwendung in Google Cloud ausgeführt wird, können Sie Ihre Annahmen und Entscheidungen aus den vorherigen drei Phasen validieren. Vollständige Migrationen können lange dauern und viele Details können sich während des Prozesses ändern. Die Optimierung umfasst viele Bereiche, aber hier sind einige allgemeine Kategorien Kostenoptimierung Der Wechsel von On-Premises in die Cloud ändert die Art und Weise, wie Sie Geld für Anwendungen, Services und Infrastruktur ausgeben. Möglicherweise führen Sie eine Bewertung eines alten lokalen Diensts durch und stellen nach der Migration fest, dass moderne Hardware, schnellerer Arbeitsspeicher und neuere CPU-Architekturen ihn effizienter ausführen. Dies kann bedeuten, dass Ihre VMs überdimensioniert sind und Geld verschwenden Sie können die Verwendung präemptiver VM-Instanzen in Compute Engine untersuchen. Vielleicht haben Sie nicht so viele Load Balancer benötigt, wie Sie dachten, oder Sie haben es geschafft, Ihre Datenbank während des Umzugs zu bereinigen und haben jetzt Speicherplatz, den Sie nicht verwenden. Die Suche nach Möglichkeiten, Geld zu sparen und die Betriebskosten in der Cloud zu senken, kann zu einem Vollzeitjob werden, der sich bezahlt macht. Google Cloud verfügt über eine Reihe von Kostenverwaltungstools, die Ihnen helfen können, die Cloud-Preise zu verstehen Automatisierung Die richtige Automatisierung Ihrer Compute-Workloads in der Cloud kann zu Kosten führen Einsparungen und Effizienzvorteile Bereitstellungsmanager ist ein Google Cloud-Produkt, das Ihnen beim Erstellen und Verwalten von Clouds helfen soll Ressourcen mit einfachen Vorlagen Skripterstellung mit gcloud ist eine Option, wenn Sie es vorziehen, Ihre eigenen Automatisierungen zu schreiben. Während finanziell Vorteile ergeben sich aus der Automatisierung, weitere Vorteile umfassen die folgenden: - Standardisierte und wiederholbare Prozesse zur Senkung der Fehlerquote - Überprüfbares Tracking für Compliance und Governance - Besseres Verständnis dafür, wie Ihre Anwendung funktioniert, wie sie kaputt geht und wie sie behoben werden kannDie Automatisierung erhöht die Betriebszeit, indem sie die Abhängigkeit von Benachrichtigungen und menschlicher Reaktionszeit verringert, die technische Schuld verringert, indem der Arbeitsablauf dokumentiert wird, und Ihre Ingenieure können sich weniger darauf konzentrieren, das Licht am Laufen zu halten, und sich mehr auf die Entwicklung besserer Produkte, Tools und Dienstleistungen konzentrieren.Diese Konzepte bilden den Kern des Site Reliability Engineering (SRE).Google Cloud bietet ein kostenloses Online-Buch über Site Reliability Engineering sowie ein SRE-Arbeitsbuch mit praktischen Beispielen und FallstudienEntkopplung Ihrer Infrastruktur und Ihres CodesSie entkoppeln Dienste viele Male, wenn eine Anwendung wächst.Das Aufteilen verbundener Dienste und das Wissen, wie sie unabhängig voneinander skaliert werden können, verbessert die Verfügbarkeit und Zuverlässigkeit Ihrer Anwendungen.Dieser Prozess besteht im Allgemeinen aus drei Schritten:- Implementieren Sie Infrastruktur als Code (IaC) überall.Durch die Implementierung von IaC- und Konfigurationsmanagementprozessen gewinnen Sie nachvollziehbare, auditierbare und reproduzierbare Bausteine ​​für die Bereitstellung und Konfiguration Ihrer gesamten Infrastruktur.- Entkoppeln Sie Ihre bestehenden Dienste in Microservices.Verwenden Sie nachrichtenorientierte Middleware wie Pub/Sub, damit jeder Microservice seine eigene Fehlerdomäne sein kann.– Beginnen Sie mit der Migration von Services von Infrastructure as a Service zu Platform as a Service , oder funktioniert sogar als Dienst oder serverlos als Dienst.Der Weg von „monolithischem Code und Infrastruktur“ zu „entkoppelten Microservices, die effizient im gesamten IaaS-Spektrum ausgeführt werden“ ist ein wertvolles Ziel, das Zeit, Mühe und Engagement erfordertLeistungsoptimierungDie Leistungsoptimierung kann zu erheblichen Verbesserungen bei der Systemauslastung und Reaktionszeit führen.Jede Workload hat eine andere Methode zur Leistungsoptimierung, von Software-Konfigurationsdateien bis hin zum Tuning von Kernel-Flags.Bei LAMP-Anwendungen fällt die Leistungsoptimierung in der Regel in drei Kategorien:- Optimierung von Cloud, Netzwerk und Betriebssystem: - 5 Schritte zu einer besseren Leistung des Google Cloud-Netzwerks können Ihnen helfen zu verstehen, wie Sie das Beste aus Google Cloud Networking herausholen können - Die TCP-Optimierung für die Netzwerkleistung in Google Cloud kann hilfreich sein, wenn Sie bestimmte TCP-Latenzanforderungen haben - Die Optimierung von persistenten Festplatten und lokaler SSD-Leistung kann Ihnen dabei helfen, mehr über die Architektur für IOPS-starke Workloads zu erfahren - Die Verbesserung der Leistung von Compute Engine kann die Leistung von API-Anwendungen verbessern, wenn sie mit anderen Google Cloud-APIs und -Diensten interagieren - Tuning des Webservers: - Apache Performance Tuning und NGINX Performance Tuning oder eine allgemeine Google-Suche nach "Your Webserver Performance Tuning"führt Sie in die richtige Richtung Optimierung der Datenbank: ## Was kommt als nächstes - Einrichtung von LAMP in Compute Engine - Stellen Sie einen LAMP-Stack bereit – Weitere Informationen zum Ausführen von Compute-Arbeitslasten in Compute Engine oder GKE Verbinden Sie GKE mit Cloud SQL Erkunden Sie Migration zu VMs und Migration zu Containern Erstellen Sie mit App Engine hochgradig skalierbare Anwendungen auf einer vollständig verwalteten serverlosen Plattform Erfahren Sie mehr über Datenbankoptionen in Google Cloud Erkunden Sie Referenzarchitekturen, Diagramme, Tutorials und Best Practices zu Google Cloud. Werfen Sie einen Blick in unser Cloud Architecture Center.