7. März 2022

„Platform as a Service“ am Beispiel Django auf Google App Engine

AuthorAna Novokmet
Kategorien

Cloud Computing wird immer allgegenwärtiger und relevanter – weshalb ein fundiertes Wissen dazu wichtig ist. „Platform as a Service“ (PaaS) bietet Unternehmen eine leistungsstarke Möglichkeit, um moderne und cloudbasierte Softwareentwicklung voranzutreiben. In den ersten beiden Teilen unserer PaaS-Blogserie haben wir Ihnen bereits einen Überblick über allgemeine Vorteile dieses Modells erläutert und die Einsatzmöglichkeiten von Django on Beanstalk betrachtet. Im dritten Teil fokussieren wir uns nun darauf, was die Google App Engine im Bereich Platform as a Service bietet.

Google App Engine – ein Überblick

Google App Engine ist eine vollständig verwaltete, serverlose Plattform für die Entwicklung und das Hosting von Webanwendungen in großem Umfang. Bei dieser Platform as a Service(PaaS) Lösung ist es möglich, Anwendungen mit einer Vielzahl von beliebten Sprachen, Bibliotheken und Frameworks zu entwerfen und zu entwickeln. Dabei kann man als Entwickler Google App Engine die Bereitstellung von Servern und die Skalierung von Anwendungsinstanzen je nach Bedarf überlassen. (Quelle)

Zusammenfassend lässt sich sagen, dass Google App Engine eine Platform as a Service (PaaS) Lösung ist, die die Anwendungsbereitstellung in der Cloud-Computing-Umgebung vereinfacht. Obwohl Google App Engine sowohl von kleinen als auch von großen Organisationen genutzt werden kann, ist es für größere Unternehmen und Organisationen durch aus interessanter, da hier viel automatisiert ist. (Quelle)

Vor- und Nachteile von Google App Engine

Google App Engine bietet als Platform as a Service (PaaS) Lösung viel mehr Vorteile als Nachteile. App Engine ist eine kosteneffiziente Lösung für Anwendungen mit geringem Datenverkehr und kleine Unternehmen. Dabei können Unternehmen von schnelleren Autoskalierungsfunktionen profitieren. Die Verwaltung ist weniger kompliziert, so dass sich die Entwickler nur um ihre Anwendung und nicht um die Verwaltung der VMs kümmern müssen. Google App Engine verfügt außerdem über integrierte Funktionen für die Versionskontrolle und die Aufteilung des Datenverkehrs. Diese macht die Funktionen schneller und effizienter. Der Zugriff auf den Memcache ist möglich, während der Zugriff auf den Datastore viel schneller ist.  

Da die Instanzen kleiner sind, ist Google App Engine andererseits auch begrenzter. Dies vereinfacht und beschleunigt die automatische Skalierung, auch wenn große Anwendungen möglicherweise größere Instanzen virtueller Maschinen erfordern. Darüber hinausunterstützt diese Platform as a Service Lösung keine Netzwerke. (Quelle)

Django auf der Google App Engine

Es gibt mehrere Optionen für die Bereitstellung von Django-Python-Anwendungen in der Google-Cloud-Computing-Umgebung:

  • App Engine Standard Environment
  • App Engine Flexible Environment
  • Cloud Run
  • Google Kubernetes Engine (GKE)
  • Compute Engine

Wir werden in diesem Blogbeitrag die Ausführung von Django in der Google App Engine Standardumgebung behandeln. Django-Python-Apps, die auf der Google Cloud laufen, werden von derselben Infrastruktur betrieben, auf der auch alle anderen Google-Produkte laufen, was die Anpassungsfähigkeit der App an wechselnde Arbeitslasten erhöht. (Quelle)  

Als Voraussetzung benötigen Sie ein Google Cloud-Konto mit aktivierter Abrechnung, Cloud SQL Admin API, Secret Manager und Cloud Build APIs. Außerdem muss Google Cloud CLI installiert und initialisiert werden.

Allgemeine Schritt-für-Schritt Anleitung:

Schritt 1: Vorbereiten der Umgebung
Schritt 2: Erstellen von Backing-Diensten
Schritt 3: Ausführen der Anwendung auf dem lokalen Computer
Schritt 4: Verwendung der Django-Verwaltungskonsole Schritt 5: Bereitstellen der Anwendung in der App Engine Standardumgebung

Schritt 1:Vorbereiten der Umgebung

Für diese Django-Beispielanwendung klonen Sie das Repository auf Ihren lokalen Rechner und navigieren zum Beispielcode-Verzeichnis. Stellen Sie außerdem sicher, dass Sie mindestens Python 3.7 installiert haben. Erstellen Sie dann eine virtuelle Python-Umgebung und installieren Sie die Abhängigkeiten.

Danach müssen Sie den Cloud SQL Auth Proxy herunterladen, um sich von Ihrem lokalen Rechner aus mit Cloud SQL zu verbinden. Dazu müssen Sie sich authentifizieren und Anmeldeinformationen für die API erhalten und den Cloud SQL Auth-Proxyherunterladen und installieren, wie in den folgenden Abbildungen gezeigt. (Quelle)

Schritt 2: Erstellen von Backing-Diensten

Alle Dienste sollten in derselben Region bereitgestellt werden. In diesem Schritt werden Sie die Datenbank, den Medienspeicher und den geheimen Speicher einrichten.

Um eine PostgreSQL-Instanz zu erstellen, müssen Sie zur Cloud Console gehen und im Abschnitt Cloud SQL-Instanzen auf Instanz erstellen klicken. Danach klicken Sie auf Instanz erstellen und dann auf PostgreSQL. Geben Sie im Feld Instance ID den gewünschten Instanznamen und ein Passwort für den PostgreSQL-Benutzer ein. Klicken Sie abschließend auf Erstellen.

Auf der Seite der erstellten Instanz gehen Sie auf die Registerkarte Datenbanken und klicken Sie auf Datenbank erstellen. Legen Sie den Datenbanknamen fest und klicken Sie auf Erstellen.

Um einen Datenbankbenutzer zu erstellen, gehen Sie auf die Registerkarte Benutzer und klicken Sie auf Benutzerkonto hinzufügen. Fügen Sie unter Integrierte Authentifizierung ein Benutzerkonto zur Instanz hinzu, geben Sie Datenbank-Benutzername und Passwort ein und klicken Sie auf Hinzufügen. (Quelle)

Um Werte über konfigurierte Sicherungsdienste zu sichern, lesen Sie bitte den Abschnitt Geheime Werte im Secret Managerspeichern.

Schritt 3: Ausführender App auf dem lokalen Computer

Starten Sie in einemseparaten Terminal den Cloud SQL Auth Proxy, setzen Sie die Projekt-ID lokal, setzen Sie eine Umgebungsvariable, die angibt, dass Sie den Cloud SQL Auth Proxy verwenden.

Führen Sie die Django-Migrationen aus, um Ihre Modelle und Assets einzurichten, und starten Sie schließlich den Django-Webserver. Rufen Sie im Browser die Seitehttp://localhost:8000 auf, um den Text der Beispielanwendung anzuzeigen. Um den lokalen Webserver zu stoppen, drücken Sie Strg / Cmd + C. (Quelle)

Schritt 4: Verwendung der Django-Verwaltungskonsole

Um die Verwaltungskonsole von Django zu verwenden, müssen Sie einen Superuser anlegen und einen Benutzernamen, eine E-Mail-Adresse und ein Passwort eingeben. Gehen Sie zu http://localhost:8000/admin und melden Sie sich mit den erstellten Anmeldedaten an. (Quelle)

Schritt 5: Verwendung der Django-Verwaltungskonsole

Laden Sie zunächst die Anwendung hoch und stellen Sie sie bereit. Geben Sie "yes" ein, wenn Sie aufgefordert werden, die Einstellungen zu bestätigen, und warten Sie auf die Fertigstellungsmeldung. Danach öffnen Sie app.yaml und aktualisieren den Wert von APPENGINE_URL mit Ihrer bereitgestellten URL und aktualisieren Ihre Konfigurationsänderungen mit der Bereitstellung der Anwendung erneut.

Um die bereitgestellte Anwendung auszuführen, öffnen Sie die bereitgestellte Website oder zeigen Sie alternativ die URL an und öffnen Sie sie manuell. (Quelle)

Weitere Informationen zum Aktualisieren Ihrer Anwendung, zum Verständnis des Codes oder zum Aufräumen des Django-Python-Projekts finden Sie in der offiziellen Google Cloud-Dokumentation.  

Die meisten Cloud-Anbieter bieten irgendeine Form von Platform as a Service (PaaS) an und machen die oben genannten Vorteile für jedes Unternehmen nutzbar. Weitere PaaS-Beispiele sind Microsoft Azure App Services und Elastic Beanstalk. Mehr darüber erfahren Sie in den kommenden Blogartikeln.


Empfohlenene Artikel
22. Dezember 2022 Libelle IT-Glossar Teil 22: Was ist DevOps?
30. November 2022 Die 12-Faktor-App Teil 3: (Einweggebrauch, Dev-Prod-Vergleichbarkeit, Logs, Admin-Prozesse)

Alle Blogartikel