jpcweb / modele-da

Modèle de Dossier d'Architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Modèle de dossier d’architecture

Ce modèle de Dossier d’Architecture (DA) est applicable à la plupart des projets d’informatique de gestion, indépendamment de l’architecture générale retenue (monolithe, SOA, micro-service, n-tiers, …). Ce modèle a déjà été utilisé sur plusieurs projets importants y compris au sein de grandes organisations. Il s’enrichit régulierement.

Note
Nous utilisons le terme 'DA' et pas 'DAT' ou termes similaires car chaque organisation possède sa terminologie mais surtout le terme 'technique' (comme 'fonctionnel' d’ailleurs) est équivoque (qu’est ce qui n’est pas "technique" dans l’IT ?).

Autres langues : Anglais.

Si vous utilisez et appréciez ce modèle, vous pouvez nous remercier en mettant une étoile au projet et/ou en nous permettant de lister votre organisation dans les références (adresse ici).

Principes du modèle

Nous avons découpé l’architecture en cinq volets (applicatif, sécurité, dimensionnement, infrastructure et développement), chaque volet étant auto-porteur.

L’idée est de proposer un ensemble de vues d’architecture alignées sur les rôles que l’on trouve le plus fréquemment dans les organisations et sur leurs préoccupations respectives. Par exemple, un architecte d’infrastructure ou un ingénieur DevOps a rarement besoin de connaitre le détail de l’architecture logicielle (le détail des frameworks utilisés ou façon de traiter les erreurs). De même, un PO ou un architecte d’entreprise va s’intéresser à la vision macroscopique des modules applicatifs et de leurs interactions principales ("le batch B appelle le service S") mais rarement du détail de l’infrastructure sous-jacente (choix de la base de donnée du service, dimensionnement des machines, …).

à lire en priorité

Un dossier suivant ce modèle sera ainsi constitué :

Dans chaque volet, on retrouvera le triptyque :

  • Contraintes (juridiques, budgétaires, technologiques, normatives…) applicables au projet;

  • Exigences non fonctionnelles (ENF) exprimées par les porteurs du projet dans la limite des contraintes ;

  • Solution (description de l’architecture retenue et répondant aux ENF).

Le dossier comprend également un exemple de glossaire pouvant servir de support à l’Ubiquitous Language, élément fondamental d’une architecture.

Pour en savoir plus, voir ce papier publié dans Applied Computing and Informatics.

Utilisation de ce modèle

Présentation générale

  • Ce modèle est au format asciidoc. Vous pouvez le convertir dans le format de votre choix pour vos DA même si nous préconisons un format textuel et lisible (type Markdown) facile à suivre et à modifier par merge requests dans un outil de gestion de version et ainsi transformer votre DA en une documentation vivante ;

  • Ce modèle est perfectible, c’est pourquoi tous les retours, critiques (constructives), contributions et suggestions sont appréciés (faire une pull request ou utiliser les issues) ;

  • De plus, il est volontairement riche en explications et exemples car il a également une (modeste) prétention éducative à destination des étudiants et jeunes architectes.

  • Le texte en italique contient des exemples ;

  • Chaque chapitre dispose de notes aidant à le remplir ;

  • Des modèles vierges (sans exemples) sont fournis pour votre confort. Il est fortement préconisé de partir des modèles vierges tout en ayant dans une autre fenêtre le modèle avec exemples et explications sous les yeux ;

  • Le script export joint permet de produire une archive de votre dossier complet au format HTML, PDF ou ODT.

Conseils sur la rédaction de votre dossier d’architecture

  • Rester bref, chaque mot doit avoir son utilité. Pas d’explication bateau type ‘ceci est l’introduction’, pas de redites d’autres documents, de l’historique de l’entreprise ou de concepts vagues ;

  • Un lecteur doit comprendre le fonctionnement et les contraintes de l’application sans être noyé de détails. Le document doit rester maintenable et à jour ;

  • Si l’application suit une architecture standardisée par l’organisation, ne jamais la répéter (principe DRY) et se référer à un document commun ;

  • Si un chapitre n’est pas applicable, ne pas le laisser vide mais simplement mentionner N/A pour que le lecteur sache que le sujet a été traité ou TODO s’il reste à compléter ;

  • Ce modèle se veut suffisamment complet pour couvrir la plupart des applications. Il est donc normal que de nombreux chapitres ne soient pas applicables dans votre contexte ;

  • Lister les hypothèses d’architecture et études en cours dans le chapitre "Points non statués" de chaque volet (leur nombre doit être limité, sinon c’est le signe que le DA est rédigé trop tôt) ;

  • Isoler dans des annexes en fin de document les informations d’architecture importantes mais concernant des points précis n’intéressant que peu de lecteurs ;

Que ne trouve-t-on PAS dans ce document ?

  • la conception détaillée du projet (diagrammes UML de classes, de séquences…) sauf pour présenter un pattern général spécifique à l’application ;

  • des éléments d’études (SWOT, scénarios…) : les choix doivent déjà avoir été faits (en revanche, nous préconisons à cette fin l’écriture d’ADRs en annexe du DA);

  • l’urbanisation du SI (nous nous positionnons ici au niveau d’une application ou d’un ensemble de composants cohérents) ;

  • les règles d’architecture de référence (communes à toutes les applications) ;

  • des détails techniques (IP, logins) pouvant compromettre la sécurité ;

  • l'architecture physique (détails des serveurs et datacenters, architecture réseau, architecture de stockage, provisioning…). Il s’agit de sujets très pointus et en général traités par les architectes d’infrastructure à un niveau SI ;

  • le détail des environnements autres que la production (recette, développement…). Ces derniers sont en général trop fluctuants pour figurer dans ce dossier et gagneront à plutôt être documentés par l’intégrateur dans d’autres dossiers, fiches, wikis ou outils de CMDB.

FAQ

  • A partir de quelle taille de projet ce modèle est-il éligible ? Ce modèle a été utilisé avec succès sur un projet d’une seule personne. Il peut être utilisé pour toute taille de projet. Un grand projet remplira probablement plus de rubriques mais la plupart concernent tous les projets. Par exemple, les questions de disponibilité ou d’internationalisation ne sont pas liées à la taille d’un projet nous semble-il.

  • Ce modèle peut-t-il servir de base à un référentiel d’architecture ? Même si ne nombreuses idées peuvent être reprises, non, ce n’est pas l’objet de ce modèle.

  • Ce modèle convient-il à un programme complet ? Nous préconisons pour un programme complet une approche type TOGAF avec les livrables associés. En revanche, les phases C et D pourront être documentées par un DA au sein de chaque projet de ce programme.

  • Comment documenter les trajectoires d’architecture ? Nous préconisons de décrire la trajectoire générale (sans entrer dans trop de détails) dans la section "Architecture générale" du volet applicatif et d’en décrire l’architecture des futurs modules dans les sections habituelles des différents volet mais en spécifiant clairement de quelle étape il s’agit (par exemple, préfixer le titre d’un module ou d’un flux qui n’apparaît qu’en étape 2 avec [Etape 2]). Attention néanmoins à faire en sorte d’éviter trop de refactoring documentaire quand cette partie du projet sera implémentée (liens cassés par exemple).

    • Traiter les éléments décrits dans les mêmes sections que les éléments à implémenter immédiatement afin de les traiter suivant la même logique que le reste.

    • Plus l’élément décrit est lointain dans le temps, moins son architecture doit être détaillée (c’est un bon principe agile d’architecture 'Just In Time' qui évitera de réécrire de nombreuses fois ces sections).

    • Plus l’élément décrit est proche de l’architecture physique, moins il doit être détaillé. Par exemple, il peut être pertinent de documenter dans le volet applicatif l’architecture générale de modules qui devraient être implémentés dans un an mais attendre le plus possible pour documenter leur dimensionnement précis dans le volet dimensionnement. De même, vous pouvez documenter des flux applicatifs lointains mais attendez avant de décrire les flux techniques précis dans le volet infrastructure.

Licence

  • Copyright (c) 2017-2021 Bertrand Florat et contributeurs

  • Ce modèle est en licence CC BY-SA 4.0 : Creative Commons Attribution - Partage à l’identique V4.0

  • Vous pouvez créer votre propre modèle à condition qu’il conserve la licence CC BY-SA 4.0 et qu’il contienne donc ces trois éléments:

  • Les dossiers d’architecture issus de ce modèle n’ont pas à appliquer cette licence. Il est néanmoins recommandé d’y inclure un lien vers https://github.com/bflorat/modele-da.

Remerciements

  • Contributrices/eurs

  • Relecture : Frédérique Lefranc

  • Retours : Antoine Parra Del Pozo, Pascal Bousquet, Philippe Mayjonade, Nicolas Chahwekilian, Steven Morvan, Dr. Christophe Gaie

  • Tous les diagrammes de ce modèle ont été générés avec l’excellent outil PlantUML Les diagrammes C4 utilisent la personnalisation C4 de plantuml.

Bibliographie partielle

  • Site Reliability Engineering - Google

  • Living documentation - Cyril Martraire

  • Clean Code - Robert Martin

  • Performance des architectures IT - 2e ed. - Pascal Grojean

  • Design Patterns: Elements of Reusable Object-Oriented Software de Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides (GOF)

  • Le projet d’Urbanisation du SI - Christophe Longépé

  • Sécurité de la dématérialisation - Dimitri Mouton

About

Modèle de Dossier d'Architecture

License:Other


Languages

Language:Shell 100.0%