Accueil  |  KiwiPédia  |  Actualités  |  Kiwi Backup adopte le langage de programmation Go

Kiwi Backup adopte le langage de programmation Go

 

Historiquement, Kiwi Backup développait ses logiciels en Python, un langage de programmation très polyvalent. Cependant, en 2021, nous avons décidé de poursuivre le développement de notre solution en adoptant Go, un langage de programmation open source développé par Google, également connu sous le nom de Golang.

 

Quels sont les bénéfices du Go par rapport à Python ?

Portabilité

Comme évoqué précédemment, Kiwi Backup a opté pour une refonte de sa solution au travers de l'utilisation du langage de programmation GO. Ce choix technique avait été rendu nécessaire par notre volonté d'étendre notre solution aux plateformes NAS (Synology, QNAP). En effet, la solution était initialement développée en Python, ce qui rendait l'installation sur les produits NAS très complexe.

Grâce à sa capacité à générer des exécutables autonomes pour différentes plateformes, l’utilisation de Go élimine la dépendance à un interpréteur spécifique. Python nécessite un interpréteur Python installé sur chaque système pour exécuter le code, et peut donc rencontrer des problèmes de compatibilité. 

Gains en performance

L'un des avantages majeurs de Go par rapport à Python réside dans sa vitesse d'exécution. Go est un langage compilé, ce qui signifie que le code source est transformé en code machine avant l'exécution. En revanche, Python est un langage interprété, ce qui signifie que le code est exécuté ligne par ligne par un interpréteur. Cette différence fondamentale dans l'approche de l'exécution du code confère à Go un avantage significatif en termes de performances. 

Son utilisation nous a permis de réaliser un gain de performance important pouvant aller jusqu'à 10 fois. Dans les exemples illustrés ci-dessous, ce gain est de 2x sur une machine de 75 Go et de 5x sur une machine de 250 Go :

gain_de_performance
gain de performance

 

Grâce à sa capacité d’évolutivité du CPU, le langage GO se distingue par sa performance et son efficacité. Chez Kiwi Backup, nous avons aujourd'hui la capacité de supporter une 15aine de CPU pour les solutions Synology et 4 pour QNAP, nous ouvrant ainsi le marché de la sauvegarde de ce type de serveurs. 

Sûreté

Contrairement à un langage typé dynamiquement comme Python, un langage typé statiquement tel que GO permet de détecter les erreurs précoces et les petits bogues dès la phase de compilation. En effet, avec Python, l’interférence de type est implémentée par l’interprète, et certains bogues peuvent donc persister.


 

Articles relatifs