ūüĒé Loupe : imgfly.me

Découvrez pourquoi et comment j'ai mis en place un hébergeur d'image ainsi que toutes les petites galères rencontrées !

ūüĒé Loupe : imgfly.me
Photo by Alex Machado on Unsplash

Pour le premier billet de cette série, je vais vous parler du service que je fais tourner depuis maintenant quelques années !

Je vais vous raconter sa cr√©ation, son √©volution et la petite infrastructure qu'il y a derri√®re. Pr√©parez-vous, c'est parti ūüõ≥

Les prémices

Nous voici en 2013 lorsque née l'idée de proposer un petit service d'hébergement d'image à des amis avec qui je partage un serveur TeamSpeak.
Je m'intéressais déjà au développement à l'époque, mais je n'avais pas les capacités de mettre en place un système complet au point pour assurer un service avec un minimum de qualité.
En parcourant alors les résultats Google, à la recherche d'un petit CMS qui saurait faire ça mieux que moi, je tombe sur Chevereto.

Chevereto propose 2 types de licence :

  • une gratuite qui permet simplement aux visiteurs de mettre en ligne des images et d'avoir un compte d'administration pour g√©rer les images envoy√©es
  • une payante obtenu √† vie qui permet alors de b√©n√©ficier de fonctionnalit√©s comme la cr√©ation de comptes utilisateurs, la possibilit√© de trier les images par albums et plus encore.

Je décide alors de commencer par la version gratuite afin de pouvoir tester le système, pouvoir voir le fonctionnement et tester différentes installations sur différents types de serveurs. À ce moment là, Chevereto est encore en v2.
Tout fonctionne très bien sur différents serveurs (mutualisés et VPS) avec une stack LAMP en PHP5. C'est parti pour la mise en ligne !

1ère vie

Imgfly.me est d'abord n√© sous le nom de PicsUP.fr, contraction de pictures & upload. Le site va rester en ligne pendant 2 ans de mis 2013 √† mi 2015. Il √©tait principalement utilis√© √† titre personnel et par quelques amis dans le cadre de partage de screen, d'images ou de memes entre nous et comptait quelques milliers d'images. Mais durant cette p√©riode, les √©volutions continuent sur le syst√®me et les mises √† jour s'encha√ģnent jusqu'√† l'arriv√©e de la nouvelle version 3.0 !

√Čtant satisfait du fonctionnement, je me d√©cide √† prendre une licence (env. 30‚ā¨) et passer la version 2.x en 3.x. Direction la documentation, j'effectue les diff√©rentes √©tapes et l√†‚Ķ

ūüí•BOUM.

Tout est cassé… Retour en arrière, nouvelle tentative, toujours pas… Tant pis pour cette fois, je restaure le site dans la version qui fonctionne avec les bonnes données et je le laisse ainsi tourner.

Mais je ne m'avoue pas vaincu pour autant et je d√©cide d'installer √† c√īt√© la nouvelle version et cette fois tout fonctionne parfaitement, je peux proc√©der √† mes tests qui se r√©v√®lent tr√®s positifs, car beaucoup de nouvelles possibilit√© comme d√©cris plus haut.

Il est donc tant de faire un choix, retenter une migration de la v2 vers la v3 ou arr√™ter compl√®tement la v2 pour passer √† la v3 et enfin garder la v2 et la v3 en cohabitation quelque temps. C'est cette derni√®re option que j'ai retenu, mais j'ai pouss√© la chose un peu plus loin. ūüėä

Renaissance

Après ma décision de faire cohabiter les 2 versions, j'ai décidé que la v3 deviendrait en fait indépendante. Il m'a donc fallu trouver un nouveau nom, un nouveau logo et un nouveau nom de domaine : Imgfly.me

logo imgfly.me
Hébergeur d'image Imgfly

Je souhaitais un nom court (6 caract√®res), disponible (pas facile ūüėÖ) et avec une "symbolique" √† savoir l'image (img) qui vole (fly) vers moi (.me) ou alors l'image qui s'envole vers ce fameux "cloud" (d'o√Ļ le logo en forme de nuage) qui va se charger de la stocker.

J'ai donc commencé à faire des essais de logo pour en retenir 2 au final :

Propositions de logo pour Imgfly

J'ai pendant un temps utilisé celui de droite, mais finalement la texture n'était pas ou peu visible lorsque le logo était dans des formats plus petits comme sur le site dans le header, je me suis donc rabattu sur celui de gauche et cela fait maintenant depuis 2016 qu'il est en place et qu'il me satisfait entièrement !

Il √©tait donc temps de mettre le site en ligne et Imgfly.me vit le jour le dimanche 2 ao√Ľt 2015 sous un beau soleil estival !

Infrastructure

Passons maintenant à la partie la plus intéressante, l'infrastructure qui tourne derrière le site.

Depuis le début, j'ai décidé de séparer l'hébergement du site de celui des images. Je voulais pouvoir facilement faire grossir la partie stockage pur et garder la partie site la plus light possible.

Mon premier choix √† l'√©poque a √©t√© d'utiliser une solution tr√®s connue et tr√®s performante, AWS S3 dans le datacenter irlandais. L'API S3 est tr√®s facile d'usage, le service est rapide et ne m'a jamais pos√© de probl√®me‚Ķ Jusqu'au jour ou d'autres personnes que mes amis et moi ont commenc√©s √† utiliser le service. Je voyais le co√Ľt d'usage drastiquement augmenter de mois en mois et j'ai donc d√©cid√© de trouver un autre fournisseur de stockage compatible S3.

Je me suis alors tourné tout naturellement vers notre leader français de l'hébergement, OVH ! Les promesses sont belles, c'est français (cocorico), c'est redondé sur plusieurs sites et le tarif est nettement inférieur à AWS alors que demander de mieux ? Je mets le site en maintenance, créé le bucket, migre les images vers celui-ci, configure le site, effectue 2 - 3 tests et c'est parti, je peux remettre le site en ligne !

Tout fonctionne relativement bien pendant plusieurs jours, jusqu'au moment o√Ļ lorsque je dois envoyer plusieurs dizaines d'images. Le temps d'upload/traitement est facilement 3x plus long qu'avec S3... Je m√®ne mes petites recherches, duplique mon installation sur un autre serveur pour effectuer des tests, mais rien n'y fais, c'est lent.

Chevereto poss√®de une communaut√© assez active et avec des utilisateurs poss√©dant de tr√®s tr√®s gros sites donc je me d√©cide √† poser une question sur le forum technique et le cr√©ateur me confirme que pour lui la solution OVH et son API est beaucoup plus lente que celle d'Amazon. Pas le choix donc il me faut trouver une autre alternative, mais j'aimerais rester dans une entreprise fran√ßaise pour mon stockage. Mais finalement pas besoin de chercher tr√®s loin, les utilisateurs me conseillant de me tourner vers la solution SFTP avec la location d'un serveur d√©di√© qui pourra accueillir un bon nombre de donn√©es et me co√Ľtera beaucoup moins cher dans le temps !

En avant pour les recherches et c'est finalement chez Scaleway (anciennement Online.net) que j'ai trouvé mon bonheur avec un Start-2-S-SATA équipé d'un petit processeur, mais d'1 To de disque et une connexion 1Gbit/s, exactement ce dont j'ai besoin !

Installation de Nginx, du certificat TLS, migration des images, configuration du site et c'est reparti ! Tout fonctionne √† merveille, les uploads sont rapides comme avec S3, je n'ai plus aucun probl√®me avec le stockage et j'ai un co√Ľt fixe tous les mois peu importe la bande passante utilis√©e. Et pour le backup, c'est toujours chez Scaleway que √ßa se passe, avec une synchronisation r√©guli√®re vers leur offre Object Storage + une copie des donn√©es sous forme d'archive sur mon NAS √† la maison !

Et maintenant ?

Pour ceux qui se le demandent, le site web lui a aussi beaucoup voyag√© ‚úąIl a fait plusieurs VPS chez plusieurs fournisseurs (Ramnode, OVH, Scaleway, Pulseheberg) pour finalement atterrir dans le sud de la France √† Clermont-Ferrand chez o2switch !

Voilà pour la petite histoire et toutes les péripéties !  
A bient√īt pour de nouvelles aventures ūüėČ