DevOps
Plan
-
Vue d'ensemble
- Qu’est-ce que DevOps ?
- Quand est-ce qu’il faut mettre un processus DevOps ?
- Qu’est-ce que DevOps apporte comme valeur ajoutée ?
-
Fonctionnement
- Quels sont les outils nécessaires pour mettre en place un processus DevOps ?
- Quelles sont les compétences requises ?
- Comment mettre en place un processus DevOps ?
-
Cas pratique
- Création d’un dépôt
- QUtilisation d’une Org de Dev
- Connexion entre Git et une Org salesforce
Qu’est-ce que DevOps ?
Vue d'ensemble
Qu’est-ce que DevOps ?
Définition & Objectif
- Un ensemble de pratiques visant à réduire le temps entre un changement de code et sa mise en production.
- DevOps est le meilleur compromis pour atteindre à la fois les objectifs des Ops et des Dev
- Dev-Ops est une convergence de la "divergence" d'objectif entre Developpeur et un Opérationnel.
Quand est-ce qu’il faut mettre en place un processus DevOps ?
Vue d'ensemble
Quand est-ce qu’il faut mettre en place un processus DevOps ?
- Une équipe grandissante
- Agilité
- Qualité du travail
Qu’est-ce que DevOps apporte comme valeur ajoutée ?
Vue d'ensemble
Qu’est-ce que DevOps apporte comme valeur ajoutée ?
- Gain de temps
- Livraison multi-orgs
- Qualité de code
Quelles sont les compétences requises ?
Fonctionnement
- Connaître un outil de versioning (git est très utilisé)
- Utiliser un IDE (TextEdit ou Notepad peuvent marcher mais un IDE comme VSCode, IntelliJ, Sublime Text, ....)
- Connaître un langage de programmation (le langage du projet) dans notre cas ça va être "salesforce". Oui salesforce n’est pas un langage mais ça rassemble (apex, html, js, soql, sosl, et beaucoup de xml)
Comment mettre en place un processus DevOps ?
Cas pratique
- Définition d’un cas d’étude
- Création d’un dépôt Git personnel sur Gitlab à partir d’un dépôt existant
- Création d’une Org de Dev
- Mise en place de la connexion Gitlab / Org
Démos
Création du projet
git clone git@gitlab.com:group/project.git # Récupération d'un code existant cd devops # Un nouveau dossier est créé, on se position dedans. rm -rf .git # Supprimer l'historique de git. git init # initialisation du dossier courant pour utiliser git, # cela va créer une nouvelle historisation .git git remote add origin https://gitlab.com/project/repos.git # Definition du depot distant git add . # Préparation du dossier pour un archivage. git commit -m 'Initial commit' # Archivage du dossier. git push -u origin master # Envoyer le dossier vers le dépôt distant.
Création du fichier pour décrire les étapes de build
image: djammadev/djamminux:latest stages: - build - test - deploy - tag - open - merge before_script: - . ./scripts/.gitlab-env.sh include: - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.variables-template.yml' - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.build-package-template.yml' - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.validate-package-template.yml' - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.deploy-package-template.yml' - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.merge-request-template.yml' - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.auto-merge-request-template.yml' - 'https://gitlab.com/djammadev/scripts/-/raw/master/templates/.tag-template.yml' #- template: Code-Quality.gitlab-ci.yml building app package: only: - develop - master - merge_requests validating app: only: - merge_requests # Override to run whenever a merge is done on master or develop. # Partial Deployment is activated. deploying app: rules: - if: '$CI_COMMIT_BRANCH == "master"' when: manual - if: '$CI_COMMIT_BRANCH == "develop"' when: always - when: never # Run tag when a deployment is done. tagging build: only: - master - develop