Please enable JavaScript.
Coggle requires JavaScript to display documents.
Autres outils (Ansible (Les avantages (Sans agent, Simple, facile à…
Autres outils
Ansible
Outil d'automatisation Infra As a Code
Orchestration des tâches
Les inconvénients
Rétrocompatibilité
Difficile à installer
Les avantages
Sans agent
Simple
facile à apprendre
Jenkins
Outil d'intégration continue (CI)
Outil de livraison continue (CD)
Inconvénients
Capacités limitées avec pipelines déclaratifs
Problèmes de compatibilité des plugins
Avantages
Open source et gratuit
Hébergé en interne
Terraform
Utiliser pour la création d'infrastructure
Cette infrastructure est créer sous forme de code (fichier de paramétrage json)
syntaxe déclarative
Concepts clé de GitLab-CI
Fichier .gitlab-ci.yml
Fichier de configuration écrit en YAML
Configure un projet GitLab
Utilise un
Runner
pour
lancer des
Pipelines
Chaque
push
de code déclenche
l'éxec. de Pipeline d'IC
Pipeline
L'exécution des différents
Stages
l'un après l'autre
Ordre indiqué dans la propriété
stages
S'il y a un job qui échoue, le pipeline arrête l'exécution
Les Jobs d'un même stage sont exécutés en //
en fct du nombre de runners disponibles
Jobs
Un Job = Une tâche (Ex: Job_test; Job_Prod)
Doit être exécuté dans un
Stage
(Etape)
Les jobs sont exécutés indépendamment les uns des autres
Mots clés
:
script
: chaque ligne une commande à exécuter par le runner
before_script
: Commandes à exécuter avant de lancer les jobs
When
:Définir quand est ce que le job doit être lancé (manual, on_failure/on_success, always)
only
: Ne Déclencher le job que lors de push ou commit sur certaines branches ou tags
except
: Ne
déclencher pas le job
lors de push ou commit sur les branches ou tags indiqués dans cette partie
artifacts
: Indique une liste de fichiers ou répertoires joins au job : Toujours / Lorsqu'il échoue / réussi
Les artefacts seront envoyés à GitLab à la fin du Job
pourront être téléchargés dans l'interface utilisateur de GitLab
Exemple:
Link Title
Les runners
Peut être
Une VM
Un cluster de containers
Un container Docker
Gitlab Runner est un projet Open Source
Types
Runner public
Permettent d'éviter d'installer des runners
MAIS
Limité
: En compte gratuit, vous avez le droit à 2000 minutes de temps de pipeline par mois
Ces runners publics de gitlab.com sont exécutés sur AWS
Runner Privé
Stages
Un job est lancé obligatoirement dans un stage (Etape)
Permet de définir plusieurs stages (étapes)
par un pipeline, de sorte que :
Les jobs du même stage sont exécutés en //
Les stages sont exécutés les uns après les autres:
Si le stage
test
échoue, le stage
deploy
ne sera pas lancé
Les stages (ex : build et test) sont exécutés
dans cet ordre précis
Explication
Les
jobs
du stage
build
sont exécutés en
parallèle
et s'ils réussissent, les jobs de
test
seront exécutés à leur tour en //. Et si ces derniers réussissent, alors les jobs de
deploy
peuvent enfin être exécutés toujours en parallèle.
Exemple
:
Autres concepts : Variables; environnements, ...Etc
https://blog.eleven-labs.com/fr/introduction-gitlab-ci/
Test PySpark
utilisant l'approche CI/CD conçu
pour les projets Python
1) Comment utliser Pipfile vs requirement.txt?
2) Quelle sont les + de Pipfile?
On peut utiliser pour les tests unitaire
Sparkling
:
https://pypi.org/project/pysparkling/
(conseil donné dans l'article :
https://developerzen.com/best-practices-writing-production-grade-pyspark-jobs-cb688ac4d20f
)
Mock
utiliser un wrpper avec pytest
import mock
import pytest
from pytest_mock import mocker
Signification
: Un mock veut dire "imitation" en anglais.
Usage
: Imiter le comportement de librairies ou de modules ou des classes ou des objets que nous ne souhaitons pas tester
Avantages
:
Augmentation de la vitesse de dev
Éviter les effets secondaires indésirables lors des tests
Inconvénients
:
-
DevOps for ...
Data Science project :
https://towardsdatascience.com/devops-for-data-scientists-taming-the-unicorn-6410843990de
Big data Project:
https://medium.com/panaseer-labs-engineering-data-science/how-devops-helped-us-solve-our-big-data-development-problem-263474dfeedb
DataOps
DataOps What is it and VS DevOps :
https://www.saagie.com/blog/dataops-devops-2-0/
Explication raison du non fonctionnement du
déploiement en mode client à distance
https://stackoverflow.com/questions/28666183/submitting-jobs-to-spark-ec2-cluster-remotely/45512814#45512814