Introduction to DevOps
Enseignant:
Email:
Durée totale du cours: 22.5 H
Semestre : 5 Réseaux et Services Mobiles (RSM)
Nombre de crédits : 1
| Modules
spécialisés |
Modules de
base |
Sciences et techniques de
l’ingénierie |
Préparation à la carrière professionnelle |
| |
|
X |
|
| Nombre d’heures |
Activités hors classe |
|
| 27 |
18 |
|
| cours |
TD |
TP |
| 12 |
|
10.5 |
|
|
|
|
|
| Code |
GEN5001 |
Introduction to DevOps GEN5001
|
Sommaire
DevOps est le résultat de l’application des principes Lean au flux de valeur informatique pour accélérer le flux de travail via la gestion des produits, le développement, les tests, le déploiement, les opérations informatiques et la sécurité de l’information. Cette approche supprime les frontières entre les équipes et rassemble toutes les parties prenantes pour travailler sur le même objectif de fournir rapidement des solutions informatiques d’entreprise avec stabilité, fiabilité, disponibilité et sécurité.
Objectifs pédagogiques
Ce cours vise à fournir aux étudiants :
La capacité d’apprécier les principes de DevOps et leur application au développement et au déploiement de systèmes d’entreprise
La capacité d’expliquer et de discuter des rôles des parties prenantes et des outils au sein de DevOps
Les compétences pour mettre en place un environnement de projet DevOps
Les compétences pratiques pour utiliser les outils DevOps pour automatiser l’intégration, les tests et le déploiement
Une compréhension de l’importance de la collaboration et de l’automatisation dans la mise en œuvre de processus interfonctionnels
Contenu
Semaine 1-2 : Introduction to DevOps Concepts
- Introduction to DevOps: Definition, history, and importance in modern software development.
- Understanding the software development lifecycle and traditional challenges.
- Overview of Agile methodologies and their relationship with DevOps.
- DevOps principles: Collaboration, automation, measurement, and sharing (CAMS).
Semaine 3-4 : Version Control and Collaboration Tools
- Version control systems (e.g., Git): Fundamentals and branching strategies.
- Collaborative development platforms (e.g., GitHub, GitLab): Using them for code sharing and collaboration.
- Continuous Integration (CI): Introduction to automated builds and tests triggered by code changes.
Semaine 5-6 : Infrastructure as Code (IaC)
- Introduction to Infrastructure as Code (IaC) principles.
- Tools like Terraform and Ansible: Automating infrastructure provisioning.
- Creating and managing virtual environments for development and testing.
Semaine 7-8 : Continuous Delivery and Deployment
- Understanding Continuous Delivery (CD) and Continuous Deployment (CDep) concepts.
- Building pipelines: Automating the end-to-end process from code commit to deployment.
- Monitoring and feedback loops: Ensuring quality and performance in the deployment pipeline.
Semaine 9-10 : Containerization and Orchestration
- Containerization using Docker: Packaging applications and their dependencies.
- Container orchestration with Kubernetes: Managing containerized applications at scale.
- Deploying applications across clusters and managing updates.
Semaine 11-12 : Monitoring and Logging
- Importance of monitoring and logging in DevOps.
- Setting up monitoring tools (e.g., Prometheus) to collect and analyze metrics.
- Implementing centralized logging for easier debugging and analysis.
Semaine 13-14 : Security and Compliance
- Integrating security into the DevOps process.
- Security best practices for CI/CD pipelines and containerized applications.
- Compliance requirements and strategies for meeting them in a DevOps environment.
Semaine 15-16 : Case Studies and Future Trends
- Analyzing real-world case studies of successful DevOps implementations.
- Exploring emerging trends in DevOps, such as DevSecOps and AIOps.
- Group discussions and projects: Applying DevOps principles to telecommunications-related scenarios.
Évaluation :
L’évaluation comprendra des projets individuels et en groupe, des présentations, des évaluations des compétences techniques acquises, ainsi que des examens écrits pour tester la compréhension théorique
Bibliographie :
Donovan Brown | What is DevOps?
What is DevOps? – Azure DevOps | Microsoft Docs
Getting started with GitHub – GitHub Docs
View of features and epics on the Feature Timeline – Azure DevOps | Microsoft Docs
Plan and track work in Azure Boards with Basic or Agile processes – Azure Boards | Microsoft Docs
Agile Manifesto for Software Development | Agile Alliance
12 Principles Behind the Agile Manifesto | Agile Alliance
- Livres et Manuels :
- Humble, J., & Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional.
- Kim, G., Humble, J., & Debois, P. (2018). The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations. IT Revolution Press.
- Turnbull, J. (2018). The Docker Book: Containerization Is the New Virtualization. James Turnbull.
- Burns, B., & Burns, R. (2017). Kubernetes: Up and Running: Dive into the Future of Infrastructure. O’Reilly Media.
- Nelson, B., & Stucky, B. (2017). Continuous Testing for DevOps Professionals: A Practical Guide. Addison-Wesley Professional.
- Articles et Blogs :
- Fowler, M. (2010). Continuous Integration. MartinFowler.com.
- Willis, J., & Davis, D. (2010). The DevOps Handbook. IT Revolution.
- Fearn, J. (2020). A Brief History of DevOps. Redgate.
- Bass, L., Weber, I., & Zhu, L. (2015). DevOps: A Software Architect’s Perspective. IEEE Software, 32(3), 42-45.
- Cours en Ligne :
- Ressources en Ligne :
- Normes et Recommandations :
N’oubliez pas de vérifier la disponibilité de ces ressources dans votre bibliothèque universitaire ou en ligne. Ces références devraient offrir une base solide pour le cours « Introduction to DevOps » dans le contexte du Génie des Télécommunications selon EUR-ACE.
Modalité d’évaluation
Examen et travaux pratiques
Résultats d’apprentissages
Après avoir réussi l’examen du cours « Introduction to DevOps », les étudiants devraient être en mesure de démontrer les compétences suivantes :
- Compréhension de DevOps :
- Expliquer les concepts clés de DevOps, son importance et son impact sur le développement logiciel moderne.
- Identifier les défis traditionnels du cycle de développement logiciel et comment DevOps les aborde.
- Maîtrise des Outils et Technologies :
- Utiliser des systèmes de contrôle de version (par exemple, Git) pour gérer efficacement les modifications de code.
- Mettre en œuvre l’infrastructure en tant que code (IaC) à l’aide d’outils tels que Terraform et Ansible.
- Créer et gérer des conteneurs à l’aide de Docker.
- Configurer et gérer des applications à l’aide de Kubernetes.
- Automatisation et Intégration Continue :
- Concevoir et mettre en œuvre des pipelines de livraison continue (CI/CD) pour automatiser le processus de développement et de déploiement.
- Utiliser des outils d’intégration continue pour automatiser les tests et les builds.
- Gestion de l’Infrastructure :
- Mettre en place et gérer des environnements de développement, de test et de production à l’aide de méthodes IaC.
- Gérer efficacement les ressources d’infrastructure et optimiser les coûts.
- Sécurité et Conformité :
- Intégrer des pratiques de sécurité dans le processus DevOps et comprendre les meilleures pratiques de sécurité.
- Identifier et traiter les problèmes de sécurité potentiels dans les pipelines de déploiement.
- Surveillance et Débogage :
- Configurer des outils de surveillance pour collecter des métriques et des journaux.
- Utiliser des métriques pour identifier les goulots d’étranglement et améliorer les performances du système.
- Collaboration et Communication :
- Travailler efficacement au sein d’équipes interfonctionnelles et collaborer sur des projets.
- Communiquer de manière claire et concise les progrès, les problèmes et les solutions au sein de l’équipe.
- Analyse de Cas Pratiques :
- Appliquer les principes de DevOps à des cas d’utilisation liés aux télécommunications.
- Proposer et mettre en œuvre des solutions DevOps pour des défis spécifiques dans le domaine des télécommunications.
- Tendances Émergentes :
- Reconnaître les tendances émergentes dans le domaine de DevOps, telles que DevSecOps et AIOps.
- Pensée Critique et Résolution de Problèmes :
- Analyser les problèmes complexes liés à la mise en œuvre de DevOps et proposer des solutions adaptées.
- Éthique Professionnelle :
Appliquer des normes éthiques lors de la gestion de projets, de la sécurité et de la gestion des données.
[lifterlms_course_continue_button]