Migration einer Tracking-Platform für Sportaktivitäten von AWS zu MS Azure
Kurzbeschreibung
Der Kunde möchte seine IT-Platformen konsolidieren. In diesem Zusammenhang soll die momentan auf AWS gehostete App nach MS Azure migriert werden. Dazu gehören die Umstellung auf Container der Ruby-On-Rails-App, sowie das Einrichten eines Container-Repository auf Azure. Weiter wurde die Infrastruktur auf Azure aufgesetzt, welche viele Azure Services umfasst (Azure Conainer Instances, Azure App Service for Linux, Azure Function App, Blob-Storage-Instanz, Azure Postgres-DB sowie Azure Front Door). Für eine kontinuierliche Bereitstellung der Applikation wird eine Azure Devops CI/CD Pipeline aufgesetzt.
Ergänzung
Da der Azure App Service die benötigte Rails-Umgebung nicht unterstützt, wurde entschieden, die App als Container zu deployen. Dabei werden drei Instanzen erzeugt: Ein Azure App Service for Linux mit “Custom Container”, auf dem der eigentliche Web-Service läuft, eine Azure Container Instance, auf der ein Worker-Prozess läuft. Eine weitere Azure Container Instance wird für den Sync-Service verwendet, der einmal pro Tag Daten in die Postgres-DB synchronisiert. Um den Synchronisationsprozess anzustoßen, wurde eine Azure Function (Linux-Based) erstellt, die die Container-Instance, die für die Synchronisation zuständig ist, einmal pro Tag startet. App Service und Container Instances sind so konfiguriert, dass sie automatisch aktualisiert werden, sobald eine neue Version des Containers in die Container-Registry geladen wird.
Fachbeschreibung
Das Hauptziel des Kunden ist eine Konsolidierung seiner IT-Umgebung: Man hat entschieden, auf MS Azure als Cloud-Provider zu setzen und möchte nun Projekte, die bei anderen Providern gehostet werden nach Azure migrieren. Funktional ändert sich an der App durch die Migration nichts.