Eine Phalcon Anwendung auf Google Cloud Run bereitstellen
Einleitung
In diesem Artikel wird erklärt, wie man eine Phalcon PHP-Anwendung mithilfe von Gitlab CI/CD auf Google Cloud Run bereitstellen kann.
Innerhalb der Google Cloud Run-Umgebung können skalierbare Containeranwendungen online gebracht werden. Es stehen 2 Millionen kostenlose Anfragen pro Monat zur Verfügung, und man kann zusätzlich ein Guthaben von 300 USD von Google erhalten. Google Cloud Run integriert sich nahtlos in Gitlab CI/CD, sodass Entwickler Anwendungen in Docker-Containern einfach und schnell erstellen können.
Weitere Informationen finden Sie unter Google Cloud Run
Erstellen der Anwendung
In diesem Beispiel verwenden wir eine einfache REST-Anwendung auf Basis von Phalcon, nämlich die RSS Feed Aggregator API.
Um diese Anwendung zu nutzen, können Sie sie in ein neues Repository forken.
Das Repository enthält nicht nur den Quellcode, sondern auch die Gitlab-CI/CD Datei für die Build- und Deploy-Pipeline sowie einen vorkonfigurierten Docker Container.
Einstellungen in Gitlab
Service Account
Unter Operate
-> Google Cloud
-> Configuration
haben Sie nun die Möglichkeit, einen neuen Service Account zu verknüpfen:
Nach erfolgreichem Login in unser Google Cloud-Konto werden wir von Gitlab aufgefordert, unser Projekt anzugeben und festzulegen, für welche Referenzen (Branches/Tags) der Service Account gültig ist.
Region
Anschließend legen wir unter Operate
-> Google Cloud
-> Configuration
eine Region fest:
Datenbank
Google Cloud SQL ist ein gemanagter, cloudbasierter Datenbankdienst von Google. Er ermöglicht die Verwaltung relationaler Datenbanken wie MySQL und PostgreSQL ohne die Notwendigkeit, sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Google übernimmt die Verwaltung von Sicherheit, Skalierung und Hochverfügbarkeit, während Entwickler sich auf die Anwendungsentwicklung konzentrieren können.
Jetzt können wir unter Operate
-> Google Cloud
-> Databases
eine Cloud SQL for MySQL-Datenbank erstellen.
Nun müssen wir einige weitere Fragen beantworten: das Google Cloud-Projekt, in dem die SQL-Datenbank erstellt werden soll, die gewünschten Referenzen, den Maschinentyp und die Datenbankversion.
Der gewählte Maschinentyp ist entscheidend für die entstehenden Kosten.
Umgebungsvariablen
Danach gehen wir zu Settings
-> CI/CD
-> Variables
um die Variablen für die CI/CD-Umgebung zu definieren.
GOOGLE_IMAGE
Die Google Artifact Registry ist ein verwalteter Dienst von Google Cloud, der es Entwicklern ermöglicht, Container-Images und Pakete sicher zu speichern, zu verwalten und freizugeben. Dieser Dienst unterstützt verschiedene Paketmanager und Containerregistrar und bietet eine zuverlässige und skalierbare Lösung für die Verwaltung von Artefakten während des Entwicklungsprozesses.
Die Umgebungsvariable GOOGLE_IMAGE
enthält die URL zu dem Artifact Repository innerhalb der Google Cloud. Um dies zu konfigurieren, wechseln wir zur Google Artifact Registry und erstellen ein neues Repository.
Nach der Erstellung erhalten wir die URL, indem wir das Kopieren-Symbol verwenden. Die URL sieht dann folgendermaßen aus:
europe-west4-docker.pkg.dev/pazdzewicz-cloud/cloud-run-tutorial
GOOGLE_ACCOUNT
Um Docker-Images in das Google Artifact Repository hochladen zu können, benötigen wir erneut ein Dienstkonto. Befolgen Sie dazu einfach diese Anleitung: Authentifizierung für Docker mittels Dienstkontoschlüssel einrichten
Den Inhalt der Datei schreiben Sie nun in die Umgebungsvariable GOOGLE_ACCOUNT
GCP_ENV_MYSQL_DATABASE
Dort tragen wir den Datenbank Namen für die Anwendung ein. Wenn wir die Datenbank via Gitlab erstellt haben, geht dies relativ einfach. Dafür müssen wir gar nichts machen.
GCP_ENV_MYSQL_HOST
Dort tragen wir den Datenbank Server für die Anwendung ein. Wenn wir die Datenbank via Gitlab erstellt haben, geht dies relativ einfach. Dafür müssen wir gar nichts machen.
GCP_ENV_MYSQL_USER
Dort tragen wir den Datenbank Nutzer für die Anwendung ein. Wenn wir die Datenbank via Gitlab erstellt haben, geht dies relativ einfach. Dafür müssen wir gar nichts machen.
GCP_ENV_MYSQL_PASSWORD
Dort tragen wir das Passwort für den Datenbank Nutzer für die Anwendung ein. Wenn wir die Datenbank via Gitlab erstellt haben, geht dies relativ einfach. Dafür müssen wir gar nichts machen.
GCP_ENV_APPLICATION_PUBLIC_URL
Dort tragen wir die Public URL für die Anwendung ein.
GCP_CONTAINER_PORT
Dort tragen wir den Port für unsere Anwendung ein. Wenn nicht angegegeben wird 8080
genutzt.
Deployment
Nun haben wir alle Vorbereitungen für eine erfolgreiche Bereitstellung (Deployment) abgeschlossen und können die CI/CD-Pipeline auf dem master
Branch ausführen.
Und damit ist das Deployment abgeschlossen.
Sie können das Ergebnis auch in Gitlab unter Operate
-> Environments
einsehen.
Durch einen Klick auf Open
wird die Seite direkt in einem neuen Tab geöffnet.