Ingénieur en développement logiciel - Extension Ansible pour accélérer l'exécution de déploiements DevOps

Type de contrat : CDD

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

Autre diplôme apprécié : Doctorat en informatique

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : Jusqu'à 3 ans

A propos du centre ou de la direction fonctionnelle

Le centre Inria de l'Université de Rennes est l'un des neuf centres d’Inria et compte plus d'une trentaine d’équipes de recherche. Le centre Inria est un acteur majeur et reconnu dans le domaine des sciences numériques. Il est au cœur d'un riche écosystème de R&D et d’innovation : PME fortement innovantes, grands groupes industriels, pôles de compétitivité, acteurs de la recherche et de l’enseignement supérieur, laboratoires d'excellence, institut de recherche technologique.

Contexte et atouts du poste

Le groupe de recherche STACK travaille depuis plusieurs années sur un langage de coordination de reconfiguration appelé Concerto. Ce langage permet de coordonner de manière sûre et efficace les cycles de vie des entités logicielles distribuées sur le réseau, ce qui permet des déploiements et des mises à jour (entre autres actions) plus rapides des systèmes logiciels distribués. Cette coordination des cycles de vie fait également partie de presque tous les outils de déploiement de type IaC (Infrastructure-as-Code), et de gestion de la configuration de la communauté DevOps, y compris Ansible. Cependant, dans Ansible, la coordination est principalement assurée dans un ordre séquentiel, un rôle après l'autre, et une tâche après l'autre, manquant ainsi des opportunités d'actions parallèles.

Concerto a été validé par des expériences sur des cas d'utilisation réels tels que le déploiement d'OpenStack et le déploiement de Kubernetes managés chez OVH. Par rapport aux playbooks Ansible existants, Concerto a démontré des résultats significatifs allant jusqu'à 70% de gain en temps de déploiement. Ces expériences d'utilisation et de comparaison avec les playbooks Ansible existants nous ont donné des idées concrètes sur la façon dont Concerto pourrait être utilisé au sein d'Ansible.

Ce poste est une action de développement technologique et de transfert financée par Inria pour un ingénieur de 24 mois. Avec ce poste notre objectif est de développer et de distribuer une extension Ansible capable d'utiliser Concerto comme bibliothèque externe de coordination : CoAnsible.

Mission confiée

Missions :
Avec l'aide de Baptiste Jonglez (Ingénieur de recherche Inria) et Hélène Coullon (enseignante chercheuse qui pilote la conception de Concerto), la personne recrutée aura les tâches suivantes. Il s'agit d'un plan de travail préliminaire qui pourra être ajusté au fil du projet.

Du mois 0 au mois 6 :

  • se familiariser avec les concepts et la mise en œuvre de Concerto
  • se familiariser avec l'implémentation d'Ansible,
  • conception du langage de dépendance supplémentaire pour les utilisateurs d'Ansible (playbook+).

Du mois 6 au mois 12 :

  • transformer l'implémentation de Concerto en bibliothèque,
  • écrire le compilateur de playbook+ vers Concerto,
  • développer un prototype de l'extension Ansible.

Du mois 12 au mois 24 :

  • industrialisation de l'extension Ansible open-source,
  • création de rôles Ansible compatibles utilisés par la communauté (Ansible Galaxy),
  • documentation étendue pour les développeurs de rôles Ansible et DevOps,
  • présentation/démonstration au "Config Management Camp", "KubeCon", ou "OpenInfra Summit".

Principales activités

Principales activités :

  • Comprendre finement l'utilisation des outils existants (Ansible et Concerto)
  • Analyser les outils existants (Ansible et Concerto) et leurs implémentations
  • Développement logiciel en Python et documentations
  • Choisir des cas d'application pour notre extension et les mettre en oeuvre
  • Communication dans des congrés internationaux et sur des blogs

Compétences

  • Un master ou un doctorat en informatique.
  • Connaissance et expérience des approches DevOps Infrastructure-as-Code en général.
  • Une bonne connaissance d'Ansible.
  • Un bon niveau de programmation en Python.
  • Des connaissances en programmation parallèle et multi-processus.
  • Un bon niveau d'anglais pour contribuer à la rédaction d'articles de blog et aux présentations lors de conférences DevOps.

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Possibilité de télétravail à hauteur de 90 jours annuels
  • Prise en charge partielle du coût de la mutuelle

Rémunération

A partir de 2975 euros selon expérience