Mots-clés: : DevSecOps, ALM, industrialisation, intégration, tests
B2: Concevoir, évaluer, implémenter, intégrer et exploiter des services numériques produisant de la valeur pour les utilisateurs et utilisatrices en Considérant les règles éthiques et juridiques de la profession ; tenant compte de l’existant et des environnements technologiques hétérogènes ; évaluant et sélectionnant les technologies de l’information et de la communication ; optimisant les ressources techniques, financières et humaines ; optimisant l’expérience utilisateur et utilisatrice ; garantissant la sécurité.
Niveau Hautement spécialisé:
Maîtriser les concepts et techniques de DevSecOps et d’industrialisation des services Ce semestre, j’ai eu l’opportunité de mettre en œuvre le cycle DevOps dans notre projet pour la première fois en utilisant Microsoft Azure. Les étapes ont été les suivantes :
Panel principal Microsoft Azure
Déployer mon application React via le portail Azure m’offre de nombreux avantages :
L’activité de déploiement de mon application React sur Microsoft Azure répond aux besoins de DevSecOps de plusieurs manières importantes :
En résumé, le déploiement de mon application React sur Azure a aligné les pratiques de développement et de déploiement avec les principes de DevSecOps, en intégrant la sécurité à chaque étape du processus, de la planification à la maintenance, garantissant ainsi la création d’une application sûre et sécurisée.
L'une des parties intéressantes de mon apprentissage a été la SF Docker d'Alain Duc. Explorer l'utilisation de Docker dans des projets était très intéressant et encourageant. D'autant plus que j'ai réalisé une LI: Docker sur ce sujet au semestre précédent. Depuis, je n'ai pas eu l'occasion de pratiquer cette technologie. Après la SF, j'ai pensé à utiliser Docker pour déployer les applications du Hackathon dans l'environnement Docker. Après des tentatives infructueuses, j'ai abandonné et j'ai décidé d'utiliser Microsoft Azure. Mes tentatives ont échoué pour une raison qui ne me serait jamais venue à l'esprit : sur mon nouvel ordinateur, l'option VM et virtualisation était bloquée ! Solution.
Avoir expérimenté une architecture d'intégration et 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 Pour démontrer mes compétences en matière d’architecture d’intégration dans le cadre de la conception, l’évaluation, l’implémentation, l’intégration et l’exploitation de services numériques, je me réfère à mon expérience acquise dans deux projets clés réalisés au cours de ce semestre.
Dans le projet “Kinaps”, j’ai été confrontée à l’intégration d’une application externe dans l’environnement de Microsoft Teams. Ce projet m’a permis d’expérimenter avec des systèmes d’authentification Single Sign‐On (SSO) en utilisant le portail Microsoft Azure ID. L’objectif était d’assurer une intégration transparente et sécurisée, facilitant l’accès des utilisateurs à l’application Kinaps directement depuis Teams (iFrame).
Un schéma du processus SSO
Finalement, ce n'était pas à moi de réaliser cette partie de l'application, mais au début du projet, j'ai été impliquée dans la préparation du processus. Cela impliquait, entre autres, une compréhension théorique du processus. Dans mon apprentissage, je me suis appuyée sur la documentation de Mictosoft.
En outre, ce projet m’a donné l’opportunité d’utiliser l’API de "Kinaps" pour connecter les fonctionnalités de l’application avec Teams, me permettant d’appréhender les enjeux techniques liés à l’intégration d’applications tierces dans un environnement hétérogène.
Ma partie des appelles à l'API .
Ma partie des appelles à l'API .
Mon deuxième projet, lié à ma participation à un Hackathon sur le thème de “l’Identité décentralisée”, m’a impliquée dans la création d’une application de chat. Pour ce projet, j’ai intégré les technologies React, Web3 et Next.js, me confrontant ainsi à des environnements technologiques diversifiés et innovants.
Cette expérience m’a permis de développer une compréhension pratique des applications décentralisées et de la blockchain, ainsi que des défis associés à la sécurisation des communications numériques :
Création d'un DID
L'exemple d'un DID
Schéma de fonctionnement de DWN (Decentralized Web Nodes)
L’accent mis sur l’optimisation de l’expérience utilisateur a été pour moi un aspect crucial de ce projet. En développant l’application de chat, j’ai dû non seulement garantir sa fonctionnalité et sa sécurité, mais aussi veiller à ce qu’elle offre une interface utilisateur intuitive et agréable. Cela a impliqué une réflexion constante sur la manière dont les utilisateurs interagiraient avec l’application et comment faciliter cette interaction.
Pour réaliser cette application, je me suis inspiré de la version de bureau de Whats-up.
Tests La bibliothèque implémentée pour effectuer des tests dans l'application Hackathon s'appelle Playwright.
Les tests se trouvent dans le fichier: dinger-completed-test.spec.js
Pour exécuter les tests, il faut taper npx playwright test dans le terminal:
Pour afficher le résultat, il faut taper npx playwright show-report :
Cela ouvrira une page avec les résultats des tests:
Pour exécuter les tests, il est nécessaire que l'application soit active, sinon nous obtiendrons une erreur et un résultat négatif ! :D :
À travers ces deux projets, j’ai acquis une expérience significative en matière de gestion des ressources techniques et humaines. J’ai dû collaborer étroitement avec divers membres de l’équipe, coordonner les efforts, tout en veillant à respecter les délais et les objectifs fixés.
En conclusion, ces expériences m’ont permis de développer une compréhension plus profonde de l’architecture d’intégration dans des contextes variés. J’ai appris à évaluer les technologies, à optimiser l’utilisation des ressources disponibles (création des appelles API sans avoir l'accès à l'API.... ! ), tout en mettant l’accent sur la création de valeur pour les utilisateurs. Ces projets ont été des terrains d’apprentissage inestimables pour comprendre les complexités de l’intégration de services numériques dans des environnements hétérogènes et en constante évolution. L’expérience avec des technologies émergentes comme les DIDs, la blockchain et les nœuds décentralisés m’a préparée à affronter des projets complexes intégrant des innovations technologiques. Ayant appris et intégré ces technologies qui m’étaient initialement inconnues, j’ai développé une capacité d’adaptation et d’apprentissage rapide, essentielle pour travailler avec des outils et des concepts nouveaux. Cette agilité dans l’apprentissage me rend apte à gérer les défis des projets impliquant des technologies émergentes.