Comprendre l'autoscaling de Kubernetes
Dans cet article, nous allons distinguer les différentes méthodes d'autoscaling fournies par Kubernetes et comprendre les différences entre l'horizontal pod autoscaler et le vertical pod autoscaler.
Comme beaucoup d’entreprises technologiques en ce moment, Scaleway grandit. Tenir cette cadence, tout en gardant nos valeurs et notre exigence, est un défi du quotidien. En réponse à ce challenge, nous avons mis en place un programme pour intégrer des profils juniors ou autodidactes à nos équipes : le Cloud Builder Launchpad.
Nous entendons beaucoup cette phrase au sein des startups en forte croissance. L’onboarding d’un jeune diplômé peut être très long, et prend parfois plus de 6 mois… L’envie est là mais l'énergie nécessaire est rédhibitoire dans beaucoup de cas.
Pourquoi est-ce aussi long?
Dans notre environnement, il faut être à l’aise avec l’administration système, le réseau, le développement logiciel et les architectures cloud natives.
Par exemple, chez Scaleway, même si nous travaillons avec tous les outils de communication modernes et dans un environnement très confortable, il faut tout de même apprendre à connaître près de 20 équipes, leurs responsabilités, leur façon de travailler. Parfois, il est nécessaire de trouver des stratégies pour avancer en attendant les autres mais sans créer de dettes techniques. Il faut aussi faire cet apprentissage dans un contexte post-covid où le télétravail est la norme: nous sommes en remote par défaut.
Une équipe recrute car elle a trop de travail. Si elle augmente sa charge en accueillant un nouvel équipier, c’est un non-sens.
Nous avons créé le Cloud Builder Launchpad : un programme de quatre mois permettant à une promo de jeunes diplômés d'acquérir un bagage suffisant pour être efficaces dès leur arrivée dans nos équipes.
Il est évident que la performance des ingénieurs vient avec les années : la connaissance et le pragmatisme naissent de l'expérience. Cependant, un onboarding réussi est un accélérateur de performance. Accompagnés d’un coach pendant 4 mois, nos cloud builders juniors apprennent à travailler en équipe en pratiquant les méthodes agiles, les cérémonies, la manipulation d’un backlog, la prise de parole, le pair programming et le mob programming.
Ils découvrent l'écosystème et communiquent avec nos équipes. Enfin, ils suivent un entraînement technique soutenu. “Avant le match, on va faire des tours de terrain !” Au programme : du continuous delivery, du TDD, la maîtrise de Git et des langages les plus utilisés chez nous : Python et Go. Comprendre notre entreprise, ce n’est pas que faire comprendre la face visible. Alors nos cloud builders vont faire, durant cette période, un stage en datacenter et au support, afin de comprendre au maximum avec qui et pour qui ils travaillent.
Depuis le passage du serveur dédié aux produits cloud que nous proposons, nos équipes de devs sont passées d’une vingtaine à bientôt 200 ingénieurs qui travaillent sur près de 40 produits. Chaque période de notre évolution a présenté des défis différents mais, pour arriver à ce résultat, nous avons recruté et formé des équipes plutôt spécialisées, chaque service ayant besoin d’expertise forte.
En grandissant, nous avons appris qu'aujourd'hui, nous devons compter sur une population d'ingénieurs avec des expertises spécifiques mais surtout l’envie d’être acteur du développement d’un catalogue complet. C’est l’idée derrière la notion de “cloud builder” : des développeurs capables de changer de produits en fonction des besoins.
Le développement logiciel en entreprise ne peut pas être seulement un travail individuel. L’apprentissage universitaire de l’informatique pourrait faire penser le contraire, mais le développement est un sport collectif. La gestion de la dette technique, des goulots d'étranglement, le “bus factor” sont autant de concepts qui ne peuvent être abordés efficacement que dans le collectif.
Le Cloud Builder Launchpad est construit pour accompagner la montée en compétences collective, la culture du partage et la découverte individuelle et en équipe de l’univers du cloud computing. Durant le programme, bien que mentorés, les Scalers juniors sont amenés à prendre des décisions et à challenger et améliorer le programme en permanence en utilisant le concept de classe inversée : on étudie le sujet de son côté et on pratique en groupe de préférence sur le clavier !
Après 4 mois d'entraînement intensif, nos juniors trouvent leurs équipes en fonction des besoins, des appétences qu’ils ont développé au contact des Scalers. Ce programme n’est ni une formation, ni une mise en conditions techniques. C’est une immersion dans la culture de l’entreprise, dans un cadre bienveillant qui prépare à notre contexte : développer un cloud performant dans un marché exigeant. Dès les premiers jours dans leurs équipes, les participants au programme bénéficient :
Nous avons choisi trois axes pour mesurer les compétences attendues à l’issue du programme Cloud Builder Launchpad :
Le Launchpad est ouvert à tous les nouveaux diplômés ayant moins d’un an d'expérience dans le métier du développement et les autodidactes sont également les bienvenus. L'expérience nous montre qu’il est nécessaire de préciser que nous ne nous substituons pas à un cursus universitaire. Si vous êtes motivé par l’idée de passer de l’autre côté du cloud et que nos valeurs vous parlent, une promotion est lancée tous les trimestres et l’offre est ouverte en permanence.
Dans cet article, nous allons distinguer les différentes méthodes d'autoscaling fournies par Kubernetes et comprendre les différences entre l'horizontal pod autoscaler et le vertical pod autoscaler.
Et si nous retrouvions l’audace des pères fondateurs de l'Europe pour qu’un nouvel “effort créateur” permette à l’Union européenne de relever les défis du monde numérique?
Cet article est le premier d'une série d'articles autour du monde de l'internet des objets et de notre nouvelle plateforme IoT Hub, sortie en version "General Availability" au mois de juin 2020.