Pole Emploi
En tant qu'ingénieur développeur DevOps
entreprise
La DSI de Pôle emploi à Montpellier est un centre de compétence informatique qui assure le développement, l'exploitation et la maintenance des systèmes d'information du service public de l'emploi. Elle est située au sein du Technopôle de la Méditerranée, à Castelnau-le-Lez, à proximité de Montpellier. La DSI est composée d'environ 2 000 agents, dont des informaticiens, des ingénieurs, des techniciens et des administratifs. Elle est organisée en plusieurs pôles de compétences, notamment :
- Le pôle développement est chargé de concevoir et développer les nouveaux systèmes d'information de Pôle emploi.
- Le pôle exploitation est chargé de maintenir en condition opérationnelle les systèmes d'information existants.
- Le pôle sécurité est chargé de garantir la sécurité des systèmes d'information.
- Le pôle infrastructure est chargé de la gestion des infrastructures informatiques.
Parmi les projets les plus récents de la DSI, on peut citer :
- La mise en place d'un nouveau site internet pour Pôle emploi, plus ergonomique et plus accessible.
- Le développement d'une nouvelle application mobile pour les demandeurs d'emploi, qui leur permet de consulter leur dossier en ligne et de postuler aux offres d'emploi.
- La mise en place d'un nouveau système d'information pour la gestion des formations, qui permettra de mieux suivre les parcours des demandeurs d'emploi.
Activité principale
L'équipe était en charge de développer des outils permettant de tester le respect d'exigence fonctionnelle des composants
Processus de fonctionnement au sein de l'équipe. Diagramme réaliser par draw.io.
-
Transmission des specs
- La gouvernance transmet les specs de l’ENF (exigence non fonctionnelle) à la PO de l’équipe. Les specs sont découpés en sous taches et affinés, si nécessaire, durant les séances de « Backlog Refinement ». Ensuite, les différentes tâches sont planifiées durant le sprint
-
Phase de développement
- Le développement est effectué principalement en python. Au préalable les tests unitaires sont écrits puis les specs sont développées. Grace à Gitlab l’implémentation est collaborative, ordonnée et tracée.
Une fois les différentes revues de code acceptées, l’ENF est déployé en environnement de recette. Lorsque cette phase de recette validée l’ENF est prête à être mise en production (MEP) sur différent parc en fonction des besoins. Le parc legacy, composé principalement de barre métal déployé et ordonnancé grâce à Jenkins et le parc moderne.
-
Mise en production
- La MEP vers l’API s’effectue grâce à un pipeline Concourse managé as code. Une api tournant dans un cluster k8s, composée d’un serveur flask reçoit l’intégralité des ENF développées.
-
Utilisation de l'API
- Certains clients vont consommer cette api pour intégrer les ENF aux pipelines de déploiement des composants.
-
Ordonnancement via Jenkins
- Pour les autres composants. Un Jenkins va ordonnancer leurs tests d’acceptation.
-
Monitoring
- L’API et le Jenkins sont supervisés par un Grafana. Du monitoring sur l’ensemble du parc est effectué sur un Kibana.
mes missions
Mes missions au sein de l'équipe étaient:
- Développement d’api en python. Mise en place de tests unitaires. Nos standards de dev sont gérés par un linter, documentés et stockés sur git. Action d’implémentation et d’amélioration de fonctionnalité. Au sein de cette api j’ai également eu la lourde tâche de restructurer l’ensemble de l’architecture.
- Afin d’avoir de la souplesse dans les tests j’ai mis en place un pipeline Concourse permettant de monter à la volée différent environnement de DEV. Ce pipeline construit une image docker avec les sources du projet et la déploie sur un cluster k8S dans un namesapce dédié. Wipe du namesapce à la main à la fin des tests. (best practice du dev !!). Avec ce pipeline, chaque dev peut faire ses tests et les exposer au commanditaire dans une api ISO Prod sans impacter la production.
- Mise en place d’un Jenkins installé via la Helm chart dans un cluster k8S. Configuration afin de répondre aux besoins et déploiement sur plusieurs env. Mise en place de la CI Concourse permettant d’effectuer les déploiements et de remonter les environnements aux besoins.
- Participation actives aux différentes rétrospectives. J’apprécie ces moments d’échange ouvert au sein de l’équipe.