Chargement en cours

Stage - Automatisation de la Génération de SDKs à partir...

LABÈGE, 31
il y a 9 jours

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.

Entreprise
Alteia
Plateforme de publication
JOOBLE
Offres pouvant vous intéresser
Soyez le premier à postuler aux nouvelles offres
Soyez le premier à postuler aux nouvelles offres
Créez gratuitement et simplement une alerte pour être averti de l’ajout de nouvelles offres correspondant à vos attentes.
1
Créez un compte (compte Google requis)
2
Dans votre espace, cliquez sur "Mes alertes", puis sur "Créer une alerte"
3
Créez votre alerte avec vos préférences et activez les notifications par email
4
Recevez régulièrement des mails avec les nouvelles offres correspondant à vos attentes