Semestre 4
Compétences
M8

Compétence M8

En fonction des projets déterminés autour de la « Valorisation et exploitation de services numériques », savoir identifier, choisir (y-c défendre) et adapter les solutions les plus appropriées pour les défis rencontrés

  • Quoi :

Cette compétence implique la capacité à identifier et sélectionner les solutions les plus adaptées pour répondre aux défis posés par les projets de valorisation et d'exploitation de services numériques. Elle englobe l'analyse des besoins spécifiques du projet, la comparaison des différentes options disponibles sur le marché, et la justification des choix effectués devant les parties prenantes. Cela inclut également l'aptitude à adapter ces solutions en fonction de l'évolution des exigences du projet et des changements dans l'environnement technologique, économique et réglementaire. Il s'agit de trouver un équilibre entre l'innovation, la performance, la sécurité et la conformité pour garantir le succès et la durabilité des projets.

  • Comment :
  1. Emerging technologies : Le choix de Rust comme sujet d'étude est le résultat d'une analyse approfondie des technologies récentes et de leur pertinence pour résoudre des problèmes complexes. J'ai défendu ce choix en me basant sur des critères tels que la sécurité, la concurrence et l'intégration de la mémoire, montrant ainsi ma capacité à évaluer les avantages d'une technologie et à argumenter sa valeur face à des alternatives établies.
  2. Emerging Technologies 2 :

Dans le cadre du module Emerging Technologies 2, j'ai développé une application destinée à la préparation aux entretiens d'embauche. Ce projet permet aux utilisateurs de pratiquer les réponses aux questions d'entretien, classées en trois catégories : compétences douces, compétences techniques et questions mixtes.

L'application intègre plusieurs fonctionnalités clés :

  • Chargement de fichiers : Permet aux utilisateurs de télécharger des fichiers PDF contenant des informations sur le module d'entretien et les compétences requises.
  • Mode d'interaction directe : Les questions sont posées via une interface interactive, et les utilisateurs répondent oralement. Les réponses sont ensuite transcrites et analysées grâce à Whisper.
  • Mode document révisé : Génération de fichiers PDF avec les questions et les réponses prédéfinies pour une révision hors ligne.

Pour la réalisation de ce projet, j'ai utilisé des technologies telles que OpenAI ChatGPT pour la génération de réponses, Whisper pour la transcription audio, PDFKit pour la manipulation de documents PDF, Next.js pour la structure de l'application web, Tailwind CSS pour la conception et FFMPEG pour le traitement des fichiers audio.

Ce projet démontre ma capacité à analyser les besoins des utilisateurs, à sélectionner et à intégrer les technologies appropriées, et à créer des solutions innovantes et fonctionnelles pour des défis spécifiques

  1. CIMO

Suite à ma formation sur Microsoft Fabric, que j'ai suivie sur le site officiel de Microsoft, j'ai acquis une compréhension approfondie des six modules proposés. Pendant cette formation, j'ai été chargé de présenter les concepts de data engineering, y compris le lakehouse, le warehouse et l'architecture en médaillon (bronze, silver, gold).

Lors de ma présentation à CIMO, j'ai expliqué comment l'architecture lakehouse permet une gestion plus flexible et efficace des données, qu'elles soient structurées ou non structurées. J'ai également décrit l'architecture en médaillon : le niveau bronze stocke les données brutes, le niveau silver contient des données nettoyées et enrichies, et le niveau gold rassemble des données agrégées prêtes pour l'analyse avancée. Cette structure combine les avantages des approches lakehouse et warehouse, offrant ainsi à la fois flexibilité et optimisation pour des analyses complexes.

Pour un projet de création de tableau de bord sur Microsoft Fabric, j'ai utilisé Data Flow pour transformer les données en trois tables distinctes. Cette méthode a permis d'automatiser et de gérer efficacement les pipelines de transformation de données, assurant une meilleure cohérence et fiabilité. J'ai démontré comment intégrer ce processus dans une architecture lakehouse, tirant parti de sa capacité à évoluer et à gérer les données de manière flexible.

  1. Koloka

Suite à une session de formation en DevSecOps, un expert m'a guidé dans la mise en œuvre de plusieurs solutions pour améliorer l'efficacité de l'équipe de développement chez Koloka. Après avoir discuté de nos besoins spécifiques, j'ai décidé de migrer notre base de données de MySQL vers PostgreSQL en utilisant l'opérateur CNPG pour Kubernetes. Cette transition a été cruciale pour garantir une meilleure continuité des activités et une récupération rapide en cas d'incident.

Pour optimiser nos processus d'intégration et de déploiement continus (CI/CD), j'ai intégré Kubernetes. Cette technologie nous a permis de livrer plus rapidement les nouvelles fonctionnalités aux utilisateurs, augmentant ainsi notre réactivité et notre capacité à innover. Kubernetes a également simplifié la gestion des applications conteneurisées, rendant notre infrastructure plus flexible et évolutive.

Pour rendre les déploiements plus simples et plus fiables, j'ai adopté Helm, un gestionnaire de paquets pour Kubernetes qui facilite la définition, l'installation et la mise à jour des applications. Helm a standardisé nos processus de déploiement, minimisant les erreurs potentielles et garantissant des déploiements cohérents.

En outre, j'ai mis en place Prometheus et Grafana pour améliorer la surveillance de nos systèmes et de nos ressources. Prometheus, avec ses capacités de collecte et de stockage de métriques, nous permet de suivre en temps réel les performances de notre infrastructure. Grafana, quant à lui, offre des visualisations intuitives et personnalisables de ces données, nous aidant à identifier rapidement les problèmes potentiels et à prendre des décisions éclairées pour optimiser nos ressources.

Pour automatiser le processus de déploiement, j'ai utilisé GitHub CI/CD. Cette automatisation a réduit les risques de dysfonctionnements et accéléré notre cycle de livraison, nous permettant de déployer des mises à jour et des corrections de bugs de manière plus efficace et plus sécurisée. L'intégration continue a assuré que chaque modification du code soit automatiquement testée et validée, tandis que le déploiement continu a facilité la mise en production des nouvelles versions.

Ces initiatives ont conduit à une amélioration significative de la performance, de la sécurité et de la fiabilité des systèmes chez Koloka. Elles illustrent ma capacité à tirer parti des conseils d'experts, à analyser les besoins d'un projet et à mettre en œuvre des solutions technologiques adaptées pour relever les défis spécifiques rencontrés par une équipe de développement. Ces actions démontrent également mon aptitude à adopter des pratiques DevSecOps pour intégrer la sécurité dès les premières étapes du développement et tout au long du cycle de vie des applications.

  • Pourquoi :

Savoir identifier, choisir et adapter les solutions les plus appropriées pour les défis rencontrés est essentiel pour la réussite des projets numériques. Cette compétence permet de garantir que les solutions sélectionnées répondent précisément aux besoins du projet, optimisant ainsi les ressources et maximisant les résultats. En défendant les choix technologiques, on assure également l'adhésion des parties prenantes, ce qui est crucial pour l'implémentation réussie des solutions. L'adaptation continue des solutions en fonction des évolutions technologiques et des exigences du projet garantit la pérennité et l'efficacité à long terme des initiatives numériques.

  • Application pratique :

En appliquant cette compétence, j'ai pu apporter des solutions précises et adaptées à des projets variés. Par exemple, le choix de Rust pour le projet de technologies émergentes a permis de répondre à des problématiques de sécurité et de performance. L'application de préparation aux entretiens d'embauche a bénéficié d'une intégration judicieuse de technologies avancées pour offrir une expérience utilisateur enrichie. La mise en œuvre d'une architecture lakehouse chez CIMO a amélioré l'efficacité de la gestion des données. Enfin, les solutions déployées pour Koloka ont optimisé les processus de développement et de déploiement, garantissant une meilleure stabilité et performance des systèmes.

  • Réflexion personnelle :

Identifier et défendre des solutions adaptées aux défis numériques m'a permis de développer une vision stratégique et analytique. Chaque projet m'a appris l'importance de l'évaluation rigoureuse des options disponibles et de la justification de mes choix devant les parties prenantes. J'ai également compris la nécessité d'une adaptation continue face aux évolutions technologiques et aux exigences changeantes des projets. Ces expériences m'ont renforcé dans l'idée que la réussite des projets numériques repose sur une combinaison d'innovation, de rigueur et de flexibilité. En intégrant ces principes, je me sens mieux préparé à relever les défis futurs et à apporter des solutions durables et efficaces.

Last updated on June 21, 2024