But du cours
- Comprendre comment créer des applications basées sur le cloud et utiliser des outils d’automatisation du cloud dans le processus DevOps.
- Comprendre le contexte théorique de DevOps et des techniques d’automatisation du cloud.
- Démontrer l’application de ces techniques à une série d’applications et de scénarios/processus de développement de logiciels.
- Comprendre les fonctionnalités offertes par les outils populaires d’automatisation DevOps et du cloud tels que Chef, Puppet, Ansible, SlipStream.
- Avoir une expérience pratique avec l’un de ces outils à la suite de la réalisation d’un projet.
Acquis d'apprentissage visés
- Maîtriser les paradigmes fondamentaux de la programmation, des langages et des algorithmes pour concevoir et développer des applications sur tout type d’environnement(1,4)-(2,4)
- Appliquer et maîtriser l’ingénierie de l’intégration, de l’interopérabilité, du déploiement et des tests (1,4)-(2,4)
- Appliquer et maitriser une méthodologie, des outils et un formalisme pour concevoir, réaliser et maintenir des logiciels de qualité et sécurisé(1,5)-(2,4)
Prérequis
Administration système avancée, Génie logiciel
Programme
- Principes fondamentaux de DevOps, intégration continue, livraison continue, tests continus. Relation avec d’autres technologies de développement agiles : Lean, CAMS, et ITSM.
- Impact organisationnel du DevOps, de la transformation numérique et du DevOps ; structure et fonctionnement de l’équipe DevOps, leadership, collaboration et résolution structurée des problèmes ; facteurs de réussite et indicateurs clés de performance.
- Développement logiciel agile : Scrum, Kanban, Kaizen ; processus Agile Scrum et gestion d’équipe ; rôle des équipes multidisciplinaires. Manifeste Agile.
- Outils et processus DevOps : Pipeline CI/CD ; DevOps Toolchain ; Codage, versionnage, collaboration et test. Versionnage et développement en équipe, Git, tests automatisés.
- Pratiques et plateformes DevOps : Packaging logiciel, Containerisation. Technologies de conteneurs, Kubernetes, outils.
- Architectures de l’informatique en nuage, modèles de service et de déploiement, Cloud IaaS et Infrastructure as Code, économie du nuage.
- Développement logiciel alimenté par le cloud : Exemple et outils AWS
- Outils de surveillance du cloud et concept d’exploitation pour le développement.
- Aperçu de l’automatisation du cloud : Outils basés sur le cloud (par exemple AWS CloudFormation, Azure ARM) ; outils multicloud Chef, Puppet, Ansible, Terraform, autres.
- Outils d’automatisation du cloud populaires : Chef, Puppet, Ansible (en fonction de la plateforme disponible).
- Architecture et modèles de sécurité du cloud, conformité du cloud, questionnaire et certification de l’initiative d’évaluation consensuelle CSA.
- DevSecOps ; cycle de vie du développement de logiciels sécurisés ; outils basés sur le cloud pour le développement de logiciels sécurisés.
Modalités d'évaluation
Un contrôle de connaissances, un compte rendu de TP, une présentation orale.
Bibliographie
Teaching DevOps and Cloud based Software Engineering in University Curricula P. Bourque and R.E. Fairley, eds., Guide to the Software Engineering Body of Knowledge, Version 3.0, IEEE Computer Society, 2014; DevOps Institute: The Association for DevOps Professionals \[online\] https://devopsinstitute.com/ DevOps Agile Skills Association (DASA) \[online\] : https://www.devopsagileskills.org/certifications/dasa-devopsfundamentals/
Supports
Diaporamas et fiches de travaux pratiques.