FFCNCERCERXIO28
Stage inter entreprise
Durée :
3 jour(s)
Présentation
DevSecOps est une approche de la culture, de l'automatisation et de la conception des plateformes qui intègre la sécurité en tant que responsabilité partagée tout au long du cycle de vie informatique.
La formation remet à plat les concepts de base de la qualité logicielle et des processus en continu (intégration, delivery, déploiement) en les appliquant concrètement aux domaines de l’embarqué et de l’IoT.
Elle a été conçue pour mettre en place rapidement les outils nécessaires, et pour se confronter aux problèmes rencontrés au quotidien.
Objectifs
- Mesurer l'intérêt d'investir dans la qualité de code et dans la maîtrise de la dette technique
- Exploiter les outils permettant de contrôler et assurer la qualité et la sécurité du code
- Mettre en œuvre les différentes étapes et les outils associés dans le processus de développement en continu
-
Programme
Introduction
DevSecOps, Code Quality Management
- Good Code vs. Bad Code ; Coding Style
- Règles de codage ; Revue de code
- Analyse statique et dynamique de code
- Complexité
- Test unitaire
- Couverture de code
Travaux pratiques
Coding Style (formater du code source C avec clang-format, vérifier du code source Python avec pylint) ; exemple de revue de code ; compiler et analyser du code source C avec clang, analyser du code source C++ avec clang-tidy et cppcheck, checking Python source code avec pylint ; compiler et analyser avec Valgrind et ASAN ; C (mesurer la complexité cyclomatique avec cccc), Python (mesurer la complexité cyclomatique avec radon) ; tests unitaires de code (C avec Unity, Python avec pytest) ; couverture de code (C et Pyhton avec gcovr).
DevSecOps, Inspection continue
- Dette technique : définition of done
- Inspection : installation du serveur SonarQube, paramétrage de SonarQube,
- Analyser le code source C et Python
- Comprendre les résultats d’analyse de SonarQube, Quality Gate
- Utilisation de SonarLint
Travaux pratiques
Configurer sonar-project.properties generic properties ; configurer sonar-project.properties (paramètres spécifiques au langage C et Python), analyser du code source en C et Python (Configuring Quality Profile) ; corriger les anomalies.
DevSecOps, Intégration Continue
- Introduction à l’outil GitLab-CI : qu’est-ce que la CI/CD ?, CI/CD avec GitLab et external tools, GitLab-CI (GitLab's integrated CI/CD)
- GitLab-CI pour le développeur de code source : affichage des résultats de pipeline, forcer ou laisser de côté les exécutions de pipeline
- GitLab Runners
- GitLab-CI pour le développer de pipeline : introduction au langage YAML, définir des jobs, enregistrer les job artefacts, organisation des jobs dans un pipeline, définir des conditions sur l’exécution de pipeline, organiser les fichier YML, définir un système de pipelines
- GitLab-CI pour les développeurs de job : choisir un runner, hetling errors, caching job data
- DevSecOps, premier Pipeline avec GitLab-CI (cas d’un pojet en C et Python)
- GitLab en tant qu’utilisateur : explorer un projet sur GitLab, introduction à markdown, créer une « issue » et un merge request
Travaux pratiques
Configuration de Git/Gitlab, premier pipeline, enregistrer les artefacts, multiples stages, conditional pipelines ; configuration des caches ; initialiser git project (côté Gitlab), initialiser git project (côté client git et Gitlab), initialiser git project (côté client git) ; créer une « issue » et un merge request.
DevSecOps, Développement Continu
- Qu’est ce qui se cache derrière le déploiement SW ?
- Process de déploiement continu
- Déploiement sur de multiples environnements
- Bonnes pratiques du déploiement
Travaux pratiques
Vérification d’application, créer une image docker avec application, déploiement Docker, test de déploiement, déploiement Docker - Rollback
Synthèse et conclusion
-
Points forts
Cette formation a été conçue pour mettre en place rapidement les outils nécessaires, et pour comprendre les problèmes rencontrés au quotidien. Elle est ponctuée de nombreux travaux pratiques qui mettent en avant les problèmes fréquents, les outils de mise au point et les pièges à éviter afin de permettre aux élèves de rapidement trouver leurs marques lorsqu'ils devront résoudre ces problèmes par eux-mêmes.
Les outils utilisés sont des exemples parmi les nombreux outils open source à disposition. -
Modalités pédagogiques
Formation opérationnelle et pratique avec retour d’expérience de pairs, audit clients et expertises métier.
Les pièges à éviter sont abordés afin de permettre aux apprenants de rapidement trouver leurs marques lorsqu’ils devront résoudre ces problèmes par eux-mêmes.
-
Public cible et prérequis
Personnes ayant une première expérience de développement ou de pilotage projet et désirant développer des architectures robustes
Des connaissances de base du fonctionnement Unix ou Linux et dans l’utilisation en ligne de commande de Linux sont souhaitables afin de tirer pleinement profit de cette formation.
-
Responsables
Vincent JOURDON
Directeur des Opérations chez Smile Embedded et Connected Systems. Formateur, expert et auditeur qualité de code - intégration continue dans des contextes embarqués et IoT.
Prochaine(s) session(s)
- Du 18/12/2024 au 20/12/2024 à Paris
- Du 30/06/2025 au 02/07/2025 à Paris
- Du 15/12/2025 au 17/12/2025 à Paris