DevOps

DevOps Intro

Plan

  • Vue d'ensemble

    1. Qu’est-ce que DevOps ?
    2. Quand est-ce qu’il faut mettre un processus DevOps ?
    3. Qu’est-ce que DevOps apporte comme valeur ajoutée ?
  • Fonctionnement

    1. Quels sont les outils nécessaires pour mettre en place un processus DevOps ?
    2. Quelles sont les compétences requises ?
    3. Comment mettre en place un processus DevOps ?
  • Cas pratique

    1. Création d’un dépôt
    2. QUtilisation d’une Org de Dev
    3. 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

Quels sont les outils nécessaires pour mettre en place un processus DevOps ?

Fonctionnement
  • VS Code : IDE VS Code
  • CVS : Git CVS : Git
  • Gestion de projet : Jira Jira : Gestion de projet
  • Plateforme : Salesforce Organisation
  • Entreprise : Djamma Dev Entreprise / Application

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

  1. Définition d’un cas d’étude
  2. Création d’un dépôt Git personnel sur Gitlab à partir d’un dépôt existant
  3. Création d’une Org de Dev
  4. 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
                    

Thanks — Cheick Sissoko