Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 1 · Pourquoi

Du « tout à la main » au CI/CD

Le cours part d'une provocation : « Développer, c'est écrire du code (non) ». Quand tu modifies une seule ligne, tu enchaînes en réalité toute une série de commandes : tests, vérification du style, commit, push, construction de l'image Docker, envoi au registry, connexion au serveur de production, mise à jour du conteneur, et même un mail au chef. Voici la liste du cours :

vim src/mypackage/module.py      # Make a minor edit
pytest -rf --cov=MyApp –cov-report=xml:report.xml   # Run tests and coverage
black --check --diff             # Check linting (code style)
git add *                        # Get ready to commit
git commit -m "Fix thingy"       # Commit to local repository
git push                         # Push to Git remote
docker build -t myapp:latest .   # Rebuild docker image
docker push --all                # Push Docker image to registry
ssh user@server                  # Login to production server
docker pull myapp:latest         # Pull new image
docker restart mycontainer       # Restart production container
echo "Hey I pushed to prod" | mail -s Update boss@company   # Let our boss know

Fais ça dix fois par jour, en équipe, sans jamais te tromper : impossible. D'où la question du cours : « Comment travailler avec tous les outils modernes ? » (et en mode agile). Sous-titre de la présentation : laisser le cloud faire votre taff.

Vérifie que tu as compris

Dans la liste de commandes du cours, quelle commande envoie l'image Docker construite vers le registry ?

CI : Continuous Integration

L'intégration continue consiste à intégrer en continu les outils de validation dans le processus de développement. Le cours liste cinq bénéfices :

  • Détection au plus tôt des problèmes : régression, vulnérabilités, formatage…
  • Simplification de la vie de l'équipe : c'est le CI qui fait tout.
  • Gain de temps : les tests d'une grosse application peuvent prendre plusieurs heures.
  • Traçabilité : tous les résultats sont gardés.
  • Collaboration : on peut discuter directement sur l'intégration.

Vérifie que tu as compris

Quel bénéfice du CI correspond à « tous les résultats sont gardés » ?

CD : Continuous Deployment / Delivery

Le CD rapproche les environnements de développement et de production :

  • publication automatique des applications et librairies ;
  • mise en production automatique des mises à jour ;
  • extrêmement puissant à l'ère du Cloud.

Attention (point souligné par le cours) : cela suppose une gestion des droits et une validation du code fiables. Automatiser la mise en production d'un code mal validé, c'est automatiser les incidents.

code → CI : valider → CD : publier / déployer → production

Crédit du cours : documentation GitLab. Le schéma ci-dessus est un résumé ajouté.

Vérifie que tu as compris

Quelle précaution le cours associe-t-il au déploiement continu ?