Skip to main content

DevOps Roadmap

· 4 min read

Ingénieur en informatique au CATIE spécialisé en Robotique, je travaille sur des projets de développement logiciel et d'intégration sur différentes plateformes. Intrigué par l'intégration et l'automatisation, j'ai décidé d'approfondir mes connaissances en DevOps.

Cette roadmap DevOps personnelle évolue au fil de mes expériences et objectifs. Elle est régulièrement mise à jour. Suggestions et commentaires sont les bienvenus.

DevOps

01 Concepts du développement logiciel

Développement logiciel Pour collaborer efficacement avec une équipe de développement et automatiser les tâches, il est utile de comprendre les méthodes agiles, l'utilisation d'outils comme Jira, la gestion de versions avec Git, la configuration des applications via des outils de build, le cycle de vie du développement logiciel et l'intérêt des tests automatisés.

02 OS & Linux

Système & Linux Préparer et maintenir l'infrastructure sur laquelle une application est déployée implique de maîtriser l'administration d'un serveur, l'installation d'outils, la gestion des permissions et des clés SSH, la configuration des pare-feu, ainsi que les notions de réseau, sécurité, virtualisation et protocoles comme HTTP/HTTPS.

03 Contenérisation - Docker

Conteneurisation La conteneurisation est devenue le standard pour l'emballage logiciel. Comprendre Docker, ses réseaux, la persistance des données, la création de Dockerfiles, l'utilisation de Docker-Compose et la gestion des dépôts permet de déployer et gérer des applications de façon moderne.

04 CI/CD Pipeline

CI/CD L'intégration et le déploiement continus (CI/CD) sont au cœur du DevOps. Configurer un serveur CI/CD, automatiser les pipelines, gérer les tests et les artefacts, et intégrer le dépôt de code sont des pratiques qui facilitent la livraison rapide et fiable des applications.

05 Cloud

Cloud L'infrastructure cloud est aujourd'hui omniprésente. Se familiariser avec les services proposés par AWS, Azure ou Google Cloud, comme la gestion des utilisateurs (IAM), des réseaux privés (VPC) et des serveurs virtuels (EC2), permet d'administrer des environnements complexes et évolutifs.

06 Orchestration de conteneurs - Kubernetes & Docker Swarm

Orchestration L'orchestration de conteneurs avec Kubernetes ou Docker Swarm facilite la gestion de centaines de conteneurs sur plusieurs serveurs. Maîtriser les composants de base, la CLI kubectl, la persistance des données et les namespaces est essentiel pour piloter des infrastructures modernes.

07 Monitoring & Observabilité

Observabilité La surveillance des applications en production repose sur des outils comme Prometheus, Grafana ou l'ELK Stack. Ces solutions permettent de suivre les performances, détecter les problèmes et visualiser les données pour garantir la fiabilité des systèmes.

08 Infrastructure as Code

Infrastructure as Code Automatiser la création et la gestion de l'infrastructure grâce à des outils comme Terraform ou Ansible réduit les erreurs et accélère le déploiement. L'approche Infrastructure as Code favorise la reproductibilité et la gestion des environnements.

09 Langages de script - Python

Scripting L'automatisation des tâches de développement et d'opérations passe souvent par l'écriture de scripts. Python, accessible et polyvalent, permet de créer des utilitaires pour gérer les builds, les déploiements ou le nettoyage des environnements.

10 Contrôle de version - Git

Git Le contrôle de version est indispensable pour collaborer sur du code, suivre les modifications et gérer les branches. Git, via des plateformes comme GitHub ou GitLab, offre une base solide pour organiser et partager les projets, qu'ils soient applicatifs ou liés à l'automatisation.