400 likes | 628 Views
Le système de production. Présentation à la délégation sénégalaise Marie-Eve Martin. Conclusion. Les différents morceaux. Le système de traitement La gestion des sources Les normes de programmation La gestion des mises à jour Les outils communs. Le système de traitement.
E N D
Le système de production Présentation à la délégation sénégalaise Marie-Eve Martin
Les différents morceaux Le système de traitement La gestion des sources Les normes de programmation La gestion des mises à jour Les outils communs
Le système de traitement Fichier d’instructions Analyste Interpréteur Exécuteur Ressources etprogrammes
Historique 2011 à aujourd’hui Système imaginé pour une équipe (RHN) Système généralisé pour toutes les équipes Ajout de fonctionnalités, souplesse, capacités… On est arrivé au bout, prêtsà recommencer avec toutesl’expérience acquise
Fichier d’instructions Format texte Indépendant
Interpréteur • Technologies : Opalis/Python • Responsabilités : • Traduire le fichier d’instructions • Préparer les batchs • Gérer les erreurs
Exécution Serveurs Windows, communs à tous Outil de balancement de la charge : LSF
Leçons apprises • L’importance d’un bon interpréteur a été sous-estimée. • L’interpréteur actuel a été développé pour les besoins d’une équipe et adapté à tous, • Beaucoup de patch. • L’expérience acquise nous permettra de planifier une prochaine version très solide. • La présence d’un interpréteur permet d’isoler le traitement et facilite les maintenances.
Leçons apprises Beaucoup d’interdépendance dans le système. Le format du fichier d’instructions ne respecte aucune norme Meilleur contrôle des outils installés sur les systèmes.
Les différents morceaux Le système de traitement La gestion des sources Les normes de programmation La gestion des mises à jour Les outils communs
Gestion des programmes • Logiciel utilisé : Tortoise SVN + Subversion • Avantages : • Gestion des sources • Contrôle des modifications • Gestion de l’historique
BD Ressources • Utilisée pour enregistrer tous les paramètres • Adresses de répertoires • Paramètres de connexion • Permet de changer un paramètre au besoin, sans modifier les fichiers d’instructions.
Leçons apprises Les traces de déploiement dans l’historique d’un fichier nous a sauvé plusieurs fois. Le déploiement à la pièce est indispensable pour la correction de bugs en urgence. Difficile de définir quels programmes doivent être gérés et lesquels sont des tests à jeter.
Les différents morceaux Le système de traitement La gestion des sources Les normes de programmation La gestion des mises à jour Les outils communs
Technologies utilisées • Nombre de technologies limitées : • FME, ESRI, PYTHON, DOS, JAVA, GDAL, ORACLE, POSTGIS • Facilite le support et les migrations. • Demande certains compromis. • Requière une bonne gouvernance.
Bonnes pratiques • Normes de programmation • Établies et adoptées les programmeurs et le support. • Encouragées par la gestion • Mécanismes de contrôle de qualité
Exemples de normes de programmation Documentation obligatoire Tests unitaires obligatoires et stockés avec le programme Messages d’erreurs devant être accompagnés d’instructions. …
Leçons apprises Les dernières nouveautés sont toujours tentantes (prévoir un environnement pour tester). Demande un mécanisme et des règles de gouvernance et souvent un contrôle des ordinateurs. Beaucoup de résistance au contrôle de qualité par les pairs.
Leçons apprises • Facilite énormément le support • Facilite énormément les mises à jour • La présence de tests de métriques autonomes permet de tester l’ensemble des programmes durant la nuit de façon automatique
Les différents morceaux Le système de traitement La gestion des sources Les normes de programmation La gestion des mises à jour Les outils communs
Gérer ou subir le changement ? Productivité Efforts de migration Efforts de migration Migration par saut • Chaque migration est un mur à franchir • Perception : Encore un changement... Peut-on le retarder ? • Les processus ne sont pas faits pour changer facilement, chaque changement coûte cher. Changements continus • Le changement fait partie de l’amélioration constante d’un processus.
Gérer le changement • Une bonne gestion de changement permet: • De profiter des dernières nouveautés. • De faciliter les migrations. • Plus d’agilité. • Une planification plus précise • Une bonne gestion de changement démontre: • Un meilleur contrôle des processus.
Gérer le changement • Une bonne gestion de changement requiert: • La volonté d’évoluer ! • De la planification ! • De la rigueur ! • Accepter qu’un développement n’est jamais final. • Définition et le respect de bonnes pratiques. • Moins de bricolage, de patch. Touche tout le monde, du programmeur à la gestion
Leçons apprises Le pression de livrer nous amène encore souvent à tourner les coins ronds La migration Windows 7 s’est faite sans heurts en 2 semaines La migration FME est faite 1 ou 2 fois par année (presque) sans heurts
Les différents morceaux Le système de traitement La gestion des sources Les normes de programmation La gestion des mises à jour Les outils communs
Bénéfices de composants réutilisables Plus de redondance Plus d’autonomie Plus rapide à développer Plus d’investissement initial Équipes Services Boite à outils Totalité d’un projet Échelle non-représentative TI-Géomatique DDIP / SPC Choix du niveau d’intervention
Organisation du travail • Équipe spécialisée en développement: • Facilite le développement de composants réutilisables (boite à outils) • Uniformise les développements et facilite le transfert à support • Allège le fardeau des équipes de production • > 250 programmes/services réutilisables
Organisation du travail Énonce le besoin Comprend le processus Développements ad-hoc Moins d’optimisation Moins de respect des normes Plus de pression de sortir quelque chose vite Fournit des outils communs Développe les demandes des analystes Optimise les outils redondants Petites modifications Migrations Correction de bugs • Analystes • Programmeurs • Support
Exemples de composants réutilisables • Le système de traitement • Utilitaires • La base de données de suivi de production
Exemples de composants réutilisables Catalogue1 Catalogue 2 Programme • Validations basées sur un catalogue • Catalogue basé sur ISO-19110 • Uniformise les validations entre les processus • Programmes indépendants des règles
L’utilisation du catalogue Site FTP Sous-traitant Outil de création de catalogue Catalogue XML Programme de validation
Exemples de composants réutilisables • Validations basées sur un catalogue • Valider Contraintes spatiales • Valider Domaine attribut • Valider Dimensions minimales • Valider Proximité • Valider Segmentation • …
Leçons apprises Analystes et développeurs difficiles à séparer (à cause de considérations historiques au CITS) Développements basés sur normes internationales évoluent mieux et les partenaires embarquent mieux.
Conclusion Pour qu’un système de production fonctionne bien, tous les morceaux doivent s’emboiter correctement. Une équipe forte doit agir comme chef d’orchestre pour coordonner le tout. Ce sont souvent les composants non planifiés qui deviennent les meilleures idées (mais ils nécessitent un bon polissage)