Software engineer - Extending Ansible to Speedup DevOps deployments

Contract type : Fixed-term contract

Level of qualifications required : Graduate degree or equivalent

Other valued qualifications : PhD

Fonction : Temporary scientific engineer

Level of experience : Up to 3 years

About the research centre or Inria department

The Inria Centre at Rennes University is one of Inria's eight centres and has more than thirty research teams. The Inria Centre is a major and recognized player in the field of digital sciences. It is at the heart of a rich R&D and innovation ecosystem: highly innovative PMEs, large industrial groups, competitiveness clusters, research and higher education players, laboratories of excellence, technological research institute, etc.

Context

The STACK research group has been working on a reconfiguration coordination language called Concerto for several years. This language offers a way to safely and efficiently coordinate the life cycles of software entities distributed across the network, thus enabling fast deployments and updates (among other actions) of distributed software systems. Such coordination of life cycles is also part of almost all deployment, Infrastructure-as-Code, and configuration management tools of the DevOps community, including Ansible. However, in Ansible the coordination is mostly ensured in a sequential order, one role after the other, and one task after the other, thus missing opportunities for parallel actions.

Concerto has been validated through experiments on real use cases such as the deployment of OpenStack and the deployment of managed Kubernetes at OVH. Compared to existing Ansible playbooks, Concerto has shown significant results with up to 70% gain in deployment times. Those experiences in using and comparing with existing Ansible playbooks have given us concrete ideas on how Concerto could be used inside Ansible.

This position is a development and transfer action at Inria. With this position, our goal is to develop and distribute an Ansible extension able to use Concerto as a coordination external library, namely CoAnsible.

 

Assignment

Assignments :
With the help of Baptiste Jonglez (research engineer at Inria) and Hélène Coullon (researcher leading the design and development of Concerto), the recruited person will have the following tasks. This is preliminary work plan and can be adjusted during the project.

From month 0 to month 6:

  • get familiar with Concerto concepts and implementation,
  • get familiar with Ansible implementation,
  • design of the additional dependency language for Ansible users (playbook+).

From month 6 to month 12:

  • transform the Concerto implementation as a library,
  • write the compiler from playbook+ to Concerto,
  • develop a prototype of the Ansible extension.

From month 12 to month 24:

  • industrialization of the open-source Ansible extension,
  • creation of compatible Ansible roles used by the community (Ansible Galaxy),
  • extended documentation for Ansible role developers and DevOps,
  • talk/demo to ``Config Management Camp'', ``KubeCon'', or ``OpenInfra Summit''.

Main activities

Main activities:

  • Gain a detailed understanding of the use of existing tools (Ansible and Concerto)
  • Analyze existing tools (Ansible and Concerto) and their implementations
  • Software development in Python and documentation
  • Select and implement application cases for our extension
  • Communication at international conferences and on blogs

 

Skills

  • A Master's degree or a PhD in Computer Science.
  • Knowledge and experience in Infrastructure-as-Code DevOps approaches in general.
  • A good knowledge of Ansible.
  • A good level of programming in Python.
  • Knowledge in parallel and multi-process programming.
  • A good level of English to contribute to writing blog articles and presenting at DevOps conferences.

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Possibility of teleworking (90 days per year) and flexible organization of working hours
  • Partial payment of insurance costs

Remuneration

Monthly gross salary from 2975 euros based on experience