Cultured Code: Server-Backend von Things nun auch in Swift
Die Programmiersprache Swift wird in immer mehr Apps fĂĽr Apple-Plattformen verwendet. Cultured Code hat das nun auch beim Server getan.
Things-Architektur mit Swift im Mittelpunkt: Nicht nur lokal geeignet.
(Bild: Cultured Code)
Apples Programmiersprache Swift, in der zahlreiche iPhone-, Mac- und zunehmend auch Windows-Apps entwickelt werden, ist auch geeignet für den Serverbetrieb. Die Macher hinter dem beliebten Taskmanager Things vom deutschen Entwickler Cultured Code haben das nun für ihre eigene Anwendung demonstriert: Seit Frühjahr läuft das Backend der Things Cloud darauf.
Alle Apple-Plattformen angesprochen
Der Synchronisationsdienst sorgt dafür, dass die Daten aus Things zwischen den unterstützten Geräten verteilt werden – das sind derzeit nahezu alle Apple-Plattformen, also iPhone, iPad, Mac, Apple Watch und Vision Pro. Ursprünglich lief das Backend mit Python 2 auf Googles App Engine. Das sei zwar stabil gewesen, man habe aber schnell Einschränkungen gespürt, schreibt Cultured Code. Dazu gehörten ein hoher Speicherbedarf, der die Infrastrukturkosten nach oben trieb, relativ langsame Antwortzeiten und das problematische Static Typing in Python 2, das Speichervorgänge verkomplizierte.
Videos by heise
Zudem mussten die Macher für ihr Push-Benachrichtigungssystem einen eigenen C-basierten Dienst entwickeln und pflegen. Aufgrund all dieser Schwierigkeiten und der Tatsache, dass verschiedene Abkündigungen von verwendeten Bibliotheken anstanden, entschieden sich die Things-Macher schließlich für einen vollständigen Rewrite von Things Cloud. Dieser sollte, genauso wie Things selbst, in Swift erfolgen, nachdem sich andere Entwicklungsumgebungen wie Java, Go, C++ oder ein Sprung auf Python 3 ausschlossen. Positiv sei auch gewesen, schreibt Cultured Code, dass Swift "seit langem" auf Linux sauber kompiliert und es bereits seit fast zehn Jahren eine Swift-Server-Workgroup gibt. Cultured Code entschied sich weiterhin zur Verwendung des Swift-on-a-Server-Pakets Vapor sowie der SwiftNIO-Bibliothek.
Dreimal gĂĽnstiger, viermal schneller
Endergebnis ist nun, dass die Things Cloud auf AWS mit Terraform und Kubernetes läuft. Inhalte von Things landen via HAProxy auf dem Swift-Server, Mail-Inhalte via Lambda uns SQS. Zum Ausspielen und Speichern von Daten werden RediStack, MySQLKit, Soto (in Richtung S3) und Apples APNSwift (für Benachrichtigungen) verwendet.
Im Ergebnis reduzierten sich sowohl die Compute-Kosten als auch die Antwortzeiten: Dreimal günstiger soll die Swift-Architektur sein, bei einer viermal geringeren Response Time. Weitere Details zum Umstieg von Things Cloud auf Swift hat Cultured Code in einer Präsentation von der ServerSide.Swift-Konferenz zusammengefasst.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier ein externer Preisvergleich (heise Preisvergleich) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (heise Preisvergleich) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
(bsc)