Post on 22-Jul-2015
www.neoxia.com
Meetup
Paris Salesforce Developer Group
Versionning et travail en équipe avec Salesforce
2
Fiche identité NEOXIA
Plus d’infos sur www.neoxia.com
Cabinet de
Conseil, Design
et Technologie
Consultant, Développeurs, Experts, Architectes, Managers...
70
Créé en
2000
5,5 M€ en 2013
PARIS
CASABLANCA
20% du temps des
consultants consacré à des travaux de R&D, de veille...
3
Spécificités et limites de Salesforce
• Partie code / partie administration et paramétrage
• Synchronisation client / instance ( pas de test en local, risque d’écraser les
modifications des autres )
• Traçabilité des modifications limitée
• Une facilité de paramétrage qui peut perturber le comportement du code /
du code personnalisé influence également le comportement du paramétrage
4
Salesforce, un outil « à l’instant T »
Ne permet pas nativement :
• La gestion des releases
• La gestion des tests comme un patrimoine (intégration continue)
Spécificités et limites de Salesforce
5
Gestionnaire de versions
Rappel de vocabulaire :
• CVS (Concurrent Versions System) : gestionnaire de version
• Repository (dépôt) : zone de stockage des fichiers versionnés
• Commit (transaction) : envoi d’un ensemble de modifications dans le
système
• Branche : ensemble de versions alternatives
6
GIT
Gestionnaire de versions décentralisé
Pourquoi GIT ?
• Simple
• Fiable
• « Scalable »
• Décentralisé
• Connaissances déjà présentes en interne
7
SourceTree
Interface graphique pour GIT
• Gratuit
• Développé par un acteur important du monde informatique (Atlassian)
• Produit de qualité, bien pensé
• Permet d’utiliser toutes les possibilités de GIT
• On peut ne « commiter » que quelques lignes parmi toutes les modifications courantes
• Intègre Gitflow nativement
8
GIT-Flow
Article de référence :
http://nvie.com/posts/a-successful-git-branching-model/
Doc atlassian :
https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow
• Cadre de gestion des développements
• Permet de distinguer les développements courants, urgents / exceptionnels (hotfixes), et les releases
• Accélère et facilite l’utilisation de GIT
9
Problématique
Gestion de plusieurs serveurs (instances Salesforce, Sandboxes)
Recommandation Salesforce : 1 Sandbox / développeur, pas toujours applicable
10
Problématique
Besoin : Système simple permettant de gérer les metadatas sur un dépôt central, tout en continuant d’utiliser les Sandboxes.
Principes utilisés :
• Le code source présent sur le CVS prime sur les autres versions
• Un seul dépôt par projet
• Le contenu de chaque instance doit être isolé
• Le contenu de certaines instances (production, pré-production, …) doit être
protégé.
• Le système mis en place doit être simple d’utilisation
11
Organisation d’un projet et procédure de livraison d’une fonctionnalité
12
Démo 1
Scénario : 2 développeurs sur une même Sandbox, travaillent sur 2 éléments différents
13
Démo 2
Scénario : 2 développeurs sur une même sandbox travaillent sur le même élément, sur des parties différentes
14
Démo 3
Scénario : Livraison en production d’une fonctionnalité validée en intégration
15
Pour approfondir
D’autres modèles de gestion des versions avec Salesforce : Utilisé par GitHub : http://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/ Intégration continue : Peut être utilisé avec un SIC, objet d’un autre Meetup ?
16
MERCI