Software engineer - Extending Ansible to Speedup DevOps deployments -
Main information
Contact:
- Baptiste Jonglez (firstname.lastname at inria dot fr)
- Helene Coullon (firstname.lastname at imt-atlantique dot fr)
Duration: 24 months
Location: IMT Atlantique, Nantes campus
Salary: monthly gross salary from 2975 euros based on experience
How to apply: on jobs.inria.fr
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
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
- 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 remove work (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