Blog

L’importance des principes d’architecture

in 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.

Smart Gecko - Architecture - Building avec formes abstraites

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

  1. 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.

  1. Respect du cadre réglementaire

Respect de toutes les lois, des standards et des réglementations.

  1. Continuité des activités

L’entreprise sera résiliente face aux menaces internes et externes.Voir ISO 22301:2019 Security and resilience

  1. Alignement sur l’activité

Chaque projet informatique doit être aligné sur les objectifs et la stratégie de l’entreprise.

  1. Solutions d’usage commun

Les solutions transversales sont préférables aux applications, systèmes et outils en silo qui font double emplois.

  1. 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.

  1. Qualité

Une norme minimale de qualité sera maintenue malgré les problèmes de délai de commercialisation.

  1. Penser globalement, agir localement

Les solutions tiendront compte de l’impact des décisions architecturales sur l’entreprise.

  1. Ressources partagées

Les solutions chercheront à  maximiser le partage des ressources telles que le réseau, l’informatique, le stockage et les données.

  1. 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

  1. Ouverture de l’information

L’information doit être ouverte et disponible pour soutenir la productivité et l’innovation.

  1. 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.

  1. Pertinence de l’information

Les données doivent être pertinentes pour l’entreprise et avoir une valeur.

  1. Actualité des données

Les données doivent être actuelles.

  1. Protection des données

Les données sont un actif qui doit être protégé.

  1. 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).

  1. 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.

  1. Interprétation des données

Les définitions et les vocabulaires des données seront cohérents dans l’ensemble de l’organisation.

  1. Identificateur unique global

Les objets de données critiques auront un identifiant unique au niveau global (UUID).

  1. Données de référence

Toutes les données auront une « copie d’or », une source unique qui sera répliquée.

  1. Sauvegarde des données

Toutes les données seront sauvegardées.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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

  1. 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)

  1. Séparation des préoccupations

Il sera possible de modifier un composant avec un impact minimal sur les autres composants.

  1. Services faiblement couplés

Les services seront faiblement couplés (producteurs faiblement couplés aux consommateurs).

  1. Services auto-descriptifs

Les services seront auto-descriptifs: syntaxe et documentation de la sémantique.

  1. Services réutilisables

Les services seront conçus pour maximiser la réutilisation à  l’échelle de l’entreprise.

  1. Services découvrables

Les services pourront être découverts.

  1. Abstraction des services

Les services cacheront les détails de leur mise en œuvre sous-jacente.

  1. Aptitude à  l’état des services

Les services doivent éviter d’enregistrer un état si possible.

  1. Autonomie des services

Les services doivent avoir un contrôle important sur les fonctionnalités qu’ils fournissent.

  1. Sécurité basée sur des politiques

Les services auront une politique de sécurité définie.

Utilisabilité

  1. 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

  1. Facilité d’utilisation

Les interfaces utilisateurs seront aussi simples et intuitives que possible.

  1. Facilité d’apprentissage

Une application doit être facile à  apprendre.

  1. Transparence technologique

Les implémentations techniques sous-jacentes doivent être cachées aux utilisateurs.

  1. 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.

  1. Navigation cohérente

Le contenu et la navigation seront cohérents.

  1. Interface prévisible

Les actions de l’utilisateur doivent avoir des résultats prévisibles.

Processus

  1. Zéro contact

Les tâches manuelles doivent être gérées comme un flux de travail.

  1. 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.

  1. Productivité

Les processus viseront à  maximiser la productivité.

  1. 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.

  1. Amélioration continue

Les processus seront conçus dès le départ pour favoriser l’amélioration continue.

  1. Réalisme des processus

Les processus seront le reflet du monde réel.

  1. 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

  1. Objectifs de l’entreprise

Les unités opérationnelles publieront les objectifs et la stratégie de l’entreprise.

  1. Objectifs SMART

Les objectifs d’entreprise seront spécifiques, mesurables, atteignables, pertinents et opportuns.

  1. Orientation client

Les décisions architecturales chercheront à  maximiser la valeur pour le client.

  1. Opérations simplifiées

Les décisions architecturales viseront à  simplifier les opérations.

  1. Réponse aux clients

Les demandes des clients seront traitées en temps utile.

  1. 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.

  1. Temps de mise sur le marché

Les unités commerciales répondront aux opportunités en temps voulu.

  1. Menaces

Les unités opérationnelles répondront aux menaces externes en temps utile.

  1. Responsabilisation des employés

Les employés seront responsabilisés pour faire leur travail.

  1. Exigences rigoureuses

Les entreprises fourniront des exigences fonctionnelles et non fonctionnelles rigoureuses pour les projets.

  1. La qualité d’abord

Les erreurs honnêtes ne sont pas punies et s’arrêter pour corriger les problèmes est encouragé.

Applications

  1. Mobilité

Les applications doivent être construites de manière à  maximiser les emplacements à  partir desquels elles peuvent être utilisées.

  1. Extensibilité

Les applications fourniront des crochets qui permettront d’étendre les fonctionnalités à  l’avenir.

  1. Flexibilité

Les applications seront conçues de manière à  minimiser les coûts des changements futurs.

  1. Surveillance et mesure

Les applications seront conçues pour prendre en charge la surveillance et la mesure.

  1. Plate-forme indépendante, normes ouvertes

Les applications qui supportent les standards ouverts sont préférées.

  1. Interopérabilité

Les applications seront interopérables.

  1. SLA des applications

Toutes les applications publieront un SLA qui a été convenu avec l’entreprise.

  1. Haute disponibilité

Toutes les applications publieront des objectifs de disponibilité qui ont été convenus avec l’entreprise.

  1. Documentation de l’application

Les applications doivent avoir une documentation sur l’architecture, la conception et le runbook.

  1. Gestion de la capacité

La capacité informatique répondra aux besoins actuels et futurs de l’entreprise.

  1. Réutilisation des composants

Dans la mesure du possible, les applications réutiliseront les composants existants.

  1. Conformité aux normes

Les applications seront conformes aux normes, conventions, accords, processus, pratiques et méthodes établis.

  1. Evolutivité

Les applications seront conçues pour gérer des charges plus importantes lorsque davantage de ressources leur seront allouées.

  1. Robustesse face aux erreurs

Les applications traiteront les erreurs de manière contrôlée et continueront à  fonctionner normalement (dégradation gracieuse).

  1. 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.

  1. 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).

  1. Collaboration

Les applications devraient envisager d’intégrer des outils pour faciliter les processus de collaboration.

Technologie (généralités)

  1. 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é

  1. Séparation des fonctions

Le constructeur et l’opérateur d’une application seront des rôles indépendants.

  1. 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.

  1. 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.

  1. Confidentialité

La confidentialité des données sensibles sera maintenue.

  1. Transparence de la sécurité

La sécurité soutient les objectifs commerciaux et doit être aussi transparente que possible.

  1. Défense en profondeur

La sécurité sera stratifiée.

  1. Permissions minimales

Les privilèges de sécurité seront juste suffisants pour effectuer les activités requises.

  1. Contrôles équilibrés

Les contrôles de sécurité seront équilibrés et proportionnels au risque.

  1. Sécurité rentable

Les coûts de la sécurité doivent être équilibrés par rapport aux avantages de la sécurité.

  1. 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.

  1. Appropriation de la sécurité

Les obligations et les responsabilités en matière de sécurité doivent être explicitement définies.

  1. Réévaluation de la sécurité

La sécurité n’est pas une activité ponctuelle – elle doit être réévaluée périodiquement.

  1. 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).

  1. Politique cohérente

Les politiques de sécurité seront appliquées de manière cohérente dans toute l’entreprise.

  1. 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.

  1. Gestion des utilisateurs

Tous les systèmes doivent avoir des processus définis pour la demande, l’émission et la fermeture des comptes utilisateurs.

  1. Direction de la menace

Les menaces internes et externes seront prises en compte dans les architectures de sécurité.

  1. Trace d’audit

Toutes les actions significatives des utilisateurs et du système doivent laisser une trace d’audit.

Infrastructure

  1. Extensible horizontalement

L’infrastructure doit pouvoir être mise à  l’échelle en ajoutant des dispositifs.

  1. Partitionnement logique

Il doit être possible de partitionner logiquement la capacité de l’infrastructure.

  1. 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]

    Smart Gecko AG

    +41 22 570 09 31 (fr)
    +41 55 505 27 60 (de/en)

    training@smartgecko.academy