Semestre 5
Compétences
B2

Compétence B2 (VALIDÉE AU SEMESTRE PRÉCÉDENT)

Maîtriser les concepts et techniques de DevSecOps et d’industrialisation des services

  • Quoi :

Cette compétence consiste à comprendre et à appliquer les principes de DevSecOps, qui intègrent la sécurité dans le processus de développement logiciel (DevOps) dès les premières étapes. Elle inclut également l'industrialisation des services, c'est-à-dire l'automatisation, la standardisation et l'optimisation des processus de développement et de déploiement des services IT. Cela permet de garantir la qualité, la sécurité et la rapidité des livraisons, tout en réduisant les risques liés aux vulnérabilités de sécurité et en assurant une gestion efficace des infrastructures.

  • Comment :
  1. Koloka : En tant que Scrum Master, avec mes camarades, j'ai mis en place la méthodologie Scrum avec des User Stories, organisé des sprints avec Léo (PO) et l'équipe, et géré des sprint reviews pour structurer et suivre efficacement le projet. J'ai également collaboré avec Térence pour déboguer un schéma Strapi, démontrant ma maîtrise des outils nécessaires à l’industrialisation des services et à la gestion efficace du cycle de développement. De plus, j'ai intégré des éléments sécurisés et optimisés, comme la page de contact, tout en assurant leur bon fonctionnement en mode responsive. Ces actions ont contribué à renforcer la robustesse du site web et à garantir le respect des bonnes pratiques en matière de sécurité et de performance.

extrait d'azure devops du projet koloka

extrait d'une page de Koloka que j'ai implémentée

  1. DevPro : J’ai aidé à structurer la gestion du projet en utilisant Scrum, en créant les User Stories, les tâches, et en réalisant le planning poker. J’ai finalisé le backlog et attribué des Story Points en fonction de la complexité et du temps estimé. J’ai également mis en place un dépôt GitHub avec une structure claire (README.md, .gitignore) et installé les dépendances nécessaires, garantissant une gestion efficace du cycle de développement. J'ai configuré l'authentification avec Auth.js via un provider Credentials, et mis en place la validation avec Zod et le hachage des mots de passe via bcrypt. J'ai documenté le workflow CI/CD dans le README et illustré la séparation des branches dev et main dans le processus de déploiement via GitHub Actions. J'ai également configuré les certificats SSL avec Certbot pour garantir une connexion sécurisée via HTTPS.

extrait d'azure devops du projet devpro

extrait de la page d'autnetification de devpro

extrait des actions sur github

extrait de mon workflow CI/CD

extrait de la page railway récupéré le 15 janvier 2025 de https://railway.com/ (opens in a new tab) extrait de la page public cloud d'Infomaniak récupéré le 15 janvier 2025 de https://www.infomaniak.com/fr/hebergement/public-cloud/ (opens in a new tab)

  1. CIMO : J’ai contribué à la structuration du projet en utilisant Scrum au départ, en organisant les backlogs, les User Stories et les sprints. Par la suite, j’ai contribué à la transition vers une approche hybride (Scrum + Waterfall) avec Kanban pour gérer les flux de travail. Ces actions montrent ma capacité à adapter les méthodologies pour répondre aux besoins spécifiques du projet. J'ai utilisé Azure DevOps pour optimiser la répartition des tâches et améliorer le flux de travail. J'ai documenté l'ensemble du projet en détaillant les outils et processus utilisés, comme SCRUM pour la gestion des sprints et l'entraînement des modèles de machine learning. Cette gestion des étapes de développement reflète une approche organisée et industrialisée du projet.

extrait de notre méthodologie agile sur azure devops

extrait de notre méthodologie hybride sur azure devops

  1. Infomaniak : J’ai utilisé Cypress pour automatiser des tests end-to-end simples, vérifiant la navigation entre les pages principales de l’application Angular. Bien que ces tests soient limités, cette démarche démontre ma capacité à intégrer des outils de validation pour garantir le bon fonctionnement des services développés.

extrait de mon code (cypress) durant le challenge infomaniak

  1. VA : J’ai assisté à des conférences portant sur les infrastructures d’intelligence artificielle et les défis liés à la sécurisation des systèmes modernes, renforçant ma compréhension des meilleures pratiques en DevSecOps. Ces apprentissages sont directement applicables à l’industrialisation des services dans des contextes complexes. extrait d'une conférence à Malaga (UpScale)

extrait d'une conférence à Lisbonne (WebSummit)

  • Pourquoi :

La maîtrise des concepts et techniques de DevSecOps et d'industrialisation des services permet de garantir des livraisons de services IT rapides, fiables et sécurisées. Cela assure l'intégration de la sécurité dès le début du processus de développement, réduisant ainsi les risques liés aux vulnérabilités. De plus, l'industrialisation des services, via l'automatisation des tests, des déploiements et des configurations, optimise les ressources, diminue les erreurs humaines et améliore la performance globale des projets.

  • Application pratique :

Dans le projet DevPro, la mise en place d'un workflow CI/CD documenté et l'utilisation de GitHub Actions pour automatiser le build et le déploiement ont permis d'améliorer la rapidité et la cohérence des livraisons. La configuration de certificats SSL via Certbot a renforcé la sécurité des communications. Pour Infomaniak, l'intégration de tests Cypress a automatisé la validation des routes principales, garantissant un comportement stable de l'application.

  • Réflexion personnelle :

Ces expériences m'ont permis de comprendre l'importance de combiner des pratiques d'automatisation et des mesures de sécurité dès les premières étapes des projets pour améliorer la fiabilité et la robustesse des services IT. J'ai également appris que la documentation claire des workflows et des configurations est essentielle pour assurer une maintenance et une évolutivité efficaces. Enfin, les échanges lors des conférences sur la sécurisation des infrastructures ont enrichi ma vision des bonnes pratiques en matière de DevSecOps, que je pourrai appliquer dans des projets futurs.

Avoir expérimenté une architecture d'intégration

  • Quoi :

Cette compétence consiste à avoir travaillé sur la conception, la mise en place et l'optimisation d'une architecture d'intégration, qui permet de connecter différents systèmes, applications ou services au sein d'une organisation. Elle inclut la gestion des flux de données entre ces composants hétérogènes, tout en assurant leur interopérabilité, leur performance, et leur évolutivité. Cette expérience implique la maîtrise des outils et des techniques permettant d'intégrer de façon fluide les technologies existantes et émergentes dans un environnement IT complexe.

  • Comment :
  1. AR 3 : Le défi Angular m’a permis d'intégrer diverses pratiques de développement front-end et de gérer l’apprentissage d’une nouvelle technologie dans un délai limité. Bien que cette expérience ne constitue pas une application d’une architecture d’intégration à proprement parler, la gestion de l'apprentissage d'Angular et l’intégration de composants externes m’ont aidé à comprendre comment mieux organiser des projets complexes à l'avenir.

extrait de ma page d'accueil

extrait de la page pokedex

extrait de la page détail d'un pokemon

  1. DevPro : J'ai implémenté Auth.js pour l'authentification via email/mot de passe avec un provider Credentials. J'ai configuré la validation avec Zod et le hachage des mots de passe avec bcrypt. J'ai créé un dépôt GitHub pour le projet, mis en place une structure claire (README.md, .gitignore) et installé les dépendances nécessaires dans les dossiers du projet. J'ai mis en place un schéma décrivant l'ensemble du workflow CI/CD pour le projet, en détaillant la séparation des branches dev et main, ainsi que le processus de déploiement via GitHub Actions. J'ai illustré la répartition des services : un pour l'environnement de développement et un autre pour la production. Deploiement sur public cloud d'Infomaniak.

extrait de la page d'autnetification de devpro

extrait de mon workflow CI/CD

extrait de connexion sur l'instance public cloud d'Infomaniak

extrait de la page railway récupéré le 15 janvier 2025 de https://railway.com/ (opens in a new tab) extrait de la page public cloud d'Infomaniak récupéré le 15 janvier 2025 de https://www.infomaniak.com/fr/hebergement/public-cloud/ (opens in a new tab)

  1. CIMO : J’ai utilisé Azure DevOps pour centraliser les contributions de l’équipe, en structurant les tâches et les livrables. J'ai configuré l'entraînement et l'analyse des données via un tableau de bord Fabric et travaillé sur la mise en place d'un modèle supervisé avec Random Forest.

extrait du dashboard du projet CIMO

extrait de notre méthodologie agile sur azure devops

extrait de notre méthodologie hybride sur azure devops

  1. Koloka : J'ai réalisé la mise en place de Scrum avec mes camarades avec création de User Stories et organisation des sprints. J'ai implémenté des pages front-end avec des composants interactifs et vérifié le responsive sur différentes résolutions. J'ai également corrigé des erreurs de sécurité en utilisant des outils comme Nikto pour analyser les failles et vérifier la présence des options de sécurité comme X-Frame-Options pour éviter le clickjacking.

extrait de la commande nikto sur kali linux

extrait d'azure devops du projet koloka

extrait d'une page de Koloka que j'ai implémentée

  • Pourquoi :

Expérimenter une architecture d'intégration permet de garantir l'interopérabilité et la cohérence des systèmes et services au sein d'un projet IT. Cela facilite l'échange de données entre des composants hétérogènes, améliore l'efficacité des workflows, et assure une évolutivité permettant de répondre aux besoins futurs de l'organisation. L'intégration d'une architecture bien conçue permet également de réduire la duplication des tâches et les erreurs, tout en optimisant l'utilisation des ressources.

  • Application pratique :

Dans le projet DevPro, l'authentification via Auth.js avec un schéma CI/CD détaillé et la séparation des environnements de développement illustrent l'intégration fluide des services nécessaires au bon fonctionnement du projet. Pour CIMO, l'utilisation de Fabric et la centralisation via Azure DevOps ont permis d'unifier les workflows de gestion des tâches et l'entraînement des modèles. Enfin, dans le projet Koloka, l'analyse des failles avec Nikto et la vérification des paramètres de sécurité ont contribué à intégrer des pratiques sécurisées dans l'architecture front-end.

  • Réflexion personnelle :

Ces expériences m'ont appris que la mise en place d'une architecture d'intégration efficace nécessite une planification rigoureuse pour assurer la cohérence des systèmes et des services. J'ai également compris que la documentation des processus d'intégration est essentielle pour garantir la pérennité des projets et faciliter leur maintenance. Enfin, la diversité des outils utilisés (comme Kubernetes, Azure DevOps et Auth.js) m'a permis de renforcer mes compétences en intégration et de mieux appréhender les défis techniques liés à la gestion des dépendances et des flux de données.

Appliquer les compétences précédentes dans des projets complexes qui incluent l’intégration de nouvelles technologies émergentes ou non-encore utilisées

  • Quoi :

Cette compétence consiste à mettre en pratique les concepts et techniques acquis dans des projets complexes, en intégrant des technologies émergentes ou encore peu exploitées. Elle implique la capacité à évaluer, adapter et déployer ces nouvelles technologies dans un environnement existant, tout en gérant les défis techniques, organisationnels et stratégiques qui peuvent en découler. Cela nécessite également une approche méthodique pour tester, valider et assurer l'adoption de ces technologies dans des contextes réels, tout en garantissant leur alignement avec les objectifs globaux du projet.

  • Comment :
  1. Koloka : J'ai implémenté une galerie interactive utilisant les composants DialogTrigger et DialogClose pour gérer automatiquement l'ouverture et la fermeture des modals. J'ai aussi corrigé des problèmes liés à l'aspect-ratio des conteneurs en testant différentes classes CSS comme aspect-auto et object-contain. Ces actions montrent ma capacité à intégrer des technologies modernes et à les adapter à des besoins complexes.

Démonstration de mon implémentation sur Koloka

  1. DevPro : J’ai intégré plusieurs technologies modernes, comme Rasa pour développer un chatbot (intents, actions, stories), Milvus pour gérer les données vectorielles, et Flask pour tester les fonctionnalités. J’ai aussi conçu un Proof of Concept (PoC) intégrant des règles, des actions, et des stories pour valider les solutions techniques. Ces intégrations ont permis de répondre aux besoins complexes du projet tout en exploitant des technologies émergentes.

Extrait de la page offciel de rasa, Récupéré le 14 janvier 2025 , de https://rasa.com/ (opens in a new tab)

Extrait de la page offciel de milvus, Récupéré le 14 janvier 2025 , de https://milvus.io/ (opens in a new tab)

Extrait de mon PoC sur Rasa

  1. CIMO : J’ai intégré des technologies avancées comme Random Forest et K-Means pour développer des modèles supervisés et non supervisés, en configurant les données pour les prédictions et les analyses de clusters. J’ai également contribué à la mise en place de tableaux de bord connectés à l’infrastructure existante, en ajustant les outils pour répondre aux exigences techniques du projet.

Extrait de mon modèle supervisé (Random forest)

Extrait de mon modèle non-supervisé (K-Means)

extrait du dashboard du projet CIMO

  • Pourquoi :

L'intégration de technologies émergentes dans des projets complexes permet d'explorer de nouvelles solutions pour répondre à des besoins spécifiques et améliorer les performances des systèmes. Cela favorise l'innovation tout en renforçant la capacité d'adaptation face aux évolutions technologiques. De plus, cela permet d'anticiper les futures évolutions des projets en intégrant des outils plus performants et en modernisant les workflows existants.

  • Application pratique :

Dans le projet DevPro, l’intégration de Rasa, Milvus et Next pour concevoir un chatbot intelligent montre ma capacité à combiner des technologies émergentes pour offrir une solution fonctionnelle et performante. De même, dans le projet CIMO, l'utilisation de modèles avancés comme Random Forest et K-Means a permis d'exploiter des algorithmes modernes pour des analyses prédictives et exploratoires. Enfin, sur Koloka, l'utilisation des composants interactifs comme DialogTrigger et DialogClose démontre mon aptitude à intégrer des librairies front-end récentes pour améliorer l'expérience utilisateur.

  • Réflexion personnelle :

Ces expériences m'ont permis de mieux comprendre les défis liés à l'intégration de technologies émergentes, notamment en termes de compatibilité et de gestion des dépendances. J'ai également réalisé l'importance de tester et valider chaque composant pour garantir un déploiement fluide et une performance optimale. Ces projets m'ont encouragé à rester en veille technologique pour anticiper les besoins futurs et enrichir mes compétences afin de proposer des solutions modernes et adaptées aux contextes métiers.

Last updated on September 12, 2025