Der Autor stellte sich einem Problem bei der effizienten Speicherung von Bild-Daten in einem Projekt auf der Google Cloud Platform. Anfangs wurden base64-codierte Bilder in Cloud SQL gespeichert, was zu einem erhöhten Datenbank-Auslastung und möglicher Leistungsminderung führte. Um dieses Problem zu lösen, entschied sich der Autor, die Bilder zu Google Cloud Storage (GCS) zu migrieren, der für die Speicherung großer Objekte optimiert ist. Ein TypeScript-Skript wurde erstellt, um die Migration zu verarbeiten, und ein Kubernetes-Job auf Google Kubernetes Engine (GKE) wurde eingerichtet, um das Skript sicher innerhalb eines privaten Netzwerks auszuführen. GitHub Actions wurde verwendet, um die Bereitstellung zu automatisieren, was manuelle Fehler reduzierte und die Sicherheit verbesserte. Der Migrationsprozess umfasste das Extrahieren von Bild-Daten aus Cloud SQL, das Decodieren der base64-Zeichenfolge, das Bestimmen des Bild-Dateityps und das Hochladen des Bildes auf GCS. Nach der Migration wurde der Anwendungscode aktualisiert, um auf Bilder in GCS zu verweisen, und umfassende Tests wurden durchgeführt, um die Funktionsweise zu gewährleisten. Schließlich wurden der Kubernetes-Job und die zugehörigen Ressourcen gelöscht, und das Migrations-Skript wurde aus dem Codebase entfernt, um unbeabsichtigte Wiederverwendung zu vermeiden.
dev.to
Optimizing database performance by migrating Images to GCS
