Concevoir un cloud collaboratif sécurisé et souverain est l’un des plus audacieux projets d’Infomaniak. Pour donner naissance à kDrive, nous avons engagé nos équipes dans 3 ans de recherche et développement et investi 8 millions de francs. Le résultat : une plateforme cloud Swiss made dédiée à la productivité et respectueuse de la vie privée.

Comment une entreprise non cotée en bourse et 100% indépendante comme Infomaniak a-t-elle pu concrétiser un projet aussi vaste et complexe ? Nous avons réuni nos ingénieurs pour nous raconter le développement de kDrive et nous partager les détails de sa conception unique.

Une technologie indépendante et stratégique pour Infomaniak

Avant d’être un coffre-fort, kDrive est un produit d’importance majeure pour l’avenir d’Infomaniak. Il montre la direction dans laquelle nous orientons nos offres afin de répondre aux besoins des PME et du grand public. Cette évolution, c’est la mise à disposition de notre savoir-faire et de nos infrastructures cloud au service d’outils faciles à adopter et à prendre en main.

Si kDrive est aussi important, c’est parce que c’est la réponse à une demande intense et répétée de nos utilisateurs et du marché pour une solution de stockage collaborative respectueuse de la vie privée et entièrement gérée sur le continent européen. Cette demande est déjà apparue en 2012 avec le lancement du WorkSpace, et elle n’a cessé de s’intensifier depuis le lancement de Swiss Backup, notre solution de sauvegarde dans le Cloud. Avec kDrive, nous sommes donc très attendus et nous voyons les choses en grand !

Les fondations de kDrive sont basées sur des standards exigeants et éprouvés

Le développement de kDrive est le fruit d’échanges étroits avec nos clients et partenaires, en Suisse et en Europe. Dès le départ, nos ingénieurs ont planté le décor :

Sécurité, confidentialité, disponibilité

C’est le premier étage de la fusée 🚀. D’entrée de jeu, les développeurs ont imaginé kDrive comme un produit critique (fail proof). Nos clients allaient y stocker tous leurs fichiers, professionnels et privés. La perte de données ou leur indisponibilité n’a donc jamais été une option. Les exigences de confidentialité ont imposé le chiffrement systématique et une conception compartimentée. Nos ingénieurs devaient donc concevoir une architecture robuste, scalable et insensible aux pannes.

Collaboration, simplicité, évolutivité

kDrive devait aussi répondre à une évolution des besoins de nos utilisateurs. C’est le deuxième étage de la fusée qui comporte toute la réflexion et les choix technologiques, l’ergonomie et les outils de productivité. kDrive a donc dès l’origine été conçu pour être une plateforme collaborative et évolutive.

Une technologie indépendante, développée et hébergée au cœur de l’Europe

Comment sommes-nous parvenus à développer en si peu de temps une solution de stockage collaborative qui remplit toutes ces exigences ?

Nous avons pris notre temps

C’est un comble pour une entreprise suisse 😉, mais c’est bien la première clé de la réussite du projet :

« Aussi vite que possible, mais aussi lentement que nécessaire ».

Nos développeurs ont pris le temps de connaître sur le bout des doigts les forces et les faiblesses de la technologie d’object storage envisagée pour kDrive, en situation d’utilisation réelle et sur la durée. Nous avons recherché la maîtrise technologique avant tout.

Nous avons tiré les enseignements de nos propres produits

Si nous avons pu développer un service aussi robuste et évolutif, c’est en nous servant de notre expérience préalable. Nos développeurs ont éprouvé la fiabilité et exploité le retour d’expérience et le monitoring de services comme SwissTransfer et Swiss Backup pour délimiter le rôle de chaque technologie dans kDrive. Nous en avons conclu qu’il fallait développer une couche logicielle intermédiaire entre les données des clients et notre système de stockage objet.

L’expérience de la première version du WorkSpace, dont les mises à jour se faisaient simultanément pour tous les clients et à large échelle, a appuyé le choix d’une architecture en silos, bien plus souple, pour kDrive.

Le développement de kDrive en interne

kDrive est un travail d’équipe qui mobilise un nombre important de collaborateurs dans tous les départements d’Infomaniak. La phase initiale de développement a occupé 20 ingénieurs pendant plus de 12 mois. Nos développeurs, ingénieurs système et responsables de la production nous ont décortiqué les grands volets techniques du développement de kDrive :

Les technologies à l’œuvre dans le projet

La majorité du code de kDrive a été écrite en php. Les bases de données utilisent MariaDB (fork de MySQL) avec lequel nous avons une expertise depuis de nombreuses années.

Le stockage objet repose sur OpenStack SWIFT, une technologie Open Source qui propulse également SwissTransfer et Swiss Backup.

Un middleware développé par notre équipe dans Kubernetes règle la majorité de la logique métier. Il fait le pont entre la gestion des données et l’application kDrive des clients.

Les langages de programmation GO et Python sont également utilisés pour fournir l’aperçu des miniatures de fichiers et d’autres outils périphériques. Chaque technologie n’est utilisée que pour ce qu’elle fait de mieux et rien d’autre.

Garantir la disponibilité, la confidentialité et l’intégrité des données

Le cahier des charges de kDrive a demandé à nos ingénieurs de faire converger des exigences diverses vers une architecture à la fois robuste et flexible. C’est le défi qu’ils ont relevé, notamment en développant ce middleware, le cœur de kDrive.

kDrive repose sur une forte compartimentation. Chaque drive contient sa propre base de données qui fournit une cartographie des fichiers du client pour les relier à leur emplacement de stockage dans OpenStack SWIFT. Ce travail de liaison est effectué par le middleware et permet à chaque instance (bases de données, stockage, logs, etc.) de rester totalement indépendantes les unes des autres. Les bases de données contenant les identifiants sont séparées de celles des structures de fichiers, propres à chaque drive et de la base générale d’Infomaniak.

L’avantage de Kubernetes est aussi sa grande scalabilité. Tous les services de kDrive peuvent donc se redimensionner dynamiquement et automatiquement. Enfin, le contenu et la structure du contenu de chaque client sont systématiquement chiffrés et sauvegardés en permanence sur au moins 3 emplacements dans plusieurs datacenters maîtrisés par Infomaniak.

Voici un schéma simplifié de l’architecture générale de kDrive :

Le middleware d’Infomaniak (schéma : kDrive Heart) permet d’exploiter la compartimentation au maximum. Il apporte aussi l’intelligence et la performance que l’object storage ne fournit pas nativement (gérer une énorme quantité de demandes, trouver les fichiers, créer des aperçus, etc.).

Une architecture sécurisée qui limite les risques de sécurité et de cyberattaques

La technologie 100% indépendante de kDrive limite sa vulnérabilité, comparativement à d’autres systèmes. Les fichiers sont très rarement exécutés et l’architecture en silos réduit considérablement le champ d’action potentiel d’un malware ou d’un virus. En pratique, exécuter un virus dans kDrive n’aboutit à rien et ne sert donc à rien. La compartimentation des données, de leur architecture et de leur accès rend ainsi toutes tentatives d’exploitation non autorisées impossibles à notre connaissance.

De la conception à la mise en production de kDrive

La première chose qui frappe lorsque nous parlons avec nos ingénieurs, c’est qu’il n’y a pas de frontière entre les développeurs et la production. C’est un travail d’équipe pour maîtriser chaque facette de kDrive :

Garantir la robustesse de l’infrastructure

Des machines aux équipes, les critères de fiabilité dictent toute la structure et l’organisation de kDrive. En plus des tests de charge, des mesures de protection anti DDOS (internes, externes) et des tâches automatisées de maintenance, l’ensemble des bases de données sont sauvegardées en permanence. Certaines réplications de sauvegardes sont également décalées dans le temps pour pouvoir, le cas échéant, rattraper une erreur humaine qui serait parvenue à passer l’exigence des processus de validation et de mise en production.

Permettre une grande scalabilité

Les technologies employées (SWIFT et Kubernetes) permettent de prévoir une croissance indéfinie des services. Mais ce raisonnement est aussi valable dans le sens inverse. C’est une des forces techniques du projet. En cas de panne, kDrive redistribue automatiquement le workload et est en mesure de tourner avec un nombre très réduit de machines. En théorie, une seule suffirait même. Enfin, grâce au monitoring, kDrive est capable de s’auto-réparer en cas d’erreur afin de ne pas impacter les services.

Intégrer rapidement les nouvelles fonctionnalités

Les évolutions de kDrive sont ajoutées de façon progressive selon le modèle Canary Release. Grâce à la plateforme Next, nous testons chaque mise à jour dans les conditions réelles de production, uniquement avec un panel d’utilisateurs avant de l’étendre progressivement à l’ensemble des utilisateurs. Chaque mise à jour du code est systématiquement et manuellement contre-vérifiée ligne par ligne par nos équipes.

Un laboratoire pour améliorer la performance et l’efficience de nos technologies

Plus le système est réactif, moins l’infrastructure consomme de ressources. C’est le principe central de l’écoconception de kDrive. Les développeurs prennent le temps d’écrire du code de qualité plutôt que de dépenser inutilement dans les machines les plus puissantes du marché. Nous veillons donc à optimiser tous les processus, comme les tâches en arrière-plan comme la génération de vignettes ou les envois annulés. Les développeurs ont inséré de nombreux systèmes de mesure pour capter et analyser les indicateurs (metrics). Cela nous procure une vision équilibrée des ressources qui permet de maintenir un niveau de charge optimal pour l’environnement.

Nous privilégions une très grande modularité avec l’utilisation d’un même type de serveurs pour tous les services (ce qu’on appelle le commodity hardware). Chaque machine peut donc être assignée à une nouvelle tâche dynamiquement. Nous limitons ainsi l’achat et donc la construction de nouvelles machines, grande source d’émission de CO2. Nous choisissons des machines réutilisées pilotées par notre technologie de virtualisation. Ces machines s’insèrent parfaitement dans l’architecture de kDrive, très tolérante face aux pannes, tout en optimisant les ressources au maximum.

Retirer la complexité technique pour l’utilisateur final

Pour rendre le front end aussi intuitif (UX, UI) que possible, nos designers ont analysé les comportements d’utilisation dans des services déjà existants. Ils ont conçu l’ergonomie de kDrive avec des repères visuels instinctifs et reconnus pour faciliter la prise en main naturelle. Cette philosophie de simplification est le principe de base de tous nos développements actuels et futurs.

kDrive sur mobile se devait d’être disponible dès le lancement du service. Notre équipe a fait le choix d’un fork de Nexcloud en attendant la sortie de notre propre application. Celle-ci offrira une fluidité incomparable avec des temps de chargement réduits et permettra de supporter l’ajout de nouvelles fonctionnalités exclusives à kDrive.

kDrive est une plateforme d’avenir

Nos développeurs dirigent leurs efforts pour faire de kDrive une plateforme ouverte et évolutive. Cela implique de privilégier des technologies open source, mais aussi de rendre kDrive compatible avec les protocoles comme Webdav par exemple. Une API publique viendra prochainement compléter le dispositif afin de permettre aux développeurs de créer des synergies entre kDrive et leurs applications.

kDrive s’améliore en permanence

Application mobile

kDrive évolue vite et la base Nextcloud ne suffit plus à supporter les prochaines innovations et fonctionnalités à venir. Nos développeurs travaillent sur la nouvelle application kDrive 100% maison. Elle offrira toutes les fonctionnalités de l’interface en ligne ainsi qu’une fonctionnalité de numérisation améliorée, l’édition de documents Office (Word, Excel et Powepoint),  l’amélioration des partages et une optimisation pour les tablettes.

Coffres-forts zero knowledge

Les utilisateurs de kDrive pourront émettre leurs propres clés de chiffrement pour une sécurité maximale sans aucun compromis. L’intégration de ces coffres-forts sera disponible avec l’application desktop et mobile. Ce chiffrement bout-en-bout sera asymétrique (avec une clé privée et une clé publique). Il sera également possible de partager des coffres-forts et d’y collaborer à plusieurs.

Synchronisation de fichiers à la demande (smart sync)

Il devient de plus en plus difficile de stocker toutes ses données sur les ordinateurs portables dont l’espace de stockage est insuffisant. La synchronisation intelligente est sur le point d’être intégrée aux applications desktop pour permettre le téléchargement de fichiers à la demande. Pour simplifier le processus, nous intégrerons un assistant pour choisir les fichiers qui doivent être stockés localement.

Nous renforçons les interactions entre nos produits

Comme annoncé dans la roadmap 2021, nous allons renforcer les liens entre nos produits. La partie photo va également progressivement évoluer avec les galeries et l’import de ses clichés depuis Google, la gratuité de Google Photos touchant bientôt à sa fin.

Des prix très attractifs pour tous les utilisateurs

Nous souhaitons proposer un cloud souverain conçu pour et par ses utilisateurs. Cela veut dire :

  1. Développer les fonctionnalités dont vous avez besoin.
  2. Rester accessible à tous avec des tarifs très compétitifs. Il existe même une version gratuite.

Passez à kDrive

Plusieurs offres sont disponibles pour profiter des avantages kDrive. Vous pouvez faire évoluer votre plan à tout moment selon l’évolution de vos besoins.

Free, Solo, Team ou Pro : découvrez tous les plans kDrive ici.