https://tssr.nolan.ovh by Flo.
# 25/04/2025

Devops: concepts et outils

Cette prise de note concerne la vidéo de cocadmin sur Ya juste 6 concepts pour tout comprendre au DevOp.

L'idée est d'avoir un aperçu du "métier" et d'acquérir au fur et à mesure le vocabulaire lié au DevOps, être curieux!

Ci-après, les différents concepts et leurs outils: gestion de config., les conteneurs, le CI/CD, les Orchestrateurs, le Cloud, le monitoring.

Gestion de Configuration

La gestion de configuration est essentielle pour automatiser la configuration et la gestion des infrastructures informatiques. Les outils suivants sont couramment utilisés :

  • Ansible: Un outil d'automatisation simple et puissant pour le déploiement d'applications, la gestion de configuration et l'orchestration de tâches
  • Chef: Une plateforme d'automatisation qui transforme l'infrastructure en code, permettant de gérer les configurations de manière déclarative.
  • Puppet: Un outil de gestion de configuration qui permet de définir et de contrôler l'état des systèmes informatiques.
  • SaltStack: Une plateforme d'automatisation qui combine la gestion de configuration avec des fonctionnalités de gestion des clouds et d'orchestration.

Conteneurs

Les conteneurs permettent d'encapsuler des applications avec leurs dépendances, offrant ainsi une portabilité et une isolation accrues. Voici les technologies clés :

  • Docker: La plateforme de conteneurisation la plus populaire, permettant de créer, déployer et gérer des conteneurs.
  • LXC (Linux Containers): Une technologie de virtualisation au niveau du système d'exploitation qui permet de créer et de gérer des conteneurs Linux.
  • Podman: Un outil de gestion de conteneurs sans démon, compatible avec Docker, qui permet de gérer des conteneurs de manière sécurisée.

CI/CD (Intégration Continue / Déploiement Continu)

Les pratiques CI/CD automatisent les processus de développement logiciel, de l'intégration à la livraison. Les outils populaires incluent:

  • GitLab: Une plateforme DevOps complète qui offre des fonctionnalités de gestion de code source, CI/CD, et plus encore.
  • Jenkins: Un serveur d'automatisation open-source largement utilisé pour automatiser les différentes étapes du développement logiciel.
  • Argo CD: Un outil de workflow natif Kubernetes pour orchestrer des pipelines CI/CD.

Orchestrateurs

Les orchestrateurs gèrent le déploiement, la mise à l'échelle et l'opération des conteneurs. Les solutions populaires sont:

  • Kubernetes: Un système open-source pour automatiser le déploiement, la mise à l'échelle et l'exploitation des applications conteneurisées.
  • Docker Swarm: L'orchestrateur natif de Docker pour la gestion des clusters de conteneurs Docker.
  • HashiCorp Nomad: Un orchestrateur flexible pour déployer et gérer des conteneurs et des applications non conteneurisées.

Cloud

Les plateformes cloud offrent des services d'infrastructure évolutifs et flexibles, répondant aux pics de demande :

  • AWS (Amazon Web Services): Une plateforme cloud complète offrant une large gamme de services, y compris le calcul, le stockage et les bases de données.
  • Google Cloud Platform (GCP) : Une suite de services cloud qui offre des solutions de calcul, de stockage, de mise en réseau et bien plus encore.
  • Azure: La plateforme cloud de Microsoft, offrant des services d'infrastructure, de plateforme et de logiciel.

Observabilité - Monitoring

  • Prometheus: Un système de surveillance et d'alerte open-source, conçu pour la fiabilité et la scalabilité.
  • Grafana: Une plateforme d'analyse et de monitoring qui permet de visualiser des données provenant de diverses sources
  • Elastic Stack (ELK): Une suite d'outils pour la recherche, l'analyse et la visualisation des données en temps réel.

Aperçu globale

J'ai réalisé un petit schéma "vite fait" histoire d'essayer de situer les différents concepts entre-eux.

...
Les concepts DevOps.

D'autres notions

Voici les notions supplémentaires proposé par le chat.

DevSecOps

Intégration de la sécurité: Intégrez la sécurité dès le début du cycle de développement (Shift Left) pour identifier et corriger les vulnérabilités plus tôt.

Outils de sécurité: Utilisez des outils comme Snyk, SonarQube, et OWASP ZAP pour analyser et sécuriser le code et les dépendances.

Infrastructure as Code (IaC)

L'IaC permet de gérer et de provisionner l'infrastructure informatique via des fichiers de code, plutôt que via des processus manuels.

Outils populaires: Terraform, AWS CloudFormation, et Azure Resource Manager.

Surveillance et Logging

Centralisation des logs: Utilisez des outils comme ELK Stack (Elasticsearch, Logstash, Kibana), Fluentd, ou Splunk pour centraliser et analyser les logs.

Alertes et Dashboards: Configurez des alertes basées sur des métriques clés et utilisez des tableaux de bord pour visualiser l'état du système en temps réel.


Sources: