Vous êtes sur la page 1sur 24

MGL869 : L’ingénierie de mise

en production des versions


logiciel
Mohammed Sayagh

Département de génie logiciel et TI


Mohammed Sayagh
Ph.D. Professeur
adjoint

2014/09

2013/07

2018/08 2020/09

Développeur Post-doctoral
logiciel fellow

2
Mes intérêts en recherche et développement
• DevOps/Mise en production
• Gestion de configuration
• Pipeline d’intégration (CI/CD)
• Gestion de logs
• Monitoring
• Analyse des activités de développement et d’opération
• Mining software repositories
• Machine learning
• Techniques d’analyse de code
• Systèmes multi-composants: Micro-Services, systèmes
distribués, …

3
Mon équipe et moi même, on travail sur différentes
étapes du DevOps
Révision de code
Gestion de configuration
Évolution des
logiciels

Ph.D.
Masters
Stagiaire
CI/CD
ML4DevOps
Je suis là pour vous aidez!
mohammed.sayagh@etsmtl.ca
http://msayagh.github.io 5
Discussion sur le cours

Présentez vous …

Vos attentes du cours ?

Ca vous dit quoi l’ingénierie de


mise en production des
versions logiciel ?

6
Où se situe « l’ingénierie de réalisation de versions
» dans le processus du génie logiciel

Définition des
requis

Conception
Opération
et architecture
et surveillance

Intégration et réalisation Codage


Grace aux pratiques de l’ingénierie de mise en
production, IMVU réalisent 50 versions par jour

15k tests

VCS

Test Environment

Staging/Production Environments
9 min. 6 min.
http://goo.gl/qPT6
“Facebook required
us to develop a
system that pushes
tens to hundreds of
diffs every few hours”
- Chuck Rossi

https://engineering.fb.com/developer-tools/rapid-release-at-massive-scale/
La publication de nouvelles versions est de plus en
plus rapide
OK ! Mais, comment peut on arriver à une telle
agilité/productivité tout en gardant et améliorant la
qualité de logiciels ?
Objectifs du cours : (1) comprendre les outils qui existent déjà dans
l’ingénierie de mise en production

Magique
Technologies : Containerisation, Branches, CI/CD,
Révision de code, DevSecOps, Types de
déploiement, Tests, …
Objectifs du cours : (2) Comprendre les problèmes
lié à la mise en production en pratique

Invité de l’industrie,
explorer les problèmes
pratiques
Objectifs du cours : (3) Apprendre des solutions
avancées lié à l’ingénierie de mise en production

Apprentissage
machine et
analyse de code
Objectifs du cours
• L’objectif du cours est de vous donner les moyens pour résoudre des
problèmes de mise en production en utilisant des méthodes avancées tel
que l’intelligence artificielle.
• Étudier des concepts techniques de bases en ingénierie de mise en
production
• Étudier des problématiques existantes en ingénierie de mise en
production
• Étudier des techniques avancées (principalement l’apprentissage machine)
appliquées à divers problèmes d’ingénierie de mise en production
• Pratiquer la résolution d’un problème de mise en production
• Lab : prédiction des bogues
• Mini-projet : de votre choix

15
Sujet
• Les bases techniques de l’ingénierie de publication de nouvelles versions
• Bases techniques du pipeline de déploiement/DevOps
• Tests, revue de code, CI/CD, gestion de configuration, conteneurisation et orchestration des
systèmes complexes, IaC
• Bases techniques de monitoring et télémétrie
• Gestion de logs, infrastructure de télémetrie,
• L’intégration de l’intelligence à l’ingénierie de publication de nouvelles
versions
• Les bases de l’utilisation d’IA pour le génie logiciel
• Les modèles d’IA pour le pipeline CI/CD
• Les modèles d’IA pour le monitoring/télémétrie
• Exploration de sujets avancés en ingénierie de publication de nouvelles
versions
• Pratiquer l’intégration de l’intelligence à l’ingénierie de publication de
versions
D’autres références très intéressantes, mais pas
obligatoire !

17
Déroulement du cours
• Partie 1 : Les pratiques techniques du CI/CD, DevSecOps, et
observabilité
• Partie 2 : L’utilisation de l’apprentissage machine en génie
logiciel en générale
• Partie 3 : Un cas d’étude sur les difficultés rencontrés en
entreprise (invité de l’industrie)
• Partie 4: Le pipeline de déploiement (CI/CD), problèmes et
solutions basés sur l’apprentissage machine
• Partie 5 : L’opération et monitoring des logiciels en
production et l’utilisation de l’IA dans l’opération (AiOps)
18
Structure du cours
• L’objectif du cours est de vous donner les moyens pour résoudre
des problèmes de mise en production en utilisant des méthodes
avancées tel que l’intelligence artificiel.

• Séances magistrales et exercices pratiques (voir le plan de cours)


• Bonus de 3% : Refaire les exercices pratiques et suggérer un moyen pour les
améliorer
• Présentation de deux articles
• Un laboratoire en groupe de 3 étudiants
• Mini-projet individuel (peut être de votre choix)
Pondération des notes

•Présentation de 2 articles : 10%


•Laboratoire : 35%
•Mini-projet : 50%
•Participation : 5%
•Bonus : 3%

21
Mini-projet
• Développer une solution –idéalement basé sur l’IA - pour résoudre
l’une des problématique de l’ingénierie de mise en production de
nouvelles versions
• Vous avez le choix libre de choisir le problème qui vous intéresse
• Le projet est le développement de la solution avec une validation.
• Exemple :
• L’utilisation d’un modèle d’apprentissage machine et le calcul de ses performances pour
améliorer …
• Répliquer une solution existante dans la littérature à un nouveau projet
• Il y aura une séance dédiée à la discussion du projet final
Dates limites à retenir
• Lab. :
• Début : 24 Mai
• Présentation du laboratoire : 26 Juin
• Rapport de la première partie du Lab : 12 Juin
• Rapport finale du Lab : 10 Juillet
• Mini-projet :
• Début : 19 Juin.
• Présentation finale : 31 Juillet.
• Rapport final (5 pages max) : 16 Août.
• Présentation de 2 articles
• Dans toute la session, chaque étudiant présentera 2 articles.
• Choix des articles entre 18 et 24 Mai
Questionnaire
• Le but du questionnaire est d’avoir une idée sur vos connaissances
en ingénieurie de mise en production et de comprendre vos attente
• https://forms.gle/j8Va5x52VicvvCWi7

Vous aimerez peut-être aussi