Qu’est-ce que DevOps ?
DevOps permet aux organisations de développer et d’améliorer leurs
produits plus rapidement que d’autres méthodologies de développement
logiciel. L’intégration continue (CI) est une bonne pratique du
développement DevOps qui couvre les phases de build et de tests unitaires
du processus de release. Chaque révision commitée lance automatiquement un
build et des tests, ce qui permet d’identifier et de résoudre les
problèmes tôt, avant de publier les mises à jour aux clients.
Qu’est-ce que Salesforce DevOps ?
Salesforce DevOps applique les mêmes principes que DevOps, avec un focus
sur Salesforce à grande échelle. Cela aide les équipes de développement à
détecter les problèmes, identifier les bugs et les corriger avant de
publier les changements aux clients. DevOps = des releases automatisées et
plus régulières.
Plusieurs outils existent aujourd’hui dans Salesforce pour déployer ces
applications, notamment change sets, Workbench, SalesforceDX, DevOps
Center, l’outil de migration Force.com, le
pipeline CI/CD et des outils AppExchange tiers. Découvrez le
processus de développement et de déploiement Salesforce.
Avantages des outils DevOps
Voici quelques avantages des outils DevOps.
- Cycles de développement plus courts, innovation plus rapide
-
Moins d’échecs de déploiement, de rollbacks et de temps de récupération
- Communication et collaboration améliorées
- Efficacité accrue
DevOps est un parcours qui commence par de petites
étapes. Assurez-vous que toute l’équipe est alignée et opérationnelle.
Ajoutez de la complexité quand votre équipe et votre processus sont prêts.
Voici les piliers d’un processus DevOps réussi.
1. Contrôle de version
Le contrôle de version est la nouvelle source unique de vérité. Les systèmes de contrôle de version
(VCS) vous aident à retracer les changements et
créent des garde-fous de sécurité de qualité pour votre code et vos
métadonnées.
2. Pipeline CI/CD
CI/CD ne sert pas seulement à déployer des
changements. Cela permet aussi de valider le build, d’exécuter des tests
automatisés et d’aider à sauvegarder le code. CI/CD garantit des
déploiements plus fiables et plus fluides, avec moins d’échecs liés à la
couverture de code.
3. Tests automatisés
Un bon outil DevOps exécute toujours des tests automatisés sur
chaque pull request et avant chaque release, pour éviter de merger ou
publier des changements non couverts ou bogués.
4. Sauvegarde
Protégez-vous contre les attaques malveillantes, les bugs Salesforce, les
suppressions accidentelles, etc. Vous gardez l’esprit tranquille en
sachant que vous pouvez toujours revenir en arrière.
Les outils d’analyse de code
automatisent certaines parties du processus manuel de revue de
code dans Salesforce. Vous pouvez utiliser des outils d’analyse
statique pour obtenir les mêmes résultats.
En savoir plus sur les 5 piliers DevOps.
Comprendre le CI/CD
Comprenons les différents termes du CI/CD
1. Continuous Integration
Avec l’intégration continue, chaque modification de code est intégrée à
chaque commit par tous les développeurs. Un build automatisé vérifie
ensuite chaque check-in, ce qui permet aux équipes de détecter les
problèmes tôt.
2. Continuous Delivery
Continuous delivery garantit que le code peut être déployé rapidement et
en sécurité vers la production, en poussant manuellement chaque changement
vers un environnement proche de la production. Comme chaque modification
est livrée automatiquement à un environnement de staging, vous pouvez
déployer l’application en production d’un simple bouton lorsque le moment
est venu.
3. Continuous Deployment
Continuous deployment est l’étape suivante de continuous delivery. Avec
continuous deployment, chaque modification qui réussit les tests
automatisés est déployée automatiquement en production. La plupart des
entreprises non contraintes par la réglementation ou d’autres limites
devraient viser le continuous deployment.
Outils Salesforce DevOps
Différents outils DevOps sont disponibles. Ils peuvent être répartis
ainsi.
1. Build personnalisé
Vous pouvez créer votre propre outil avec différentes plateformes CI/CD,
par exemple :
-
Jenkins : Jenkins est un logiciel open source
d’intégration continue, écrit en Java. Il facilite les tests et rapports
en temps réel sur des changements isolés dans une grande base de code.
-
CumulusCI : CumulusCI aide les développeurs,
administrateurs et testeurs à travailler et collaborer dans le contrôle
de version.
-
Azure DevOps : Azure DevOps est un ensemble de
services intégrés qui fournit les outils nécessaires pour gérer un
backlog, héberger vos dépôts de code source, mettre en place
l’intégration continue, ainsi que les workflows de livraison et de test
avant release.
-
GitHub Actions : GitHub Actions facilite
l’automatisation de tous vos workflows logiciels, avec un CI/CD de
premier plan. Construisez, testez et déployez votre code depuis GitHub.
-
Gitlab pipelines : Similaire à GitHub Actions si vous
préférez GitLab à GitHub. Vous serez naturellement plus à l’aise avec
l’interface, les fonctionnalités et les workflows de la plateforme.
2. Plateformes automatisées
Ces outils DevOps sont bien intégrés à Salesforce.
-
Serpent
:
est la seule plateforme Salesforce DevOps construite autour de
votre workflow de développement, donnant à votre équipe tout ce
dont elle a besoin pour construire, tester et livrer au même endroit.
Pas de change sets. Pas de CLI. Pas besoin de Git. Des
déploiements simples, une automatisation intelligente et une visibilité
complète du sandbox à la production.
Essayez l’espace de démonstration gratuit aujourd’hui et voyez à
quel point Salesforce DevOps peut être simple.
-
Gearset : améliore nettement l’expérience par
rapport aux Salesforce change sets. À cause des nombreuses limites de
déploiement de certains types de métadonnées entre sandboxes de test et
production, les prix commencent à 300 $ par développeur.
-
Copado : Un outil de déploiement solide. L’option
de query pour les déploiements est très utile pour déplacer des données
Salesforce, avec des prix à partir de 250 $ par développeur.
Selon les besoins et le budget de votre entreprise, et en considérant tous
ces outils, vous pouvez décider s’il vaut mieux construire ou acheter
votre processus DevOps.
Nous avons vu ce qu’est DevOps et les éléments importants d’un DevOps
réussi. Voyons quelques bonnes pratiques.
1.
Planification des environnements
:
-
Developer Sandboxes et Scratch Orgs :
-
Chaque développeur utilise une sandbox Developer ou Developer Pro
pour les projets long terme.
-
Les développeurs utilisent aussi des scratch orgs pour le
développement et les tests courts liés à une fonctionnalité.
-
Integration Sandbox :
-
Une sandbox partagée (Partial Copy) pour intégrer les contributions
individuelles des développeurs.
-
UAT (User Acceptance Testing) Sandbox :
-
Une sandbox Full Copy pour permettre aux utilisateurs métier de
tester les nouvelles fonctionnalités avant la production.
-
Staging Sandbox :
-
Une autre sandbox Full Copy qui imite l’environnement de production
pour les derniers tests préproduction.
-
Production Environment :
-
L’environnement live où les utilisateurs finaux interagissent avec
l’application.
2. Gestion des environnements :
-
Gestion des sandboxes et scratch orgs :
-
Rafraîchissez régulièrement les sandboxes Developer et Integration
pour refléter les dernières données et configurations de production.
-
Utilisez Salesforce DX pour créer et gérer les scratch orgs.
Configurez des scripts pour automatiser leur création et
suppression.
-
Planifiez les refreshs UAT et Staging autour des releases majeures
pour les aligner avec les cycles de test.
-
Stratégie de sauvegarde :
-
Mettez en place des sauvegardes automatisées pour les sandboxes et
les données de production afin d’éviter la perte de données.
3. Contrôle de version :
-
Stratégie de commit :
- Commitez fréquemment avec des messages clairs et descriptifs.
-
Utilisez des pull requests pour les revues de code avant fusion dans
les branches principales.
-
Suivi des changements :
-
Suivez les changements de métadonnées et gardez les configurations
synchronisées entre environnements avec des outils comme
Serpent, Gearset ou Copado.
4. Configuration des environnements :
-
Configurations propres à chaque org :
-
Utilisez les scratch orgs Salesforce DX pour la configuration et le
développement.
-
Utilisez Salesforce CLI et les commandes sfdx pour gérer et déployer
les changements.
-
Variables d’environnement :
-
Gérez les informations sensibles en sécurité avec Salesforce Shield
ou des custom settings chiffrés.
5. Déploiement automatisé :
-
Contrôle de version :
-
Utilisez Git comme source de vérité pour toutes les métadonnées et
le code.
-
Mettez en place des stratégies de branches, par exemple feature
branches, develop branch et master branch, pour gérer les
changements.
-
Pipeline CI/CD :
-
Utilisez Salesforce DX, Jenkins et GitHub Actions pour automatiser
les processus de déploiement.
-
Les étapes d’un pipeline CI/CD incluent :
-
Build : Récupérer le code depuis le contrôle de
version.
-
Test : Exécuter les tests automatisés avec Apex
Test Execution.
-
Deploy : Déployer les changements vers la
sandbox Integration, puis UAT, Staging et Production.
-
Scratch Org Validation : Créer des scratch orgs
dans le pipeline CI/CD pour valider les changements dans un
environnement isolé.
6. Gestion des données :
-
Données de test :
-
Utilisez des données anonymisées ou synthétiques dans les sandboxes
Developer et Integration pour respecter les réglementations de
protection des données.
-
Migration des données :
-
Utilisez des outils comme Salesforce Data Loader ou Talend pour
migrer les données entre environnements.
-
Données de scratch org :
-
Utilisez Salesforce DX pour initialiser les scratch orgs avec les
données pertinentes pour le développement et les tests.
7. Monitoring et logging :
-
Logging :
-
Mettez en place le logging avec Salesforce Debug Logs et configurez
des alertes pour les erreurs critiques.
-
Monitoring :
-
Utilisez des outils AppExchange comme New Relic ou Datadog pour la
surveillance des performances et les health checks.
8. Conformité et sécurité :
-
Security Reviews :
-
Effectuez régulièrement des revues de sécurité et tests d’intrusion
dans les environnements Staging et Production.
-
Contrôles d’accès :
-
Mettez en place des contrôles d’accès basés sur les rôles (RBAC)
pour limiter l’accès aux environnements et données sensibles.
FAQ
Qu’est-ce que Salesforce DevOps ?
Salesforce DevOps
applique DevOps à Salesforce à grande échelle. Il aide les équipes de
développement à détecter les problèmes, identifier les bugs et les
corriger avant de publier les changements aux clients.
Salesforce DevOps est-il une bonne carrière ?
Oui, les ingénieurs DevOps ont de bonnes perspectives. Aujourd’hui,
presque tous les projets utilisent Salesforce DevOps.
Que fait un ingénieur Salesforce DevOps ?
Un ingénieur DevOps est responsable de la mise en place de la livraison
continue, de l’optimisation, du monitoring et de la gestion des releases.
Il soutient aussi le processus de release de bout en bout.
Résumé
Salesforce DevOps est une culture et un ensemble de processus qui
rapprochent les équipes de développement et d’opérations pour mener à bien
le développement logiciel. Après avoir parcouru ces outils DevOps, vous
devriez pouvoir définir votre stratégie et votre processus de déploiement.