Familink a récemment migré l’intégralité de son infrastructure d’AWS à Scaleway, comme de nombreuses startups cherchent à le faire aujourd’hui. Dans le cadre de notre série pour contributeurs externes « Give me The Pen », nous avons prêté la plume à Alexis Le Goff, CTO chez Familink, afin qu’il nous fasse un retour d’expérience sur cette migration.

Familink développe et commercialise un cadre photo connecté Wifi/4G à destination des seniors qui n’ont pas Internet ou ne sont pas du tout à l’aise avec la technologie. L’âge moyen des personnes qui possèdent ce cadre est de 85 ans, donc la simplicité est totale : pas de menu, zéro configuration nécessaire. C’est la famille qui envoie des photos, via l’application, le site web, e-mail ou par messagerie instantanée.

Aujourd'hui, Familink gère 40 000 cadres photos connectés partout dans le monde, 200 000 utilisateurs et, depuis son lancement, a permis d’envoyer 10 millions de photos et messages. Toutes ces photos transitent par le cloud. Nous gardons une version haute définition de chaque photo en cas de changement de matériel (client qui passe du petit cadre au grand cadre, par exemple) ou pour proposer des tirages papier et albums photos.

La transmission des photos doit évidemment être instantanée, avec un très fort pic d’envois le 24 et 25 décembre de chaque année. Notre cloud est donc constitué d’outils de gestion des objets connectés, du réseau, de la base de données, du traitement d’images et du stockage de nombreux fichiers.

AWS pour construire son infrastructure

En 2015, AWS était l’acteur du cloud incontournable sur le plan technique, avec une offre très fournie et une fiabilité proche de 100 %. De plus, leur programme à destination des startups nous permettait d’avoir un an de service gratuit. Leur produit le plus séduisant étant AWS S3, qui permet de stocker des millions de fichiers utilisateur, de façon sécurisée, rapide et évolutive. À l’exception d’une Dedibox pour la communication avec les SIMs, tout notre cloud était chez AWS : base de données managée, Load Balancer, images Docker, envoi de mails transactionnels, redis, et réseau privé (VPC).

Besoin de plus de support et de souveraineté

Globalement, la qualité de service était au rendez-vous et tout fonctionnait assez bien. Cependant, le support technique, même avec l’option payante, était assez aléatoire, et il était difficile d’avoir un interlocuteur capable d’aider réellement. La documentation technique n’était souvent pas à jour, et assez complexe.

Mais le point déterminant dans notre choix de changement de fournisseur a été la demande de nos clients français et surtout allemands, pour qui le choix d’un cloud américain était un point bloquant. Dans le cas de Familink, ce critère est d’autant plus important que nous hébergeons des photos personnelles. De même que nous cherchons à rapatrier la production de notre produit en France, nous accordons tout autant d'importance à la localisation du fournisseur de stockage des données.

Load Balancer, Container Registry, Instances : une infrastructure identique

L’avènement de Docker pour conteneuriser ses applications a apporté une importante standardisation aux solutions cloud. Scaleway propose un Container Registry qui permet d’héberger l’image de l’application. Il suffit alors de lancer des Instances qui exécutent cette image. Le Load Balancer de Scaleway répartit ensuite la charge entre les Instances. Cela fonctionne de façon très similaire à AWS, mais toute l'interface tient en une seule page. Scaleway propose moins de produits qu’AWS (ce qui n’était pas gênant dans notre cas) et ce catalogue réduit rend la console plus simple à prendre en main.

La gestion du réseau se fait avec un système de Private Networks et de Public Gateways, similaires à ceux d’AWS, là encore de façon nettement plus simple (quoique probablement moins personnalisable pour les besoins plus spécifiques).

Pour la migration, la principale bonne surprise est l’existence d’un Object Storage de type S3, qui fonctionne exactement comme le S3 d’AWS, avec la même API.

Le transfert des données nous a pris plus de deux semaines, en raison du nombre important de fichiers (40 millions). Ce type de transfert a été permis par l’outil rclone.

Le seul service d'AWS que nous n’avons pas retrouvé chez Scaleway est Redis. Afin de contourner le problème, nous le faisons tourner sur une Instance dédiée au sein du réseau privé.

La migration : une opération sensible sans tracas

Nous avons effectué la migration progressivement, en déménageant les services un par un, et en laissant tourner les deux clouds pendant quelques jours. Nous avions ainsi pendant une période les instances AWS qui utilisaient des outils hébergés chez Scaleway (Redis, MQTT et S3 notamment).

L’opération la plus sensible est le déménagement de la base de données, que nous avions répétée avec une copie de celle-ci. Concernant la transition le jour J, nous avons dû interrompre notre service pendant 28 minutes, le temps de copier la base de données de AWS vers Scaleway. Nous avons fait cette migration à 6h, heure de Paris, ne prévenant que nos utilisateurs américains et canadiens.

Une fois la base de données entièrement copiée et les instances re-lancées pour utiliser la nouvelle, nous avons modifié le DNS pour qu’il pointe vers l’IP du Load Balancer Scaleway, en laissant tourner nos anciennes instances AWS 24 heures supplémentaires, le temps que la propagation DNS se fasse. La seule surprise que nous avons eue est l’impossibilité de faire du SMTP avec la Public Gateway de Scaleway. Nous avons dû repasser pendant environ une heure sur AWS, le temps de modifier la façon dont les mails transactionnels sont envoyés.

La migration est bien sûr une opération sensible, mais qui ne pose pas de problème si elle est bien préparée, et effectuée de façon progressive.

Réduire votre facture cloud

Le niveau de performance est resté le même jusqu'à présent. Toutefois, il est probablement trop tôt pour juger. Durant les sept années d’hébergement chez AWS, nous n’avons eu qu’une seule panne technique,  nous ne voyons donc pas comment faire mieux. En revanche, nous avons divisé par deux le coût mensuel de notre cloud, en prenant des serveurs aux capacités identiques.

Nos prochaines étapes

Sans dévoiler la roadmap technique de Familink pour les années à venir, la vidéo en temps réel sera probablement un sujet important sur le plan technique. Nous prévoyons d’héberger ces solutions sur le cloud de Scaleway.

Le nombre d’utilisateurs de Familink et le nombre de photos quotidiennes devrait augmenter dans les années à venir. L'évolutivité sera assurée en augmentant le nombre de workers simultanés et en augmentant les ressources du serveur de base de données. Le système d'Object Storage étant scalable par nature, il pourra absorber la hausse du trafic.

Continuer la lecture