Skip to main content

DevOps, CI/CD, etc..

DevOps

Présentation

  • DevOps = contraction de "Development" et "Operations"
  • mouvement culturel, philosophique, technique :)
  • objectif : rapprocher les équipes de développement et d'opérations
  • outils : git, intégration continue, déploiement continu, etc..
  • principes : automatisation, collaboration, transparence, etc..

CI/CD

CI

  • CI = Continuous Integration
    • intégration continue
    • chaque développeur publie régulièrement son code
    • chaque publication déclenche des tests automatiques
    • objectif : détecter les problèmes rapidement

CD

  • CD = Continuous Deployment
    • déploiement continu
    • chaque publication est déployée automatiquement
    • objectif : déployer rapidement et souvent

Outils

Liste

  • gitlab, github, bitbucket, etc..
  • jenkins, travis, circleci, etc..
  • docker, kubernetes, etc..

12-factor app

Présentation

  • https://12factor.net/
  • méthodologie pour développer des applications modernes
  • objectif : applications robustes, évolutives, maintenables, etc..
  • 12 principes : codebase, dépendances, config, backing services, build-release-run, process, port binding, concurrency, disposabilité, dev/prod parity, logs, admin processes

Services "intégrés"

Les principaux

différences : https://about.gitlab.com/devops-tools/github-vs-gitlab.html (gitlab plus complet et partie opensource, github plus connu mais moins complet, propriétaire et Microsoft)

Services proposés par git[lab|hub] :

  • gestion de version (git) : code source, branches, commits, etc.. avec interface web
  • issues / tickets / bug tracking : gestion des problèmes, des demandes, etc..
  • CI/CD

TP gitlab

Contenus

Débuts

  • créer un compte sur gitlab, créer un projet, récupérer le code, le modifier, le publier
    • clef ssh

CI/CD

  • faire un pipeline CI simple (qqs tests)
  • déployer l'application sur un serveur (gitlab pages, ou bien mini container docker)

Collaboration

  • créer un ticket, le fermer, etc..
  • lier un ticket à un commit, etc..
  • merge request, cloner un projet, etc..
  • gestion des conflits