L’importance des principes d’architecture
Les principes d’architecture informatique sont des règles et des lignes directrices qui guident la conception et la construction d’un système informatique. Elles permettent d’établir un standard qualitatif pour toute l’organisation.
Les principes d’architecture informatique aident à créer des systèmes efficaces et fiables. Ils tiennent compte des besoins et des exigences des utilisateurs, ainsi que des contraintes techniques et budgétaires. En utilisant ces principes, les architectes d’entreprise peuvent concevoir des systèmes qui répondent aux besoins des utilisateurs tout en étant performants et fiables. Par exemple, en utilisant le principe de modularité, les architectes peuvent créer des systèmes composés de modules indépendants et réutilisables qui peuvent être facilement modifiés ou remplacés sans affecter le reste du système.
Couvrir les aspects non-fonctionnelles à travers les principes d’architecture
Les principes d’architecture informatique permettent de garantir la sécurité des systèmes informatiques. Ils prennent en compte les menaces potentielles et les normes de sécurité pour s’assurer que les systèmes seront protégés contre les attaques et les brèches de sécurité. Cela est particulièrement important dans un monde où les cyber-attaques sont de plus en plus fréquentes et sophistiquées. En utilisant le principe d’intégrité, par exemple, les architectes peuvent s’assurer que les données stockées dans le système ne sont pas modifiées de manière non autorisée et que seules les personnes autorisées peuvent accéder à ces données.
Les principes d’architecture informatique jouent également un rôle important en ce qui concerne l’évolutivité et la flexibilité des systèmes. Ils peuvent aider à concevoir des systèmes qui sont facilement modifiables et adaptables aux changements futurs, ce qui peut être crucial pour les entreprises qui évoluent rapidement. En utilisant ces principes, les architectes informatiques peuvent créer des systèmes qui peuvent facilement s’adapter aux changements de la demande, des technologies ou des environnements d’affaires. Par exemple, en utilisant le principe de tolérance aux pannes, les architectes peuvent concevoir des systèmes qui peuvent continuer à fonctionner correctement même en cas de défaillance d’un composant, ce qui peut être crucial pour les systèmes critiques tels que les systèmes de santé ou les systèmes bancaires.
Etablir les principes d’architecture tôt et pour toute l’organisation
En somme, les principes d’architecture informatique sont cruciaux pour garantir que les systèmes informatiques soient efficaces, fiables, sécurisés et évolutifs. Ils sont un élément essentiel de la conception et de la construction de tout type de système informatique.
Il existe de nombreux principes d’architecture informatique, parmi lesquels on peut citer l’abstraction, l’encapsulation, la modularité, la hiérarchie, l’homogénéité, l’intégrité, la sécurité, la tolérance d’architecturée aux pannes et l’évolutivité.
Le standard TOGAF 9.2 de l’Open Group, dans le chapitre 20 « Architecture Principles », présente la construction des principes d’architecture et donne quelques exemples par chapitre.
Une autre axe de réflexion peut être le standard ISO 9126 (remplacé par ISO 250xx, mais désormais accessible librement sur Wikipedia). Il décrit les aspects fonctionnels et non-fonctionnels du logiciel. L’approche consiste en parcourant chaque élément de ISO 9126 et identifier le potentiel et la nécessité de le standardiser à travers des principes d’architecture.
Quelques exemples de principes d’architecture
Voici une liste de principes d’architecture exemples comme premier point de départ:
Généralités
- Simplification de la technologie mis en œuvre
La diversité technique sera contrôlée afin de réduire la complexité. Un besoin doit être couvert avec une solution technique.
- Respect du cadre réglementaire
Respect de toutes les lois, des standards et des réglementations.
- Continuité des activités
L’entreprise sera résiliente face aux menaces internes et externes.Voir ISO 22301:2019 Security and resilience
- Alignement sur l’activité
Chaque projet informatique doit être aligné sur les objectifs et la stratégie de l’entreprise.
- Solutions d’usage commun
Les solutions transversales sont préférables aux applications, systèmes et outils en silo qui font double emplois.
- Solutions simples
L’informatique sera aussi simple que possible. Lorsque la complexité est requise, elle sera encapsulée et cachée derrière une interface aussi simple que possible.
- Qualité
Une norme minimale de qualité sera maintenue malgré les problèmes de délai de commercialisation.
- Penser globalement, agir localement
Les solutions tiendront compte de l’impact des décisions architecturales sur l’entreprise.
- Ressources partagées
Les solutions chercheront à maximiser le partage des ressources telles que le réseau, l’informatique, le stockage et les données.
- Protection de la propriété intellectuelle
Les brevets, droits d’auteur, secrets commerciaux et autres droits de propriété intellectuelle seront préservés et protégés.
Données
- Ouverture de l’information
L’information doit être ouverte et disponible pour soutenir la productivité et l’innovation.
- Actif partagé
Les données sont un bien commun de l’entreprise et ne peuvent être la propriété d’un service, d’une équipe ou d’un individu.
- Pertinence de l’information
Les données doivent être pertinentes pour l’entreprise et avoir une valeur.
- Actualité des données
Les données doivent être actuelles.
- Protection des données
Les données sont un actif qui doit être protégé.
- Confidentialité des données
Les données confidentielles doivent être protégées. Le stockage des données personnelles sensibles doit être évité autant que possible (pas de stockage potentiel, analytique).
- Intendance des données
Les éléments de données doivent avoir un administrateur désigné qui est responsable de la qualité des données.
- Interprétation des données
Les définitions et les vocabulaires des données seront cohérents dans l’ensemble de l’organisation.
- Identificateur unique global
Les objets de données critiques auront un identifiant unique au niveau global (UUID).
- Données de référence
Toutes les données auront une « copie d’or », une source unique qui sera répliquée.
- Sauvegarde des données
Toutes les données seront sauvegardées.
- Validation des données
Les données seront validées au moment de la collecte. L’encodage (p.ex. HTML) se fera à la restitution de la donnée.
- Corrections des données
Les corrections des données se feront dans le système le plus en amont et en cascade vers le bas. Les corrections de données se feront sous contrôle du propriétaire organisationnel des données. Il faut rendre les propriétaires de données capable de corriger les données par leur propre moyens, sans devoir faire recours au service informatique.
- Politique de conservation des données
Les référentiels de données de base maintiendront une politique de conservation des données conforme aux exigences de l’entreprise et aux exigences réglementaires.
- Qualité des données
Des objectifs de qualité des données seront publiés et vérifiées pour tous les référentiels de données de référence.
- Données découplées
Les données doivent être maintenues dans une couche de données séparée, découplée des applications.
- Réutilisation des données
Les utilisateurs ne seront jamais sollicités deux fois pour les mêmes données.
Intégration des données
- Intégration en temps réel
L’intégration en temps réel est préférable à l’intégration par lots. Un mode asynchrone très proche du temps réel est préférable à un traitement par lot (batch) décalé dans le temps.
Architecture orientée services (SOA)
- Séparation des préoccupations
Il sera possible de modifier un composant avec un impact minimal sur les autres composants.
- Services faiblement couplés
Les services seront faiblement couplés (producteurs faiblement couplés aux consommateurs).
- Services auto-descriptifs
Les services seront auto-descriptifs: syntaxe et documentation de la sémantique.
- Services réutilisables
Les services seront conçus pour maximiser la réutilisation à l’échelle de l’entreprise.
- Services découvrables
Les services pourront être découverts.
- Abstraction des services
Les services cacheront les détails de leur mise en œuvre sous-jacente.
- Aptitude à l’état des services
Les services doivent éviter d’enregistrer un état si possible.
- Autonomie des services
Les services doivent avoir un contrôle important sur les fonctionnalités qu’ils fournissent.
- Sécurité basée sur des politiques
Les services auront une politique de sécurité définie.
Utilisabilité
- Utilisation équitable
Les interfaces utilisateurs seront conçues pour maximiser l’accessibilité (à un public aussi large que possible). Voir aussi: Norme Européenne Accessibility requirements for ICT products and services EN 301 549 V3.2.1 (PDF, 2,17 MB) et les Web Content Accessibility Guidelines WCAG
- Facilité d’utilisation
Les interfaces utilisateurs seront aussi simples et intuitives que possible.
- Facilité d’apprentissage
Une application doit être facile à apprendre.
- Transparence technologique
Les implémentations techniques sous-jacentes doivent être cachées aux utilisateurs.
- Sécurité intégrée
Les interfaces utilisateurs fourniront des fonctions de sécurité intégrée pour protéger les utilisateurs des conséquences involontaires de leurs actions.
- Navigation cohérente
Le contenu et la navigation seront cohérents.
- Interface prévisible
Les actions de l’utilisateur doivent avoir des résultats prévisibles.
Processus
- Zéro contact
Les tâches manuelles doivent être gérées comme un flux de travail.
- Traitement de bout en bout
Les processus de niveau entreprise seront automatisés de bout en bout, y compris les intégrations avec les clients et les partenaires.
- Productivité
Les processus viseront à maximiser la productivité.
- Réinvention des processus
Lorsqu’un nouveau système est mis en œuvre, les processus touchés seront examinés en vue de leur simplification.
- Amélioration continue
Les processus seront conçus dès le départ pour favoriser l’amélioration continue.
- Réalisme des processus
Les processus seront le reflet du monde réel.
- Identification des problèmes
Les processus doivent être conçus de manière à faire remonter les problèmes à la surface dès qu’ils se produisent.
Entreprise
- Objectifs de l’entreprise
Les unités opérationnelles publieront les objectifs et la stratégie de l’entreprise.
- Objectifs SMART
Les objectifs d’entreprise seront spécifiques, mesurables, atteignables, pertinents et opportuns.
- Orientation client
Les décisions architecturales chercheront à maximiser la valeur pour le client.
- Opérations simplifiées
Les décisions architecturales viseront à simplifier les opérations.
- Réponse aux clients
Les demandes des clients seront traitées en temps utile.
- Orientation à long terme
Les décisions seront basées sur une stratégie à long terme – même au détriment de la rentabilité à court terme.
- Temps de mise sur le marché
Les unités commerciales répondront aux opportunités en temps voulu.
- Menaces
Les unités opérationnelles répondront aux menaces externes en temps utile.
- Responsabilisation des employés
Les employés seront responsabilisés pour faire leur travail.
- Exigences rigoureuses
Les entreprises fourniront des exigences fonctionnelles et non fonctionnelles rigoureuses pour les projets.
- La qualité d’abord
Les erreurs honnêtes ne sont pas punies et s’arrêter pour corriger les problèmes est encouragé.
Applications
- Mobilité
Les applications doivent être construites de manière à maximiser les emplacements à partir desquels elles peuvent être utilisées.
- Extensibilité
Les applications fourniront des crochets qui permettront d’étendre les fonctionnalités à l’avenir.
- Flexibilité
Les applications seront conçues de manière à minimiser les coûts des changements futurs.
- Surveillance et mesure
Les applications seront conçues pour prendre en charge la surveillance et la mesure.
- Plate-forme indépendante, normes ouvertes
Les applications qui supportent les standards ouverts sont préférées.
- Interopérabilité
Les applications seront interopérables.
- SLA des applications
Toutes les applications publieront un SLA qui a été convenu avec l’entreprise.
- Haute disponibilité
Toutes les applications publieront des objectifs de disponibilité qui ont été convenus avec l’entreprise.
- Documentation de l’application
Les applications doivent avoir une documentation sur l’architecture, la conception et le runbook.
- Gestion de la capacité
La capacité informatique répondra aux besoins actuels et futurs de l’entreprise.
- Réutilisation des composants
Dans la mesure du possible, les applications réutiliseront les composants existants.
- Conformité aux normes
Les applications seront conformes aux normes, conventions, accords, processus, pratiques et méthodes établis.
- Evolutivité
Les applications seront conçues pour gérer des charges plus importantes lorsque davantage de ressources leur seront allouées.
- Robustesse face aux erreurs
Les applications traiteront les erreurs de manière contrôlée et continueront à fonctionner normalement (dégradation gracieuse).
- Modernisation
Les applications ont une durée de vie limitée – leur fin de vie doit être anticipée et des plans de remplacement élaborés.
- Ensemble minimal de fonctionnalités
Les fonctionnalités ajoutent de la complexité et doivent être réduites au minimum (éviter les cloches et les sifflets et le traitement systématique des exceptions improbables).
- Collaboration
Les applications devraient envisager d’intégrer des outils pour faciliter les processus de collaboration.
Technologie (généralités)
- Technologie de pointe
Les technologies expérimentales ou précoces ne seront pas utilisées, sauf si elles sont essentielles à l’avantage concurrentiel.
Sécurité
- Séparation des fonctions
Le constructeur et l’opérateur d’une application seront des rôles indépendants.
- La sécurité dès la conception
La sécurité est intégrée à l’architecture de l’entreprise, des applications, des données et des technologies.
- La sécurité est une discipline de gestion
La sécurité est plus qu’un problème technique. La sécurité doit être gérée à tous les niveaux de l’entreprise.
- Confidentialité
La confidentialité des données sensibles sera maintenue.
- Transparence de la sécurité
La sécurité soutient les objectifs commerciaux et doit être aussi transparente que possible.
- Défense en profondeur
La sécurité sera stratifiée.
- Permissions minimales
Les privilèges de sécurité seront juste suffisants pour effectuer les activités requises.
- Contrôles équilibrés
Les contrôles de sécurité seront équilibrés et proportionnels au risque.
- Sécurité rentable
Les coûts de la sécurité doivent être équilibrés par rapport aux avantages de la sécurité.
- Responsabilités externes en matière de sécurité
L’organisation a des responsabilités en matière de sécurité envers ses clients, ses partenaires et les autorités de réglementation.
- Appropriation de la sécurité
Les obligations et les responsabilités en matière de sécurité doivent être explicitement définies.
- Réévaluation de la sécurité
La sécurité n’est pas une activité ponctuelle – elle doit être réévaluée périodiquement.
- La sécurité de l’entreprise
La sécurité doit être considérée au niveau de l’entreprise (et pas seulement au niveau du système ou du département).
- Politique cohérente
Les politiques de sécurité seront appliquées de manière cohérente dans toute l’entreprise.
- Exigences de sécurité
Les exigences du système doivent spécifier les caractéristiques de sécurité, les contrôles et les pratiques opérationnelles.
- Gestion des utilisateurs
Tous les systèmes doivent avoir des processus définis pour la demande, l’émission et la fermeture des comptes utilisateurs.
- Direction de la menace
Les menaces internes et externes seront prises en compte dans les architectures de sécurité.
- Trace d’audit
Toutes les actions significatives des utilisateurs et du système doivent laisser une trace d’audit.
Infrastructure
- Extensible horizontalement
L’infrastructure doit pouvoir être mise à l’échelle en ajoutant des dispositifs.
- Partitionnement logique
Il doit être possible de partitionner logiquement la capacité de l’infrastructure.
- Sécurité à l’échelle de l’entreprise
L’infrastructure doit permettre la sécurité à l’échelle de l’entreprise.
Créer ses propres principes d’architecture
Les principes ci-dessus ne sont que des échantillons destinés à inspirer. Vos principes doivent être fondés sur la nature de votre activité et la maturité de votre organisation.
[Article inspiré et traduit de https://arch.simplicable.com/ Image: Photo by Anders Jildén on Unsplash]