Stage - Automatisation de la Génération de SDKs à partir d'OpenAPI
Alteia est une plateforme de gestion des actifs industriels basée sur l'intelligence artificielle. Son offre d’Intelligence Visuelle combine ainsi le meilleur de la vision par ordinateur et des technologies d'IA.
La plateforme ingère et structure de très grandes quantités de données terrain en une source unique de vérité, qui permet d’élaborer des modèles prédictifs pour les infrastructures industrielles. Elle optimise l'ensemble du cycle de vie d’une opération, simplifie la gestion des risques et fournit des informations en temps réel sur ces infrastructures.
En rejoignant Alteia, vous serez au cœur de l'équipe qui conçoit et développe une plateforme logiciel conçu pour le cloud, permettant d'ingérer et analyser des téraoctets de données visuelles quotidiennement.
Le contexte du stage :
Dans un contexte de forte croissance et d'enrichissement constant de notre plateforme, la gestion et la distribution de nos SDKs deviennent un enjeu stratégique pour simplifier leur intégration par nos clients et nos équipes internes.
Contexte du projet
Le cycle de vie de nos SDKs est actuellement un processus qui requiert des interventions manuelles, ce qui peut ralentir nos itérations et introduire des risques d'incohérence. Le but de ce stage est de mettre en place une chaîne d'outillage robuste et automatisée, centrée sur notre spécification OpenAPI, afin de fiabiliser et d'accélérer la génération, la validation et la distribution de nos SDKs (internes et open source).
Le stagiaire sera pleinement intégré à une équipe de développement et travaillera en méthodologie Scrum.
Les missions :
L'objectif principal est de concevoir et développer les outils permettant de maîtriser le cycle de vie de nos spécifications OpenAPI, qui servent de contrat d'interface pour nos microservices et de source de vérité pour nos SDKs.
La mission se décomposera en plusieurs phases :
Phase d'étude et d'analyse :
- Faire un état des lieux des spécifications OpenAPI existantes chez Alteia.
- Identifier et documenter les conventions et contraintes à appliquer sur nos spécifications OpenAPI pour en faciliter l'exploitation et la génération automatique de code (ex: nommage, structuration des schémas, utilisation des tags).
- Étudier et comparer les outils open-source de l'écosystème OpenAPI (générateurs de code, validateurs, etc.).
Phase de développement de l'outillage :
- Développer un ensemble de scripts/outils en Python pour automatiser les tâches suivantes :
- Détection des "Breaking Changes" : Mettre en place un outil pour comparer deux versions d'une spécification OpenAPI et détecter les changements non-rétrocompatibles.
- Gestion sémantique de version (SemVer) : Proposer et implémenter une logique pour versionner automatiquement l'API (Majeur.Mineur.Patch) en fonction de la nature des changements détectés.
- Validation de la spécification : Intégrer des étapes de validation pour s'assurer que la spécification respecte les conventions définies dans la phase 1.
- Filtrage de la spécification : Créer un mécanisme pour générer une version "publique" de openapi.yml en retirant les endpoints et schémas marqués comme "internal".
Phase d'intégration et de déploiement :
- Intégrer les outils développés dans nos pipelines d'intégration et de déploiement continus (CI/CD).
- Documenter les outils et les processus pour une adoption simple par les équipes de développement.
- Démontrer le bon fonctionnement de la chaîne complète, de la modification du code d'un microservice à la publication d'un SDK mis à jour.
Phase de génération de SDK :
- Mettre en œuvre la solution de génération de SDK (identifiée en phase 1) pour produire un SDK à partir des spécifications openapi.yml validées.
- Documenter le processus de génération du SDK.
- Valider le bon fonctionnement du SDK généré à travers des cas d'usage simples et représentatifs.
Distribution des spécifications OpenAPI
- Définir et mettre en œuvre un processus de publication des spécifications OpenAPI publiques ainsi que de leur historique de modifications, avec gestion des droits d'accès.
- Garantir que les spécifications publiées sont systématiquement à jour et facilement accessibles pour les clients et les équipes internes.
- Rédiger une documentation claire sur les modalités d'accès et d'utilisation des spécifications OpenAPI distribuées.
Livrables attendus :
- Un document de synthèse sur les bonnes pratiques OpenAPI à adopter et les choix d'outils.
- Une bibliothèque d'outils Python, packagée avec Poetry, incluant ses tests unitaires.
- Une documentation technique et utilisateur pour l'outillage créé.
- Un prototype de SDK Python généré automatiquement, publié sur notre gestionnaire de paquets interne.
Environnement Technique
- Langage : Python 3.11+
- Gestion de dépendances : Poetry
- Spécification : OpenAPI 3.x, YAML
- Outils : Git, Swagger, CI/CD
- Méthodologie : Scrum
Profil recherché
- Étudiant(e) en école d'ingénieur ou Master en Informatique (Bac+4).
- Solides compétences en développement Python.
- Bonne connaissance des APIs REST et de l'écosystème web.
- Une première approche de la spécification OpenAPI/Swagger est un plus.
- Connaissance de Git indispensable.
- Autonome, proactif(ve), rigoureux(se) et doté(e) d'un bon esprit d'équipe.
- Bon niveau d'anglais technique.
Modalités du stage
- Durée : 4 à 5 mois
- Date de début : Flexible (à définir selon le calendrier de l'étudiant)
- Lieu : Toulouse Labège, Télétravail ponctuel possible
- Rémunération : Selon la grille en vigueur chez Alteia.
- Department
- Engineering
- Role
- Software engineer
- Locations
- Toulouse
Toulouse
Alteia is a leading enterprise A.I software provider focused on streamlining the use of visual data to generate real-time business intelligence.
Developing and deploying visual intelligence at scale requires the use of complex technology stacks where algorithms and models need to be placed at the center of business operations. That’s why Alteia delivers a family of integrated products that have been purpose-built to accelerate the implementation of A.I applications, making quick work of large data sets from disparate systems:
- The Alteia software platform to rapidly contextualize large amounts of disparate data and operate enterprise A.I applications quickly.
At Alteia, we can provide a unique opportunity to gain valuable experience in a fast-growing business. We expect technical excellence, and although there may be challenges, we value our employees' creativity and personal development. As such, we encourage out-of-the-box ideas and incentivize innovation.
You will make a difference every day, as you'll have a hand in transforming key industry sectors as they move towards driving their operations with visual data and AI.
About Alteia
We create software that enables organizations to effectively integrate their visual data, decisions and operations. We make products for human-driven analysis of real-world data, accelerated with artificial intelligence, that empower people to solve complex problems.