Les industries de télécom connaissent un écosystème mouvant et des transformations technologiques majeures. Elles ont l’obligation de fiabiliser leurs infrastructures et applications Telco Cloud et de se préparer aux besoins de la 6G.
La virtualisation des infrastructures s’appuie largement sur les opérateurs Kubernetes [1] pour la gestion du cycle de vie (upgrade, mise à l’échelle…) de ces applications.
Dans ce contexte de systèmes cloud par nature complexe, dynamique et distribué, le bon fonctionnement, stable, reproductible, sécurisé, des opérateurs Kubernetes s’avère crucial.
Or les bugs de code d’opérateurs sont souvent complexes à déceler par nature. D’une part, la configuration des ressources manipulées par ces opérateurs peut être sujette à des erreurs. D’autre part, les opérateurs coordonnent de multiples étapes pour rendre le service attendu, interagissent avec d’autres contrôleurs de Kubernetes ou avec des composants externes. Les symptômes de bugs liés à l’état du système sont plus ou moins explicites, voire silencieux lorsque l’état est instable ou ne correspond pas à l’état cible.
Les conséquences peuvent être non négligeables, voire sévères (panne, blocage, faille de sécurité, perte de données…), que ce soit en phase de déploiement ou en phase opérationnelle, en termes de consommation de ressources systèmes et de temps d’analyse et de rétablissement [2].
Le stage est proposé dans le cadre d’un domaine de recherche sur l’évolution des infrastructures et des réseaux. Notamment, il sera coordonné avec une thèse en cours sur l’analyse de comportement des opérateurs Kubernetes.
[1] https://kubernetes.io/docs/concepts/extend-kubernetes/operator/ />[2] https://www.crn.com/news/cloud/the-10-biggest-cloud-outages-of-2023-so-far?page=1 />Mission
Vous avez pour mission de réaliser le benchmark d’un outil expérimental de vérification d’opérateurs Kubernetes,
Les étapes suivantes sont proposées:
Actualiser l’état de l’art sur les bugs d’opérateurs Kubernetes, leur classification et les outils de vérification d’opérateurs Kubernetes
Sélectionner et prendre en main l’outillage expérimental et son environnement (Kubernetes, KubeBuilder, Golang)
Evaluer l’outillage en le confrontant aux différentes catégories de bugs
Développer les add-ons/extensions à l’outillage selon les bugs recherchés (par ex. exprimer de nouvelles propriétés à vérifier)
Documenter l’utilisation de l’outillage
Vous êtes en dernière année d’école d’ingénieurs informatique ou vous préparez un diplôme de niveau Bac + 5, avec les compétences suivantes :
Langages de programmation Golang, Python
Environnement de développement Linux, Git, OpenSource, IDE, appétence pour l’analyse de code
Techniques de virtualisation Docker, Kubernetes
Scripts d’analyse de données/logs
Vous maitrisez l’anglais technique et êtes capable d’analyser de la documentation en anglais.
Une première expérience en model-checking solver serait un plus
Des connaissances en langages de spécifications et méthodes formelles seraient appréciées.
Rencontrez Damien, Lead developer
Rencontrez Flavian, Tech Lead mobile
Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.