3 min Devops

Casestudy: Swift sneller en goedkoper dan Python

Casestudy: Swift sneller en goedkoper dan Python

Swift op de server biedt verrassende voordelen. Een casestudy van Cultured Code laat zien dat het tot vier keer sneller en drie keer goedkoper kan zijn dan Python. Er zijn ook nadelen, zoals trage buildtijden.

Swift wordt voornamelijk gebruikt voor applicatieontwikkeling op Apple-computers en -apparaten. In principe is de taal ook geschikt voor server-side werk, maar de adoptie van server-side Swift blijft beperkt. IBM, een vroege voorstander van het idee, liet in 2019 zijn Kitura Swift-framework vallen.

Toch blijft het aantrekkelijk om dezelfde taal zowel op de client als de server te gebruiken. Cultured Code, de ontwikkelaar van een populaire persoonlijke takenbeheerder voor Apple-platforms, heeft de vervanging van een Python 2-applicatie op Google App Engine door Swift op Kubernetes (gehost door AWS) gedocumenteerd. DevClass schrijft erover.

Volgens Vojtěch Rylko, verantwoordelijk voor ontwikkeling en operations, en CEO Werner Jainek verbeterde de overstap de gemiddelde responstijd van de cloudapplicatie—die gebruikersgegevens opslaat en synchroniseert over meerdere apparaten—met een factor vier, terwijl de gemiddelde rekencapaciteit drie keer goedkoper werd.

Wat betreft de oude applicatie noemde het duo het gebrek aan statische typering in Python als een probleem, waardoor volgens hen elke verandering riskant werd. Daarnaast kampte het systeem met trage responstijden en hoog geheugengebruik, waardoor een volledige herschrijving de enige haalbare oplossing was.

De nieuwe applicatie: Swift met Vapor en Kubernetes  

De nieuwe Linux-applicatie maakt gebruik van Vapor voor het bouwen van HTTP-servers en API’s. Vapor gebruikt Apple’s SwiftNIO voor asynchrone event-gedreven netwerkprogrammering.

De applicatie draait op Kubernetes binnen AWS en bestaat uit ongeveer 30.000 regels code. De buildtijd bedraagt ongeveer 10 minuten, waarbij Xcode wordt gebruikt voor codering en debugging. De database is AWS Aurora MySQL, Redis wordt ingezet voor tijdelijke data, en de applicatie draait op een klein Kubernetes-cluster met vier nodes. Python wordt nog steeds gebruikt voor een dienst in AWS Lambda voor e-mailverwerking, dankzij de beschikbaarheid van geschikte volwassen bibliotheken.

Het team moedigt anderen aan om server-side Swift te overwegen en wijst op recente verbeteringen in de Swift-Java interoperabiliteit, wat een geleidelijke adoptie kan vergemakkelijken. Vooral voor Apple-georiënteerde ontwikkeling biedt Swift een aantrekkelijke oplossing, omdat het de programmeeromgeving vereenvoudigt door dezelfde taal overal te gebruiken, van apparaat tot cloud.

Risico’s en nadelen  

Er zijn ook risico’s. Cultured Code benadrukt dat Swift’s server-ondersteuning nog niet zo volwassen is als die van andere talen. Zo was het gebrek aan een geschikte bibliotheek een reden om Python 3 te blijven gebruiken voor e-mailverwerking. Een ander nadeel is de lange buildtijd. Dit kan frustrerend zijn voor ontwikkelaars die codewijzigingen testen.