[{"content":"","date":"1 juin 2025","externalUrl":null,"permalink":"/","section":"BALES","summary":"","title":"BALES","type":"page"},{"content":"Dès les premières étapes de préparation de l\u0026rsquo;application, les exigences étaient claires : concevoir un projet à la fois évolutif et pérenne. C\u0026rsquo;est dans cet esprit que j\u0026rsquo;ai imaginé l\u0026rsquo;architecture de l\u0026rsquo;infrastructure. Alors que pour mes projets précédents, aux ambitions plus modestes, j\u0026rsquo;avais opté pour une solution autonome hébergée sur mon VPS, j\u0026rsquo;ai cette fois choisi une approche distribuée.\nAvant tout, il est essentiel de passer en revue les différents composants logiciels. Côté client, on trouve des applications mobiles (Android/iOS) ainsi qu\u0026rsquo;une interface web destinée à l\u0026rsquo;administration et aux utilisateurs. Côté serveur, l\u0026rsquo;application se compose d\u0026rsquo;une API et d\u0026rsquo;un service WebSocket.\nCes deux services sont déployés dans des conteneurs Docker distincts. En effet, le redémarrage du WebSocket ne doit pas rendre l\u0026rsquo;ensemble de l\u0026rsquo;application indisponible et, au départ, faire converger tous les clients vers le même serveur simplifiait les échanges de données. Ce problème ne se pose pas pour l\u0026rsquo;API, qui est par nature stateless.\nCes conteneurs tournent sur une instance Kubernetes fournie par OVH, répartie sur deux nœuds qui hébergent l\u0026rsquo;ensemble de mes projets actifs (y compris ce blog). Cependant, à ce stade, plusieurs éléments essentiels manquent encore à cette application de quiz : où stocker les images, les icônes et les mots de passe ?\nConcernant les images, j\u0026rsquo;ai préféré les héberger sur un espace de stockage S3 chez Digital Ocean, garantissant ainsi la persistance des données sans surcharger mon VPS. Le VPS stocke par ailleurs les bases de données MySQL (pour les environnements TEST, DEV et PROD). J\u0026rsquo;ai choisi de ne pas externaliser cette partie, car les coûts augmentent rapidement lorsqu\u0026rsquo;on recherche une gestion plus souple, notamment quant au nombre de connexions actives. En effet, comme je parallélise la récupération des questions lors de la construction du schéma de quiz, le nombre de sessions peut vite dépasser la centaine. Pour assurer la pérennité des données, une sauvegarde de la version de production est réalisée chaque nuit et stockée à la fois sur mon VPS et sur le stockage S3, garantissant une redondance efficace.\nUn point crucial concerne l\u0026rsquo;accès aux clusters Kubernetes via une URL telle que api.vstrivia.app. Pour cela, j\u0026rsquo;utilise mon VPS comme proxy avec NGINX, qui redirige toutes les connexions. En complément, pour me prémunir d\u0026rsquo;éventuelles attaques DDoS, j\u0026rsquo;emploie Cloudflare (version gratuite) afin de masquer l\u0026rsquo;adresse IP de mon VPS.\nCôté DevOps, le code s\u0026rsquo;articule autour de deux branches principales. À chaque merge, la branche « dev » déclenche les tests de conformité et la construction des conteneurs, qui sont ensuite déployés sur l\u0026rsquo;environnement DEV de mon cluster Kubernetes afin de tester l\u0026rsquo;application en conditions réelles. Si tous les tests passent, la branche « dev » peut être fusionnée avec la branche « prod », déclenchant alors le processus de déploiement en production. Les conteneurs générés sont ensuite stockés dans un Container Registry chez Digital Ocean.\n","date":"20 février 2025","externalUrl":null,"permalink":"/posts/vs-trivia-architecture/","section":"Articles","summary":"Dès les premières étapes de préparation de l’application, les exigences étaient claires : concevoir un projet à la fois évolutif et pérenne. C’est dans cet esprit que j’ai imaginé l’architecture de l’infrastructure. Alors que pour mes projets précédents, aux ambitions plus modestes, j’avais opté pour une solution autonome hébergée sur mon VPS, j’ai cette fois choisi une approche distribuée.\n","title":"Architecture de VS Trivia","type":"posts"},{"content":"","date":"20 février 2025","externalUrl":null,"permalink":"/posts/","section":"Articles","summary":"","title":"Articles","type":"posts"},{"content":"","date":"20 février 2025","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"20 février 2025","externalUrl":null,"permalink":"/categories/tech/","section":"Categories","summary":"","title":"Tech","type":"categories"},{"content":"","date":"1 janvier 2025","externalUrl":null,"permalink":"/tags/flutter/","section":"Tags","summary":"","title":"Flutter","type":"tags"},{"content":"","date":"1 janvier 2025","externalUrl":null,"permalink":"/tags/kubernetes/","section":"Tags","summary":"","title":"Kubernetes","type":"tags"},{"content":"","date":"1 janvier 2025","externalUrl":null,"permalink":"/projects/","section":"Projets","summary":"","title":"Projets","type":"projects"},{"content":"","date":"1 janvier 2025","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":" Voir le site VS Trivia est une application de culture générale conçue pour allier apprentissage et plaisir. Trouvant l\u0026rsquo;équilibre parfait entre divertissement et éducation, elle se distingue en rendant le savoir accessible, engageant et adapté à tous. En évitant l\u0026rsquo;austérité des manuels scolaires comme la simplicité excessive des jeux purement récréatifs, VS Trivia est à la fois un outil pédagogique et une manière captivante de passer le temps.\nUne expérience personnalisée # VS Trivia offre une expérience sur mesure en s\u0026rsquo;adaptant aux préférences et aux centres d\u0026rsquo;intérêt de chaque utilisateur. Que vous aimiez les anecdotes fascinantes ou que vous souhaitiez approfondir un sujet précis, l\u0026rsquo;application adapte son contenu à votre stratégie et à vos objectifs. Ce système crée un parcours d\u0026rsquo;apprentissage implicite et agréable, permettant à chacun d\u0026rsquo;explorer ses passions tout en enrichissant ses connaissances.\nFonctionnalités sociales et compétitives # L\u0026rsquo;une des grandes forces de VS Trivia réside dans son accent sur l\u0026rsquo;interaction sociale et la compétition. Avec des quiz mondiaux en temps réel, l\u0026rsquo;application connecte des joueurs du monde entier en proposant un contenu adapté à leur niveau et à leur culture. Pour des défis plus intimes, les parties privées permettent d\u0026rsquo;héberger et d\u0026rsquo;inviter amis ou famille via un simple code partagé, favorisant un apprentissage collaboratif et ludique.\n","date":"1 janvier 2025","externalUrl":null,"permalink":"/projects/vs-trivia/","section":"Projets","summary":" Voir le site VS Trivia est une application de culture générale conçue pour allier apprentissage et plaisir. Trouvant l’équilibre parfait entre divertissement et éducation, elle se distingue en rendant le savoir accessible, engageant et adapté à tous. En évitant l’austérité des manuels scolaires comme la simplicité excessive des jeux purement récréatifs, VS Trivia est à la fois un outil pédagogique et une manière captivante de passer le temps.\n","title":"VS Trivia","type":"projects"},{"content":"","date":"1 janvier 2025","externalUrl":null,"permalink":"/tags/websocket/","section":"Tags","summary":"","title":"Websocket","type":"tags"},{"content":"","date":"31 août 2020","externalUrl":null,"permalink":"/tags/android/","section":"Tags","summary":"","title":"Android","type":"tags"},{"content":" Voir sur APKPure Lund était une application Android native ciblant le secteur des agendas scolaires, conçue pour les étudiants. Elle a été mise à disposition du public fin août 2020.\nL\u0026rsquo;objectif principal de ce projet était pédagogique : développer des compétences à travers un cas concret et réellement utilisable.\nFonctionnalités # Parmi ses fonctionnalités populaires :\nAccès aux devoirs et aux notes depuis le téléphone comme depuis l\u0026rsquo;ordinateur. Sauvegarde de l\u0026rsquo;emploi du temps avec gestion des semaines A/B. Organisation des photos de cours via une interface dédiée. Toutes les données étaient synchronisées avec une infrastructure serveur monolithique.\n","date":"31 août 2020","externalUrl":null,"permalink":"/projects/lund/","section":"Projets","summary":" Voir sur APKPure Lund était une application Android native ciblant le secteur des agendas scolaires, conçue pour les étudiants. Elle a été mise à disposition du public fin août 2020.\n","title":"Lund","type":"projects"},{"content":"","date":"31 août 2020","externalUrl":null,"permalink":"/tags/monolithic/","section":"Tags","summary":"","title":"Monolithic","type":"tags"},{"content":"","date":"31 août 2020","externalUrl":null,"permalink":"/tags/tool/","section":"Tags","summary":"","title":"Tool","type":"tags"},{"content":"Passionné par l\u0026rsquo;informatique, la donnée et les produits qu\u0026rsquo;elle rend possibles, je m\u0026rsquo;intéresse particulièrement aux applications distribuées à grande échelle et en temps réel. Dans ce cadre, j\u0026rsquo;ai entrepris la création d\u0026rsquo;applications destinées au grand public, ce qui m\u0026rsquo;a permis d\u0026rsquo;aborder aussi bien des défis techniques que des enjeux métier et de fidélisation.\nPour bâtir des bases solides dans ce domaine, je poursuis actuellement un diplôme d\u0026rsquo;ingénieur en informatique et réseaux à l\u0026rsquo;École des Mines d\u0026rsquo;Alès en alternance. Auparavant, j\u0026rsquo;ai obtenu un BUT en informatique à l\u0026rsquo;IUT de Montpellier, ainsi qu\u0026rsquo;un MTS (Management, Technologies et Sciences) à l\u0026rsquo;IAE de Montpellier. Par la suite, je souhaite me spécialiser en Data/DevOps afin de renforcer davantage mon expertise.\n","externalUrl":null,"permalink":"/about/","section":"BALES","summary":"Passionné par l’informatique, la donnée et les produits qu’elle rend possibles, je m’intéresse particulièrement aux applications distribuées à grande échelle et en temps réel. Dans ce cadre, j’ai entrepris la création d’applications destinées au grand public, ce qui m’a permis d’aborder aussi bien des défis techniques que des enjeux métier et de fidélisation.\n","title":"À propos","type":"page"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"Certifications vérifiées que j\u0026rsquo;ai obtenues, cliquez sur un badge pour en vérifier l\u0026rsquo;authenticité.\n","externalUrl":null,"permalink":"/certifications/","section":"Certifications","summary":"Certifications vérifiées que j’ai obtenues, cliquez sur un badge pour en vérifier l’authenticité.\n","title":"Certifications","type":"certifications"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]