Sablier – Scale to zero par Alexis Couvreur
Transcription youtube_captions. À recouper avec la source d'origine.
Analyse automatique
Générée par IA — peut contenir des erreurs. Méthodologie
Répartition du ton (temps de parole politique)
Propositif 100 %
Temps de parole
- Alexis Couvreur99 %
≈ 0 interruption / 10 min (chevauchements et interjections détectés).
Modèle mistral-small-latest · prompt v1 · les citations sont vérifiées mot pour mot dans le transcript ; le taux de réponse directe est calculé à partir des verdicts question par question. Aucun label idéologique n'est produit.
si vous voyez bien mon écran je vais commencer bonsoir à tous merci à gologique de nous accueillir ici donc ce soir je vous parlais d'un projet personnel qui s'appelle sablier et qui a un but principal quand même qui est de skate to zéro mais déjà on va commencer au Basic je m'appelle Alexis couvreur je suis un développeur full stack qui vient de France je suis arrivé à Montréal il y a en juin dernier je travaille pour la Banque Nationale et ça à travers une chambre de consulting je suis toujours adoré tout ce qui était automatisation développes docker etc et le projet que je vais vous montrer il a une forte connotation avec tous ces sujets là tout d'abord ce qui est tout zéro c'est ok c'est une solution mais c'est une solution à quoi en fait c'est surtout un besoin qui arrive alors j'en citer un et c'est le principal argument de ce soir ça va être comme on veut surtout réduire les coûts à tout prix et pour réduire les coûts en général qu'est-ce qu'on fait on sur une infrastructure surtout cloud on va avoir tendance à vouloir éteindre nos services et comment est-ce qu'on va les étendre pour les éteindre on scale vers 0 ce qu'on dit donc pour plutôt que le faire manuellement on peut le faire surtout quand uniquement quand il y a un besoin quand il y a une demande c'est à dire que je sais pas ce qui vient de se passer je vais recommencer une demande en fait et cette demande elle peut se traduire par plusieurs aspects notamment le fait qu'il y ait une requête qui arrive et c'est là où on peut voir déjà des similarités en fait il y a beaucoup de provider en ligne qui scale déjà vers 0 c'est des choses que vous connaissez déjà probablement moi la première fois que je me suis confronté à ça c'était avec le Google appendchine ou qui ce qu'est la zéro dans nos solutions il y a aussi function mais c'est aussi AWS lambda en fait c'est pas mal de concepts qui sont très communs et on va retrouver le call stars tout ce genre de choses dernièrement il y a d'ailleurs Gith up gospace pour ceux qui l'ont utilisé aussi ou une démarche une instance lorsqu'on va avoir une pour utiliser notre idée en ligne et donc aujourd'hui ce que je vais vous montrer c'est sablier donc s'habiller c'est un projet personnel que j'ai développé sur mon temps personnel qui est gratuit et Open Source qui est une solution en fait pour ce qui est le Verseau les points importants c'est que c'est une solution du coup Open Source tous les autres provider que vous avez vu avant en fait c'est des solutions et des mécanismes qui ont qui sont en interne qu'on peut pas forcément appliquer à n'importe quel système et la plupart de ces systèmes sont surtout appliqués à des orchestrateurs comme pubs comment ça fonctionne sablier comment est-ce qu'on se skate à zéro le principe il est assez facile c'est qu'on va s'intégrer avec des rêveurs proxy à chaque fois qu'il y a une requête qui arrive qui était censée et censé aller sur notre projet à la place sur notre sur nos services on va on va y installer un miniware entre le entre ça celui de louer c'est un milieu Loire qui a été conçu et développé notamment par moi-même qui va appeler sablier qui va être une API qui va justement gérer l'état de vie des conteneurs qui sont derrière en fonction d'un état très simple si le conteneur est éteint on va l'allumer parce qu'il y a une demande il y a une requête si le conteneur est déjà allumé on va continuer la requête et ce qui est important c'est qu'on va aussi étendre la durée de la session c'est à dire tant qu'il y a des requêtes on augmente la durée de vie de ce conteneur pendant qu'il y a de l'activité comment est-ce qu'on utilise sablier donc là je vais rentrer très vite dans le sujet si je vais vous montrer un petit exemple très rapide avec un Rivers proxy qui s'appelle caddie si vous le connaissez pas c'est un revers proxy assez simple c'est tout l'intérêt de cette démo voilà comment je j'expose en fait un service avec caddie donc derrière univers proxy le service qui est qui est derrière ce proxy il est super simple c'est un service que vous à Mike en fait c'est une page web dès qu'on est dès qu'on va dessus on voit juste les infos les infos de connexion les leaders comment est-ce qu'on y va notre hausse etc et pour pour mettre cette route là sur cadire on va dire que ok caddie qui est mon révers proxy on note que j'ai j'ai donc ouvert les ports pour caddie dès que je vais je vais atteindre une route en tout cas qui match wamai je vais tout simplement forward la requête au service derrière donc là ça fonctionne on a notre service qui fonctionne qui est derrière maintenant on suppose que ce service il change un petit peu et c'est un service qui consomme les CPE on a envie de réduire l'usage de ce service là on veut qu'il s'éteignent quand il y a pas quand on n'a pas l'utilité donc je vais vous montrer comment est-ce qu'on l'intègre avec le petit sablier donc on ajoute le projet on ajoute le conteneur en fait qui va tourner qui va suivre l'état de vie qui va monitorer en fait et qui va surtout les éteindre au besoin et au niveau de caddie on ajoute le petit module qui va qui est en fait qui va s'exécuter avant de faire l'erreur proxy donc là la description dans le cadifice est déclaratif c'est-à-dire qu'il exécute un point après l'autre il va tout d'abord donc demander à sablier de lui de lui de vérifier que le conteneur est allumé si dans le cas actuel est éteint ils veulent je fais une petite démo maintenant pour concrètement voir qu'est-ce que ça fait en fait quand on l'a vu donc j'avais déjà préparé un petit peu ça j'avais préparé la démo 100 mais on va pas le on va pas le on va pas la faire parce qu'elle est un peu redondante concrètement je fais seulement allumer les conteneurs donc là c'est la c'est vraiment cette description là à gauche que j'allume on va les démarrer il y a les trois je vais arrêter je vais arrêter mon service parce qu'on veut qu'il soit éteint initialement en tout cas dans le contexte de la démo et je vais y accéder donc on avait dit que c'était on a vu que c'était localhost 80 parce que je l'ai mappé mais c'était où à maille et dès que je vais aller dessus là c'est en fait c'est sablier qui intercepte la demande alors je vous ai mis un thème assez assez sketchi pour la démo en fait juste après ce qu'on voit c'est que il nous a redirigé automatiquement vers notre notre service donc là notre service on y est accédé ce qui est important c'est qu'on comprenne bien c'est que là on est plus en train de faire de requête là on voit une page qui a été chargée mais on fait pas des requête constamment on n'est pas en train de la recharger bon la démo je vais évidemment pas recharger la page parce que ça va étendre la durée je vais pas vous montrer ce que je veux ce que je veux démontrer donc si je regarde les conteneurs ici qui sont up j'ai mis une durée si on regarde si on regarde sur la démonstration j'ai mis une durée de session d'une minute c'est-à-dire que une minute normalement après mon accès le conteneur va se faire automatiquement éteindre donc j'espère qu'il va se faire étendre bientôt on va on va on va attendre un petit peu peut-être qu'aujourd'hui mettre 30 secondes ça aurait été plus facile en temps je vais vous montrer les futurs on va avancer toute façon c'est en arrière plan donc il y a quelques features dessus c'est que il est provider agnostique dans le sens où on va créer des intégrations avec d'autres providers là où moi je me suis renseigné sur beaucoup d'outils qui existaient pour faire la même chose elles sont la plupart du temps uniquement fait pour que bernatis moi j'ai un petit côté self hostile dans que j'aime bien donc j'aime bien docker j'aime bien dockersworld aussi même ça peut choquer les certaines personnes et donc j'avais envie de développer en fait des intégrations avec ces systèmes là donc ce qui fait que cet outil il est vraiment compatible avec tout il y a des gens qui ont demandé même des intégrations avec Amazon EC2 parce qu'il y a des API qui sont vraiment qui ont le même principe en fait d'allumer des temps des instances il y a pas de mal et il y en a en fait il y en a il peut y en avoir d'autres il y a aussi donc comment est-ce qu'on découvre les conteneurs parce qu'à la base on voulait seulement allumer un conteneur qui était derrière proxy mais qu'est-ce qui se passe il se conteneur il a une base on laisse la base de données tout le temps allumée on y accède jamais réellement directement la base de données dans ce cas là on peut faire un groupe on peut mettre un label et le taguer sur un ensemble de conteneurs et ça va allumer cet ensemble de contenus en fait ça marche pareil avec Docteur swarm avec hubernati etc et l'intégration enfin le point le plus important en fait c'est l'intégration avec l'erreur sportives c'est quel Rivers proxy sont actuellement compatibles en fait et là on va avoir le premier avoir proxy c'est trafic parce qu'en fait ce projet là avait initialement développé pour un hackathon pour ce même rupture on avait d'ailleurs de gagner un prix ensuite il y a eu caddie NGX et il y en a d'autres qui peuvent arriver il sont pas encore déployés il y a des il y a des il y a des qui sont pas encore développés il y a des manières de le faire en revanche plus j'ai continué à développer et maintenir ces choses là je fais une petite pause on va voir si s'il est arrêté donc là il est arrêté le le service qui fait que si je rafraîchis la page normalement je vais retomber sur encore une fois la page de chargement donc je retourne sur la page de chargement je reviens aux intégrations avec les reverses proxy ici c'était caddie c'est faire en Go c'est ils ont leur manière de s'impliquer de s'interfacer avec eux il y a trafic en gros si ça va on a encore on reste encore dans un écosystème qu'on connaît mais ils ont par exemple l'interface un petit peu différente puis ensuite angelix c'est un peu plus vieux donc là au début j'ai regardé c'était du C pour les pour des modules un peu natifs j'ai vu qu'il y avait des aussi des librairies JavaScript lui a un peu plus facile donc je me suis dirigé vers ça et plus j'ai regardé un petit peu pour les autres et les demandes qu'il y avait et cette veine de plus en plus compliqué en fait ça devient même un cauchemar parce qu'on doit développer et maintenir en tant qu'utilisateur de serveur sportive un ensemble de d'intégration avec ses raccourcis donc qu'est-ce qui se passe c'est que c'est des API différentes on a différents langages du GO JavaScript du C on a aussi différentes manières de les lancer par exemple trafic ce qui va faire c'est qu'il va utiliser son propre évaluateur de Go qui s'appelle Yagi alors que khadi lui va nous demander de recompiler directement l'image donc on va devoir compiler notre reversbox donc il y a du runtime il y a du il y a des choses qui sont à la compilation on a aussi des breaking changes qu'est-ce qui se passe on est vraiment est-ce que je dois vraiment maintenant en fait toutes ces tous ces changements là avec tous les raccourcis et il y a la compatibilité avec tous les provides de réseaux sont pas tous en fait cloud il y en a beaucoup des récents qui sont vraiment orientés aspect cloud aspect conteneur etc mais quand on parle de ngenix et la page c'est pas des choses qui gérait très enfin qui gérait naturellement et c'est là où intervient ouais bah simply en fait voilà samedi je me suis vraiment étonné quand j'ai vu qu'il était qui s'inscrivait dans cette dans ce contexte là de base c'est vraiment un instruction des instructions binaires pour c'est du biker en fait pour exécuter un code dans n'importe dans un environnement bien spécifique ça se ça peut faire un peu grincer les dents mais ça se réfère presque à du Java avec la JVM quand on regarde en détail c'est pas vraiment le cas mais ça c'est le même principe ce qui se passe c'est que on peut développer dans le langage qu'on souhaite donc on est plus restreint au langage que le reversbox ça je vais l'expliquer pourquoi après on peut créer un livrable ou asthme donc un moduloise qui va s'exécuter dans une machine virtuelle pour et en ce qui est intéressant aussi et qui a un avantage à nos coeur c'est que c'est dans n'importe quel aussi dans n'importe quel architecture de ces pays donc comment ça fonctionne en fait de base c'est une c'est vraiment une initiative qui part de nvoy pour ceux qui connaissent plus ceux qui connaissent mieux c'est de son extension Isio ils ont développé des extensions ils avaient des extensions de natives et ils sont très vite retrouvés dans un problème c'est que à chaque fois qu'il voulait développer des extensions pour des soucis de performance pour des sushis pour des soucis de plein de choses ils avaient besoin de reconfiler en fait histoire a besoin de recompiler tout le projet pour les inclure et donc ils sont rendus compte que c'était pas c'était pas très viable parce qu'il fallait le couper pour toutes les plateformes pour tout pour toutes les architectures et pour un tas de choses donc il y a comme certains livres proxylon fait auparavant on peut interpréter au runtime mais ça on a pas mal de problèmes là-dessus donc ce qu'ils ont fait concrètement c'est que on a plus il y a un truc qui s'appelle proxy Waze que je vais vous montrer qui va être utilisé par tous les races proxy pour s'interfacer en fait avec avec les rêveurs proxy dans les middleware en fait j'ai pas mis proxywise la référence en fait il y a un projet donc qui s'appelle proxybois mais qui est cette initiative là qui est une spécification qui pardon Voight donc et qui se veut il se veut être adopté par l'ensemble des ressourcis aujourd'hui donc c'est un truc super intéressant c'est pas très populaire honnêtement sur GitHub c'est à dire que même mon projet a plus d'étoiles que le leur mais honnêtement je lui vois un très très content intérêt pour le futur des cohabitations entre entre s'intégrer avec divorce proxy parce que on parle beaucoup de vendeurs locking mais quand on parle aussi on peut aussi parler de software loking un petit peu quand on s'intègre tous dans kibernétisme c'est très difficile d'en sortir quand on s'intègre tous avec un seul revers proxy comme un voiceo qui prend toute la hype c'est très difficile de s'en sortir donc je pense que c'est un sujet très intéressant qu'il faut suivre de près et que je je pensais et c'est de l'intégrer pour pour mon projet personnel sauf que je suis en train de négocier avec ma boîte pour qu'on puisse le faire passer en projet en interne merci beaucoup si vous avez des questions
[Applaudissements]
véhicules magnétiques ça vient de là est allé email de quantification d'autorisation qui sont déjà pourquoi est-ce que tu parles de weather un monde parler de votre parce qu'en fait ça vient plutôt dans cet ordre là si on regarde la spécification en tout cas de proxy Wasmes c'est surtout dans le sens de s'intégrer avec plusieurs riverses proxy et non pas comment faire des modules moins dans cubarnétis c'est un sujet effectivement dans le contexte professionnel sur lequel on se dirigerait tout de suite d'ailleurs moi ce que j'ai conseillé à ma boîte c'est que si on forme projet en interne on oublie tous les providers et tout et on fait du spécifique pour ce qu'on a besoin ce qui est en l'occurrence nvooyis ce qui fait que classe ça irait beaucoup plus vite mais le contexte de ce projet c'est vraiment tu peux le faire chez toi de comme je l'ai montré là avec juste un docker qu'on pose tu peux le faire super simple avec n'importe quel reversoxy et donc c'est l'adoption de ce système de moduloise pour l'ensemble des forces proxy typiquement qu'a dit on leur a demandé Angie Nick sont en train de le faire trafic on leur a demandé aussi de le faire mais ils disent qu'il y a pas assez de hype dessus moi je trouve c'est des sujets assez intéressants je comprends aussi qu'il y a pas trop de hype parce que ça doit pas forcément être quelque chose qui est qui est très demandé au niveau professionnel parce que quand on est sur un sur une stack techno on a tendance à vouloir rester dessus et un peu trop pas trop changer pour prendre de risque mais voilà c'est notamment c'est surtout dans ce dans ce sens là est une sphère et donc si tu fais juste intégrer à aspect la même manière que tu en as plein d'autres c'est juste une specte pour elle ou trafic donc au démarrage exactement parce que ils l'ont pas justement trafic etc donc ne s'intègre pas à cette spec ils ont pas cette spectacle tu peux pas avoir un justement du module Waze dans trafic aujourd'hui et l'intérêt c'est de se justement de développer un seul module tu vois en fait moi j'ai une intégration de pas mal de résidences proxy que je dois supporter maintenir avec des specs différentes et plutôt que ça je développerai un seul un seul module Waze qui est spécifique à la spécification donc de proxy Wasmes qui est dérivait donc de nvoy et le but c'est justement de développer uniquement ça et comme ça n'importe quelle personne peut l'utiliser avec n'importe quel élève il est pas prête j'ai vu que vous pouvez choisir une bouteille française c'est quoi l'en-tête que tu renvoies au consommateurs et si donc il y a justement il y a deux stratégies j'ai pris la stratégie la plupart lente pour qu'on puisse le voir c'est une stratégie dynamique c'est à dire qu'il va y avoir une page web qui va être envoyé qui va être intercepté parce que le conteneur n'est pas prêt ça c'est vraiment on pense typiquement un portail de notre organisation pour y voir directement un retour mais quand on a une API il y a une stratégie qui est une stratégie bloquante qui va juste faire attendre la requête en permanence avec un timer qu'on peut définir et donc ça renvoie du des ça renvoie soit une erreur de timeout service soit ça va vraiment à faire attendre la requête pendant 30 secondes 60 une minute comme on veut jusqu'à ce que le compteur derrière soit mis ce qui fait qu'il y a pas vraiment on voit c'est un peu transparent et concernant l'adoption vous avez parce que tu as des canalisations genre passer genre des cas représentatifs en termes de trafic en fait est-ce que vous avez des utilisateurs qui je vais pas dire Amazon spécifiquement mais est-ce que vous avez eu des gros acteurs en fait qui utilisent ça et est-ce que ça tient la chambre alors non pas du tout concrètement c'est un projet personnel de base qui est vraiment fait pour pour bidouiller donc c'est surtout quelque chose qui qui intéressait des gens chez eux qui étaient sur des Raspberry Pi tu vois qui qui voulaient pas avoir trop trop de services qui tournent en même temps et pas eux-mêmes le faire Start and Stop concrètement c'est vraiment pour les gens qui ont envie d'automatiser tout ce qu'ils peuvent moi si tu veux j'ai automatisé mes lumières quand j'éteins enfin quand j'allume mon Netflix donc là c'est les trucs vraiment bête mais ça va jusque là c'est à dire que moi j'avais apporté une heure par exemple je voulais juste m'amuser à ce qu'il soit éteint quand j'y accepte pas et que dès que j'ai accès de ben il s'allume c'est juste ça le cas d'usage principal et ça s'est étendu sur des gens qui ont apprécié le projet qui voulaient l'intégrer sur différents choses donc j'ai eu des cas d'usages des gens qui m'ont proposé même de me payer pour pour l'intégrer chez eux mais honnêtement j'ai pas trop eu de retour non derrière de performance j'imagine qu'il y a un coup un peu performance forcément j'ai pas je n'ai pas benchmarket personnellement mais non je compte l'installer à la Banque Nationale mais mais sur les environnements non pas de ça exactement en fait le principe c'est qu'à la Banque nationale on utilise déjà quelque chose pour ce qui est tout zéro c'est les horizontales pas de tout ce qui est leur la nuit en fait en non-office hourse on le met on met nos codes à zéro sauf que qu'est-ce qui se passe quand on est on travaille à distance on peut juste plus accéder à nos environnements de développement il faut les scaler nous-mêmes à nouveau mais là pareil tu es pas censé travailler on t'aurait éteint il y a plein il y a aussi une grosse sensibilisation qui sont faites sur les dev à économiser de l'argent dans le Cloud et donc ça se fait notamment par économie des ressources et en économisant des ressources comment est-ce qu'on peut le faire on peut surtout le faire en éteignant directement ou automatiquement les services parce que qu'est-ce qui se passe c'est que la plupart des services sont déployés ils sont déployés testés une fois et on les oublie pendant des mois et ça on parle de centaines voire presque milliers de projets donc ça fait beaucoup d'argent qui est utilisé pour rien merci pour la présentation ça me parle bien par contre ça fait un peu peur avec ça c'est que du coup ton sablier s'il tombe tout ton accompagnement et par conseil de mettre un sablier devant chaque conteneur ou un sablier devant plusieurs conteneurs ou plusieurs instances de sablier au final ton sablier il est tout le temps exactement c'est ça alors c'est pour ça que j'essaie de le faire aussi avec une très très lofoot print avec du Go avec parce que j'ai pu et je conseillerais d'avoir une instance globale ou une instance par même space dans le calcul dernier test qui peut être un truc un entre deux qui est assez sympa donc oui c'est carrément un sport par contre donc ce qu'on pourrait configurer effectivement c'est que si sablier il est pas là bas le trafic quand même c'est pas vrai cible est-ce que ton sablier va prendre ce leader et s'habiller lui donc il a une API bien définie dire on lui fait un appel qu'on a pré-construit auparavant et toute la requête qui est envoyée de base pour le service on la voit pas du tout avec sa vie vraiment ça va dépendre des reverses par exemple pour caddie si je spécifiques dans ma route il y a absolument mon middleware si on met de Loire et répond pas ça va faire une erreur bon rêve Sporting dans ton dans ce que tu veux faire il y a une erreur ça peut être ça peut ça peut dépendre de pas mal d'implémentation un peu comme les circuits de breakers pas encore je peux faire une une demande si tu veux une paire aussi ce sera encore mieux mais tu as une API pour le faire manuellement en fait à la base ma présentation je voulais vous montrer ça juste la Pia et puis montrer que ça va être un peu long et pas concret mais concrètement les middleware c'est juste des clients pour l'API de sa vie et derrière ne pas prendre trop le temps
[Applaudissements]