Lock-ins als Gefahr der Portabilität in der Cloud
Es stellt sich die Frage, wie weit man gehen sollte, um die Portabilität von Applikationen in der Cloud zu erhöhen und welchen Preis man dafür zahlt. Wie Gregor Hohpe in seinem Artikel gut beschrieben hat, gibt es verschiedene Arten von Lock-ins.
Bei Diskussionen über die Vermeidung von Vendor Lock-in muss beachtet werden, dass man oft andere Arten von Lock-ins einführt. Einige Beispiele sind:
Produkt Lock-in:
Um möglichst portabel zu sein, werden häufig Cloud-unabhängige Produkte und Frameworks, meistens in Form von Open-Source-Projekten, eingesetzt. Dadurch tauscht man jedoch einen Lock-in auf einen Cloud-Anbieter gegen ein Lock-in auf ein bestimmtes Produkt.
Man ist davon abhängig, dass das Produkt weiterhin aktiv von dessen Anbieter oder Open-Source-Community gepflegt wird, was nicht immer der Fall ist.
Architektur Lock-in:
Um Vendor Lock-in zu vermeiden, unterlässt man die Verwendung von Anbieter-spezifischen Produkten und Features. Dies führt jedoch dazu, dass manche Architektur-Möglichkeiten gar nicht mehr möglich sind.
So ist z.B. eine Serverless-Architektur wie von Kevin Duss gut erläutert, ohne den Einsatz von Function-as-a-Service und einer engen Integration mit anderen Produkten des Anbieters nicht möglich und man ist darauf beschränkt, andere Optionen zu wählen.
Skill Lock-in:
Um den Einsatz von Anbieter-spezifischen Platform-as-a-Service Produkten zu vermeiden, muss man dessen Alternativen oft selbst hosten und betreiben.
Dies ist jedoch oftmals nicht nur mit erheblichem Aufwand verbunden, sondern man benötigt dafür auch genügend Mitarbeiter mit passendem Know-how, wie z.B. zum Betrieb eines eigenen Kubernetes-Clusters.