Doctorant en génie logiciel (H/F)

Type de contrat : CDD

Niveau de diplôme exigé : Bac + 5 ou équivalent

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : Jeune diplômé

A propos du centre ou de la direction fonctionnelle

Le centre Inria Université de  Lille, créé en 2008, emploie 360 personnes dont 305 scientifiques  répartis dans 15 équipes de recherche. Reconnu pour sa forte implication  dans le développement socio-économique de la région Hauts-De-France, le  centre Inria de l'Université de Lille poursuit une relation étroite  avec les grandes entreprises et les PME. En favorisant les synergies  entre chercheurs et industriels, Inria participe au transfert de  compétences et d'expertises dans le domaine des technologies numériques  et donne accès au meilleur de la recherche européenne et internationale  au profit de l'innovation et des entreprises, notamment dans la région.Depuis  plus de 10 ans, le centre Inria de l'Université de Lille est situé au  cœur de l'écosystème universitaire et scientifique de Lille, ainsi qu'au  cœur de la Frenchtech, avec un showroom technologique basé avenue de  Bretagne à Lille, sur le site d'excellence économique d'EuraTechnologies  dédié aux technologies de l'information et de la communication (TIC).

Contexte et atouts du poste

L'équipe projet SPIRALS mène des activités de recherche dans les domaines des systèmes répartis et des sciences du logiciel. Nous avons pour but d'introduire plus d'autonomie dans les mécanismes d'adaptation des systèmes logiciels, en particulier, afin d'assurer la transition des systèmes adaptatifs vers les systèmes auto-adaptatifs. Nous visons plus particulièrement 2 propriétés : l'auto-guérison et l'auto-optimisation. Avec l'auto-guérison, nous avons pour but d'étudier et d'adapter des solutions de fouille de données et d'apprentissage à la conception et la mise en œuvre de systèmes logiciels, plus particulièrement en vue de la réparation automatique des systèmes logiciels. Avec l'auto-optimisation, nous avons pour but de partager, collecter et analyser les comportements dans un environnement réparti afin de continuellement adapter, optimiser et maintenir en fonctionnement des systèmes logiciels et d'aller vers l'obtention de systèmes distribués éternels. L’équipe-projet Spirals travaille dans le domaine du cloud computing et du développement d’applications mobiles.

Mission confiée

 

Les architectures microservices sont devenues une norme de développement pour les applications déployées dans le cloud. Ce paradigme architectural vise à modulariser et réutiliser les services logiciels pour faciliter leur maintenance et la gestion de leur cycle de vie. Le succès des microservices a été porté par l'émergence des conteneurs logiciels qui facilitent leur déploiement en production, via des solutions comme Kubernetes. Cependant, le déploiement des microservices dans le cloud repose bien souvent sur une combinaison de couches IaaS et SaaS qui peut s'avérer pénalisante pour les performances du système final. Les solutions actuelles consistent bien souvent à répliquer les services pénalisés et à multiplier les ressources allouées pour pallier ces problèmes de performance. Cependant, pour éviter un gâchi des ressources allouées, une approche plus intelligente pourrait favoriser un découpage (slicing) des applications microservices pour trouver une coupe de déploiement et d'orchestration qui favorise la complémentarité des ressources sollicitées au regard des contraintes de l'infrastructure (réseau, disque, CPU, mémoire, etc.).

Cette thèse vise donc à explorer des techniques de découpage a priori et en temps réel d'une architecture microservices pour optimiser son efficience.

Principales activités

  • Année 1 : Analyse des besoins et conception des modèles de slicing

    Tâche 1.1 : Étude de l'état de l'art : Analyse des approches existantes en matière de déploiement de microservices, d'orchestration intelligente et d'optimisation des performances.

    Tâche 1.2 : Identification des métriques clés : Détermination des indicateurs de performance liés aux ressources (réseau, disque, CPU, mémoire) pertinents pour le slicing.

  • Tâche 1.3 : Conception des premiers modèles de slicing : Élaboration de modèles théoriques pour le découpage optimal des microservices, en tenant compte des contraintes d'infrastructure.

    Livrables : Rapport d'état de l'art, définition des métriques clés, premières spécifications des modèles de slicing.

    Année 2 : Développement d'outils et expérimentations en environnements simulés

    Tâche 2.1 : Implémentation des prototypes d'outils de slicing : Développement de solutions logicielles intégrant les modèles conçus.

    Tâche 2.2 : Simulation et validation des performances : Tests des outils dans des environnements simulés avec des charges de travail variées.

    Tâche 2.3 : Optimisation des modèles : Ajustements des modèles et algorithmes en fonction des résultats des simulations.

    Livrables : Prototypes d'outils, rapports de tests et d'évaluation des performances, version optimisée des modèles.

    Année 3 : Validation en conditions réelles et diffusion des résultats

    Tâche 3.1 : Déploiement sur des infrastructures cloud réelles : Application des outils sur des cas d'usage concrets en collaboration avec des partenaires industriels.

    Tâche 3.2 : Analyse des résultats et retours d'expérience : Évaluation des gains en performance et en efficience des ressources.

    Tâche 3.3 : Valorisation scientifique et industrielle : Rédaction d'articles de recherche, participation à des conférences, et transfert technologique.

    Livrables : Études de cas, publications scientifiques, documentation technique, recommandations pour le déploiement en production.

    Ce programme vise à garantir un slicing des microservices à la fois efficace, adaptable en temps réel, et optimisé pour des environnements cloud hétérogènes.

Compétences

  • Compétences techniques et niveau requis : Java, Go, Python (avancé)
  • Langues : Français, Anglais

Avantages

  • Transports publics remboursés partiellement
  • Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
  • Possibilité de télétravail et aménagement du temps de travail
  • Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
  • Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
  • Accès à la formation professionnelle

Rémunération

2 200 € bruts mensuels