L’architecture des systèmes d’information est au cœur de l’entreprise, sa conception comme sa supervision tout au long de son cycle de vie sont fondamentales pour des impacts de positifs et à long terme, rester agile et s’adapter aux évolutions stratégiques, fonctionnelles, techniques avec harmonie et sécurité. Un bon choix d’architecture adaptée engendra de la valeur à l’entreprise.
Comprendre les clés principales de l’architecture comme :
- Les systèmes d’information
- Les composantes fonctionnelles, applicatives, techniques et des données
- Les types d’architectures
Comprendre comment :
- Les composantes des systèmes d’information communiquent, interagissent
- Les systèmes d’information s’organisent autour des technologies qui interagissent pour soutenir vos activités et permettent de s’évoluer dans le temps
- Les impacts d’une architecture sur l’organisation stratégie, les objectifs fonctionnelles de l’entreprise
- Des résultats significatifs sur les performances, la réduction des coûts, la communication améliorée au sein de votre entreprise entre les différentes sphères, amélioration de l’efficacité, satisfaction des utilisateurs
- Rester toujours flexible et compétitif sur le marché en constante évolution
- Identifier les dysfonctionnements, prendre des décisions éclairées sur des axes d’amélioration sur les développements et solutions technologiques
- Assurer une sécurité globale dans l’entreprise
Qu’est-ce que l’architecture IT ?
Une architecture IT n’est pas représentée que par des technologies, elle s’organise autour d’autres sphères fonctionnelles, applicatives, données, techniques.
Les systèmes d’informations sont de plus en plus complexes et hétérogènes, il est fondamental de les connaître et les maîtriser afin de répondre aux besoins fonctionnelles, stratégiques du moment et dans le futur rester toujours aligné au marché de plus en plus compétitif.
Définition et rôle
L’architecture IT décrit toutes les ressources nécessaires pour satisfaire aux besoins opérationnels et stratégiques d’une entreprise.
Elle cartographie la vision globale des systèmes d’information de la conception, les traitements, stockages, protections à l’échanges des données.
Les systèmes d’information sont pilotés par un ensemble d’acteurs : humain, procédures, données, logiciels, matériels afin de transmettre des informations qui ont été collectées, stockées, traitées.
Les acteurs techniques peuvent inclure des équipements matériels, des outils de gestion ou d’automatisation, des applications, des composants logiciels, ainsi que des solutions de virtualisation.
Une architecture IT maîtrisée dans l’entreprise permet :
- De connaître, maîtriser les informations et les données modélisées, comment les informations se propagent
- D’être adaptée aux besoins de l’entreprise par une architecture type qui sera structurer, harmoniser et faire évoluer les systèmes d’information en un ensemble cohérent et agile
Pourquoi est-elle essentielle pour les entreprises ?
Une architecte IT harmonisant toutes les ressources intégrées permet d’assurer ses caractéristiques : modularité, automatisation, scalabilité, interopérabilité, performance, sécurité, fiabilité, accessibilité et résilience.
Une architecte IT adaptée assure :
- De rester compétitif, évolutif dans un monde en constante évolution et être toujours à la pointe sur des marchés de plus en plus compétitifs.
- D’intégrer une transformation numérique au sein de l’organisation, pour les clients, optimisation des opérations, apporter des innovations.
- D’être capable de comprendre et d’exploiter les données pour un impact positif sur les activités.
- De faciliter et d’améliorer les communications :
- Entre les départements, métiers et IT
- Entre les systèmes d’information dans l’écosystème ou externes
- Vers des systèmes hétérogènes
- Vers des systèmes d’informations externes
- Avec l’interopérabilité, les besoins métier vont au-delà des systèmes d’informations internes
- Aux utilisateurs de trouver des informations spécifiques en utilisant des requêtes de recherche
- D’améliorer les processus métier et les échanges avec l’extérieur.
- D’améliorer la continuité du service : superviser les flux en cas d’incidents rester réactif et analyser en connaissance des ressources de l’architecture.
- D’apporter la confiance aux utilisateurs finaux.
- De s’ouvrir et rester ouvert sur le monde externe de l’entreprise avec une adaptation d’interopérabilité.
- D’être plus productifs, gagner du temps avec automatisation des tâches.
- De maîtriser l’existant afin de contrôler les impacts lors de modifications ou ajout d’interface plutôt que d’ajouter des couches par manque de connaissance.
- D’éviter les risques de redondance des données avec une centralisation de données, protéger l’intégrité et la confidentialité des données et les accès.
- Une totale sécurité en interne comme des menaces extérieures, anticiper pour les identifier et empêcher les fraudes.
- D’éviter les applications en îlot qui sont isolées et sans communication ouverture vers d’autres applications systèmes.
- De faciliter le remplacement et décommissionnement d’applications pour rester agile.
- D’éviter les redondances, conservation de systèmes obsolètes non remplaçables avec l’automatisation et des systèmes évolutifs et ouverts.
- De prendre des décisions optimales et éclairées concernant le développement et le déploiement de solutions technologiques.
- D’avoir accès à des tableaux de bord et outils d’analyse en temps réel pour réagir à des situations inattendues et réagir pour rester aligner aux objectifs.
- De surveiller les dysfonctionnements dans les systèmes d’information et définir les étapes à suivre pour les rétablir et optimiser leur performance.
- De réduire les coûts de :
- L’infrastructure
- L’amélioration dans la gestion ses licences répertoriées
- Maintenance avec des évolutions plus fluide maitrisées grâce à l’automatisation des opérations redondantes
- D’exploitation avec une architecture automatisée, facilement maintenable, durable mais aussi remplaçable en cas d’obsolescence
- De réduire ou supprimer des dépenses correspondantes à de mauvais choix technologiques ou non aligné avec la stratégie
Les différents domaines de l’architecture IT
Fonctionnelle : côté métiers des processus, des objectifs
Applicative : les applications répertoriées et leurs interactions
Données : gestion, stockage, flux et gouvernance des données datawarehouse, bases de données
Technique : toutes les composantes d’infrastructure (serveurs, réseaux, sécurité, cloud)
Systèmes : les infrastructures matérielles et logicielles
Architecture logicielle
L’architecture logicielle est essentielle pour des succès au quotidien, au futur pour de nouveaux besoins et adaptations et des impacts positifs sur les performances, la sécurité, la maintenabilité et les évolutions. Elle décrit comment s’organisent, communiquent et interagissent ses composants.
L’architecture logicielle se présente sur 3 niveaux interconnectés qui interagissent entre eux :
- Présentation : affichage des données avec des navigateurs web, applications mobiles ou interfaces utilisateur
- Logique métier : gestion par des services ou des contrôleurs et traitement des données en application de règles métier
- Données : Gestion, stockage, sauvegarde des données dans des bases de données, systèmes de fichiers ou solution de persistance
Le choix d’un modèle s’accordera aux stratégies entreprise métiers spécifique et des ressources disponibles de l’entreprise comme :
- Les infrastructures, les équipes de développement
- Évolutivité et maintenance
- Budget et délais
- Haute performance et de scalabilité
- Complexité, taille du projet
Plusieurs modèles d’architecture logicielle existent avec des avantages et inconvénients.
Architecture client-serveur : un client lance via un appareil une requête à un serveur avec des données ou des services. Deux entités avec des rôles séparés : fournisseur pour le serveur et consommateur pour le client.
Cette architecture est adaptée à des applications bureau connectées et un type particulier d’architecture centralisée.
Les avantages de ce modèle :
- Le serveur peut offrir plusieurs services à plusieurs clients
- Le serveur assure la gestion des données comme la centralisation et la protection de l’intégrité des données
- Un partage des données par plusieurs clients
- La simplification de la sécurité, assurée par le serveur
- Garantir des évolutions et une maintenance indépendantes côté client et côté serveur
- Adaptation intégrée dans des systèmes distribués avec plusieurs serveurs
Les inconvénients de ce modèle :
- Forte dépendance des clients au serveur en cas de défaillance côté serveur
- Le temps de réponse affecté dans le cas d’un nombre de demandes trop importante
- Les coûts de l’infrastructure pour des besoins d’un serveur puissant et en haute disponibilité
- La protection des communications qui arrivent sur le serveur
Architecture centralisée : un serveur principal puissant qui gère des grands volumes de données et les traitements pour des applications critiques pour des secteurs où la fiabilité, la sécurité et la performance sont essentielles comme pour les banques, les administrations. Cette architecture peut être implémentée ou non en architecture client-serveur.
Les avantages de ce modèle :
- Une seule ressource simplicité administration, maintenance, mises à jour, planification des sauvegardes
- La gestion des données centralisées facilité et sécurisée
- La réduction des coûts d’infrastructure
- Un nombre de requêtes traitées en parallèle
Les inconvénients de ce modèle :
- Les temps de réponses allongés
- La surcharge sur le serveur avec trop de requêtes traitées en même temps
- Moins flexible qu’une architecture client-serveur
Architecture Monolithique : une application qui regroupe toutes les fonctionnalités en un seul bloc. Cette architecture est adaptée à des applications de petites tailles pour des fonctionnalités simples, limitées.
Les avantages de ce modèle :
- Célérité de mise en place, des phases de tests et des déploiements
- De petites équipes de développement
- La réduction des coûts d’infrastructure
- Simplification des déploiements : une seule unité
Les inconvénients de ce modèle :
- Complexe pour la maintenance et les évolutions qui concernent la seule unité
- Assurer la résilience
Architecture Microservices : applications composées d’une série de services indépendants, chacun correspondant à une fonctionnalité. Cette architecture est structurée autour de requêtes de clients web, mobiles qui ciblent une API Gateway responsable de rediriger la demande vers le microservice cible. Cette architecture est adaptée à de grandes entreprises et l’architecture est composée d’applications complexes nécessitant une évolutivité rapide, avec des exigences de déploiements fréquents.
Les avantages de ce modèle :
- Chaque service autonome peut être géré, évolué et déployé avec garantie de la continuité de services des autres services
- Chaque service a sa propre base de données pour isoler les données et de traiter d’autres demandes en parallèle
- Scalabilité de nouveaux services peuvent être ajoutés sans impacter la continuité des autres services
- Assurer une meilleure résilience et faciliter l’analyse avec la cible du service d’une fonctionnalité
- Intégrer différentes technologies par service
Les inconvénients de ce modèle :
- Gestion peut devenir complexes selon le nombre de services par exemple garantir une cohérence des données distribuées et partagées par les services
- La communication entre les services
- La traçabilité, la gestion des erreurs
Architecture orientée sur des services (SOA) : des services qui implémentent des interfaces communiquant via un service central, l’Enterprise Service Bus (ESB), chargé de gérer les échanges. Cette architecture convient particulièrement aux grandes entreprises ayant des besoins d’intégration de systèmes hétérogènes et favorisant une forte réutilisation des composants logiciels.
Les avantages de ce modèle :
- Les services peuvent être réutilisés
- Les fonctions exposées par les services sont faciles à intégrer entre les applications en tant que composants
Les inconvénients de ce modèle :
- Les connaissances et gestion des Enterprise Service Bus
- Les coûts de la mise en place de toute l’infrastructure
Architecture en Couches (MVC Model-View-Controller) : application structurée en couches distinctes la présentation, la logique métier et l’accès aux données. Chaque couche communique avec sa couche voisine.
Cette architecture est adaptée pour des entreprises avec une structure claire et organisée pour laquelle la séparation en couche est fondamentale sur le long terme.
Les avantages de ce modèle :
- Chaque couche est responsable d’un aspect spécifique de l’application
- Les responsabilités sont séparées pour améliorer la maintenabilité et la réutilisabilité
- Chaque couche est développée, évoluée, testée et maintenue séparément avec modularité sans impacter les autres couches
- Modularité par les vues responsables de l’affichage des données utilisées par différentes couches
- Chaque couche peut être sur des serveurs différents
Les inconvénients de ce modèle :
- Surcharge des communications entre les couches
- Les temps de réponses surtout si les couches sont sur des serveurs distincts
- Les dépendances entre les couches rendent moins flexibles les évolutions dans le temps
- La mise en place des tests sur une couche avec sa forte dépendance aux autres
Architecture orientée événements : composants de l’application communiquent soit en déclenchant ou réagissant à des événements. Modèle de souscription à des événements des producteurs.
Cette architecture se structure avec 3 acteurs :
- Un consommateur (site web de ventes) qui déclenche des événements (exemple la création d’une commande)
- Un bus d’événements responsable de centraliser les événements qui redirige l’événement vers les services
- Des producteurs d’événements en tant que services cibles qui réagissent quand ils sont concernés (service de gestion des stocks, service de paiements)
Cette architecture est adaptée à des entreprises avec de forts besoins de :
- Réactivité réponses rapides chaque service agit dès qu’un événement est détecté
- Réagir rapidement à des changements
- Gestion de flux complexes et asynchrones
Les avantages de ce modèle :
- Réactivité avec le mode asynchrone, les composants réagissent aux événements sans attendre de réponse immédiate
- Le traitement des événements en parallèle, idéal dans le cas des fortes demandes
- De nouvelles souscriptions (nouvelles extensions, de nouveaux consommateurs) aux producteurs des événements sans devoir les modifier
- Adaptation aux changements de charge de travail
- Ajout d’un nouveau besoin service sans intervention sur les autres services
- Assurer la résilience, un service peut être en panne ou en maintenance, les événements seront traités lors de la disponibilité du service
Les inconvénients de ce modèle :
- Des difficultés du débogage dû à la complexité de la gestion des événements et des états
- Des besoins d’outils additionnels pour la gestion des files d’attente de messages
Architecture serverless dans un cloud non public : les développements et déploiements des applications sont à la charge des équipes. Le déclenchement d’un événement fonctionnel (le code déployé) va être exécuté dans un cloud en local ou privé.
L’architecture serverless peut aussi être adaptée avec un cloud public.
Les avantages de ce modèle :
- Aucune dépendance des fournisseurs et réponses des services dans le cloud
- Garder le contrôle total de l’infrastructure dans le cas d’exigences de sécurité, de souveraineté ou de conformité, les politiques de sécurité internes
- Réutiliser l’infrastructure existante
- Pas de frais d’utilisation comme dans le cas de cloud public
- Les développeurs se concentre sur le code des métiers sans s’occuper de la gestion des serveurs
Les inconvénients de ce modèle :
- Complexe il faut reproduire les mécanismes du cloud en local ou sur un cloud privé avec beaucoup de configurations
- Mise en place de l’infrastructure nécessaire : serveurs, conteneurs, orchestrateur d’événements, monitoring, scaling automatique
- Gérer, maitriser, maintenir toute l’infrastructure serverless en place chez un fournisseur cloud public
- Des équipes expertes qui maîtrisent les frameworks open source serverless auto-hébergés et autres de l’infrastructure
- Le coût en maintenance à long terme
Architecture cloud et infrastructure
L’architecture cloud est un modèle Architecture serverless avec cloud public : les développements et déploiements des applications sont à la charge des équipes. Le déclenchement d’un événement fonctionnel (le code déployé) va être exécuté dans un cloud public. Les applications construites seront déployées et exécutées dans une infrastructure gérée par un fournisseur cloud public.
La virtualisation ou le cloud computing permet de stocker des ressources de façon dématérialisée grâce à des clouds.
Les avantages de cette architecture :
- Les développeurs se concentre sur le code des métiers sans s’occuper de la gestion des serveurs
- La réduction des coûts d’infrastructure aucun serveur à gérer
- Les frais liés à l’utilisation qui peuvent se réduire en fonction de la charge de travail
- L’optimisation car aucune configuration et maintenance de serveur en charge du fournisseur cloud
Les inconvénients de cette architecture :
- Forte dépendance aux fournisseurs dans le cloud et aux réponses des services dans le cloud
- Aucun contrôle sur les données hébergées chez un tiers
- Limitation dans le cas les conformités règlementaires et juridiction
- Les coûts si les utilisations des ressources ne sont pas maîtrisées avec des impacts sur les budgets comme les coûts de sortie des données
- Le partage des responsabilités fournisseur et utilisateur
- Pertes de traçabilité et dans les besoins d’audit
Architecture des données et de la sécurité
L’architecture des données se concentre sur la structure, la gestion des bases de données et des flux d’information. Les données sont collectées, stockées, traitées et distribuées dans l’architecture des systèmes d’informations.
L’architecture des données est alignée avec les besoins des métiers, les objectifs stratégiques de l’entreprise avec garantie de qualité des données, d’accessibilité, et sécurité. Une gouvernance spécifie les rôles, responsabilités, les règles et des outils adaptés aux évolutions et à la résilience.
L’architecture de sécurité spécifie la protection des systèmes et des données contre les menaces. La sécurité est globale et à assurer au niveau des données, des applications, des réseaux et des utilisateurs contre les menaces internes et externes.
Elle assure les évolutions, s’adapter aux nouvelles menaces, aux changements technologiques et aux besoins de l’organisation.
Architecture d’entreprise (Enterprise Architecture)
L’architecture d’entreprise est la structure globale qui aligne la sphère IT et la stratégie des métiers. C’est une vision globale des systèmes d’information alignée avec les processus métiers, des applications, des données et des infrastructures techniques de l’organisation.
Le choix de l’architecture est crucial pour garantir :
- Cartographie référentielle pour adapter les évolutions, gérer les projets
- Aligner les objectifs métiers et technologiques
- Les performances
- La capacité à évoluer facilement en fonction des besoins croissants et d’adaptation déploiement rapide aux changements du marché
- La capacité à continuer à fonctionner quel que soit la situation critique
- Améliorer l’efficacité, de réduire les coûts et de faciliter la maintenance et l’évolution des systèmes
- Assurer la conformité aux normes et réglementations
- Offrir une meilleure expérience utilisateur
Les rôles et les métiers autour de l’architecture IT
Les architectes IT jouent un rôle dans l’architecture des systèmes d’information de la conception, l’évolution à la gouvernance avec des rôles, domaines complémentaires.
- Architecte d’entreprise : aligne les systèmes d’information avec la stratégie des métiers
- Architecte fonctionnel : cartographie ou modélise les processus métiers et les interactions dans les systèmes d’information
- Architecte technique : en charge de la conception de l’infrastructure technique
- Architecte cloud : en charge des architectures cloud
- Architecte logiciel : spécifie la structuration des applications
- Architecte sécurité : assure une architecture sécurisée des systèmes d’information et globale à l’architecture
- Architecte data : assure la structure et la gouvernance des données
- Architecte DevOps CI-CD : automatisation des déploiements et de la continuité d’intégration
Architecte IT
L’architecte IT joue un rôle essentiel dans la conception et la gestion de l’architecture globale de l’entreprise et détient une vision stratégique globale des systèmes d’information dans l’architecture, intervient dans la gouvernance et la transformation digitale avec une architecture agile, sécurisée, performantes intégrant des solutions technologiques qui s’aligne aux besoins métiers, les ressources techniques dans une cohérence globale.
L’architecte IT détient des compétences :
- Modéliser les processus métiers, les objectifs de la stratégie et assurer l’alignement avec le système d’information
- Maîtriser des langages de modélisation, cartographie et de cadres méthodologiques
- Concevoir des cartographies ou modélisations en version modèles de différents types fonctionnel, technique des systèmes d’information
- Concevoir avec exigence d’évolution et cohérence des systèmes d’information et des applications interconnectées
- Assurer et préserver une communication explicite avec les métiers, les équipes techniques et les décideurs
- Proposer des architectures et solutions évolutives et pérennes
- Rester à jour avec les dernières technologies et actualités permettant des adaptations aux changements au sein de l’entreprise
- Assurer la mise en place d’une gouvernance avec des règles explicites sur les données, les projets et la sécurité et la conformité aux normes et réglementations
- Assurer de l’interopérabilité des composants des systèmes d’informations modulaires, évolutifs et résilients
- Superviser la transformation digitale avec une collaboration des métiers et équipes IT
- Proposer les technologies et outils adaptés aux besoins
- Conception, maintenance des documentations sur les choix technologiques, ressources de l’architecture, les normes
- Garantir des performances avec des solutions automatisées avec identification des redondances, des dépendances négatives et processus complexes
Cloud, data, sécurité : qui sont les architectes spécialisés en IT ?
L’architecte cloud est le leader de la mise en œuvre et la gestion des architectures informatiques dans des environnements cloud en assurant des exigences de performances, scalabilité et sécurité et alignement avec des besoins métiers et techniques.
Les compétences de l’architecte cloud :
- Connaissances des plateformes, architectures et services pour proposer les meilleures solutions et superviser leur intégration
- Connaissances sur les infrastructures cloud : Infrastructure as Code, la sécurité cloud, conteneurisation et orchestration
- Connaissances techniques des types d’architectures distribuées et microservices
- Intervient dans les domaines Cloud public ou privé, migration vers le Cloud
- DevOps, CI/CD
- Surveillance et observabilité
- Compétences AWS, Azure, GCP, laC
L’architecte data est responsable de la structure (modèles), la gestion (flux, stockage) et la gouvernance des données de l’entreprise (accès, sécurité)
Les compétences de l’architecte data :
- Conception globale de l’architecture data modélisation, cartographie
- Garantir des données de qualité, cohérente
- Rendre accessible les données pour les besoins métiers
- Collecter, analyser et interpréter les données pour identifier des incohérences pour améliorer la prise de décision
- Cartographie ou modélisation des données conceptuelle, logique, physique
- Connaissance des systèmes de gestion de bases de données, Data Lake, ETL Orchestration, Cloud data services
- Assurer la gouvernance des données : conformité et data Catalog de référence
L’architecte sécurité est responsable pour la cybersécurité pour assurer de protéger les données, les applications, les infrastructures et les utilisateurs contre les menaces.
L’architecte sécurité met en œuvre et supervise une stratégie de sécurité à tous les niveaux : réseau, applicatif, données, cloud, endpoints en assurant un alignement avec les objectifs de l’entreprise.
Les compétences de l’architecte sécurité :
- Sécurité des systèmes, réseaux, infrastructures, applicatives, cloud, environnements hybrides
- Respecter les normes et conformité : ISO 27001, NIST, RGPD, PCI-DSS
- Gestion des identités et des accès, la segmentation réseau, le chiffrement
- Cryptographie
- Analyser les menaces : cyberattaques, fuites de données, erreurs humaines
- Estimer les vulnérabilités des ressources de l’architecture
- Contribuer aux mesures de protection
- Surveillance régulièrement avec des tests de simulation
- Savoir réagir aux attaques et incidents et mise à jour des mesures de sécurité en fonction de l’évolution des menaces
- Plan de continuité et de reprise d’activité (PCA/PRA) après sinistre
- Assurer la protection des systèmes d’information en constante évolution, anticiper pour faire face à des menaces toujours plus sophistiquées
- Réactivité maitrisée en cas d’incident de sécurité
- Diffusion des politiques de sécurité documentées
- Superviser les projets de sécurisation
- Réadapter constamment l’architecture face aux constantes évolutions des menaces
- Sensibiliser toute l’entreprise aux impacts humains dans le cas de cybersécurité
- Anticiper les incidents, intégrer la résilience devient un critère d’architecture à part entière.
Compétences et outils clés en IT architecture
Compétences techniques
- Types d’architectures techniques : client-serveur, SOA, microservices, cloud
- Connaissances, maîtriser des technologies et l’infrastructure
- Technologies : bases de données, API, conteneurisation
- Outils et langages de développement
- Concevoir des architectures robustes, évolutives et sécurisées
- Sécurité informatique : pare-feux, IAM, chiffrement, normes
- Environnements cloud
- Réseau et infrastructure : protocoles réseau, virtualisation
Compétences fonctionnelles
- Comprendre les secteurs de l’écosystème et des systèmes d’informations
- Phases de compréhension des besoins métier et processus, les enjeux stratégiques et opérationnels de l’entreprise
- Analyser des besoins métiers et les exposer en exigences fonctionnelles et techniques
- Spécifier les exigences
- Modéliser les processus fonctionnels, flux d’information
- Dialoguer, collaborer, coordonner avec les sphères métier, technique, direction
Compétences méthodologiques
- Outils maîtrisés pour modélisation, cartographie et conception de schémas explicites pour les équipes techniques et métiers
- Capacité à analyser un système dans sa globalité des systèmes d’informations et leurs interactions entre les composants métiers, techniques et organisationnels
- Maîtrise des cadres méthodologiques pour structurer, gouverner et faire évoluer le système d’information
- Méthodologies agiles Scrum, Kanban pour une meilleure organisation des équipes et des roadmaps d’évolution cohérentes
- Assurer des livraisons itératives avec intégration des sprints et d’améliorations continues
- Des compétences techniques pour comprendre et répondre aux besoins en temps réel
- Réunions rétrospectives pour ajuster et optimiser en permanence
- Rétrospectives annuelles pour ce qui est à continuer, à améliorer et les actions à entreprendre et planifier
- Intégrer des outils de rapport et analyse de données pour créer l’histoire de l’entreprise et aider à agir sur les données en prenant les meilleures décisions être capable de comprendre et d’exploiter les données de manière à impacter positivement l’activité et les résultats financiers
La modélisation et la cartographie sont deux approches essentielles en architecture.
La modélisation abstraite sert à conceptualiser, analyser ce qui va être construit en utilisant des abstractions et des méthodologies pour définir les éléments et leurs relations. La modélisation est à privilégier lors de la conception d’un nouveau système. Le but est de structurer les idées et anticiper les interactions entre composants avant de passer à la phase de développement et décider de l’orientation du type d’architecture avant de lancer le développement.
Modélisation permet de décrire différents types de diagrammes pour représenter :
- La modélisation des données
- La modélisation des classes : la structure des objets et leurs relations
- La modélisation logicielle : les modules et leurs dépendances
- La modélisation des séquences : les interactions entre composants dans le temps
- La modélisation architecture en couches
- La conception d’architecture
- L’analyse fonctionnelle pour des diagrammes de flux
- Le développement logiciel
La cartographie descriptive sert à représenter et visualiser ce qui existe déjà en documentant les éléments réels et leurs interactions, parfois sous forme de diagrammes ou schémas. Les interconnexions entre les applications, la vue d’un système, identifier les points faibles, gérer les dépendances et faciliter la gouvernance IT.
La Cartographie pour représenter :
- La cartographie applicative, infrastructure
- La cartographie des processus
- La cartographie des systèmes d’information
- La cartographie des réseaux
- La cartographie contexte global, conteneurs
- La cartographie du code
Outils incontournables des architectes IT
Outils Modélisation, Stratégie, Organisation :
- Diagrammes (Lucidchart, Draw.io, Visio)
- Modélisation, Cartographie (Merise, Axial, IDEF, UML, SAD, Diagrams.net)
- Modélisation C4 (Context, Container, Component, Code)
- Cadre d’architecture d’entreprise structuré pour aligner SI et stratégie (TOGAF)
- Représenter les liens entre stratégie, métier, applications et technologie (ArchiMate)
- Relier les objectifs stratégiques aux indicateurs de performance (Balanced Scorecard)
- Plateforme de gestion des données (Data Management Platform) gérer de gros volumes de données (Collibra)
- DevOps et CI/CD : Jenkins, GitLab CI, GitHub
Outils Cloud et Infrastructure :
- Infrastructure as Code (Terraform)
- Orchestration et conteneurisation (Docker, Kubernetes)
- Conception et surveillance cloud (AWS (Redshift, Glue), Azure (Synapse, Data Factory))
Outils pour intégrer la sécurité :
- La surveillance de la sécurité (Splunk)
- L’analyse de vulnérabilités (Nessus / Qualys)
- L’audit de conformité (OpenSCAP / Lynis)
- Services cloud GCP (BigQuery, Dataflow)
Outils Données :
- Systèmes de gestion de bases de données : SQL Server, Oracle, PostgreSQL, MySQL, MongoDB, Cassandra, Redis (NoSQL)
- Gestion des flux de données ETL / ELT & pipelines de données (Talend)
- Visualisation et le reporting (Power BI, Tableau)
- Gouvernance et catalogage des données (Collibra / Alation)
- Big Data & Data Lake : Hadoop, Spark, Hive, HDFS, Stockage cloud (Amazon S3, Azure Data Lake, Google Cloud Storage)
Outils DevOps & CI/CD pour intégrer :
- Des configurations et déploiements automatisés (Jenkins, Ansible)
- La surveillance et l’observabilité (Prometheus, Grafana, CloudWatch)
Bonnes pratiques pour concevoir une architecture IT performante
- Alignement métier/SI pour garantir que le SI soutient les objectifs de l’entreprise
- Agilité pour permettre des évolutions rapides et maîtrisées
- Interopérabilité pour assurer la communication entre systèmes hétérogènes
- Sécurité pour protéger les actifs numériques contre les menaces
- Maîtrise des coûts pour optimiser les investissements et les ressources
- Gouvernance et pilotage
- Utilisation de API pour une meilleure communication entre systèmes hétérogènes
- Utilisation de EAI ou ESB pour faciliter les échanges de données entre applications
- Utilisation d’une centrale de données éviter le mode spaghetti redondance des données et garantir une unique source de données
- Utilisation de solutions interconnectées plutôt que des applications isolées
- Réduire les tâches redondantes, manuelles
- Intégrer un mécanisme de tests
- Cohérence entre les environnements
- Versioning pour suivre les changements et revenir en arrière en cas de besoin
Aligner l’architecture sur la stratégie d’entreprise
La stratégie se définit par son image au sein et à l’extérieur de l’entreprise, ses priorités fonctionnelles et opérationnelles, objectifs de résilience, transformations, progressions, performances, expansions, réductions des coûts, satisfaction expérience client, conformité réglementaire, l’équilibre du portefeuille de projets.
Fondamentalement structurée, cohérente, évolutive, elle soutiendra la stratégie d’entreprise au quotidien et dans le temps avec des impacts positifs à long terme.
Les sphères métier, applicative, technique doivent s’organiser en cohérence et dans l’agilité dans le temps en restant toujours harmoniser à la stratégie d’entreprise.
Les clés d’un alignement entre l’architecture et la stratégie de l’entreprise :
- Déterminer quels sont les priorités stratégiques et objectifs de l’entreprise (Innovation, Réduction des coûts, Croissance du chiffre d’affaires, Amélioration de l’expérience client, Conformité réglementaire)
- Cartographier l’architecture des systèmes d’information, les investissements IT en cours des projets, systèmes et ressources, budgets afin d’évaluer si les investissements sont alignés à la stratégie de l’entreprise, aux besoins métiers, retour sur investissement, la priorisation les projets
- Réajuster l’alignement la priorisation les projets
- Communiquer des nouvelles orientations et réajustements aux secteurs des métiers et IT
- Surveiller les avancements de l’alignement et les influences, résultats sur la performance stratégique avec :
- Des tableaux de bord stratégiques pour établir l’alignement des projets IT avec les objectifs stratégiques de l’entreprise
- Des matrices d’alignement (stratégique IT, impacts, risques) pour cartographier les projets ou investissements IT avec leur contribution aux objectifs stratégiques de l’entreprise
- Les changements, priorités, risques appartiennent à notre quotidien, il est donc essentiel régulièrement de réviser les investissements IT cartographiés afin de contrôler et réajuster si nécessaire aux nouvelles orientations stratégiques
Prendre en compte l’évolutivité et la résilience
L’évolutivité est la capacité d’adapter et faire évoluer rapidement des systèmes aux impératifs fonctionnelles, organisationnelles et évolutions technologiques sans une lourde refonte, avec minimisation ou absence de régressions avec résilience.
S’adapter aux changements technologiques pour ajouter des ressources à une machine (CPU, RAM, stockage)
Ajouter plus de machines ou instances pour répartir la charge
L’évolutivité est à prendre en considération dès la conception d’une architecture agile et dotée d’une scalabilité maîtrisée
- Architecture orientée métier pour faire évoluer les besoins uniquement que d’un composant couplé à un métier spécifique
- Architecture sans serveur pour réduire la gestion des infrastructures et augmenter l’agilité
- Architecture type modulaire avec des composants interdépendants faciles à modifier et redéployer
- Architecture API REST ou GraphQL
- Architecture microservices, architecture basée sur des événements/souscriptions pour synchroniser les composants
- A la conception des spécifications métier, intégrer des tests unitaires et de montée en charge, garantir la qualité des résultats attendus avec des tests automatisées unitaires
- Réduire les tâches redondantes
- Garantir des intégrations et livraisons continues (CI/DI) : déploiements automatisés, rapides avec des pipelines
- Organiser des sprints de livraisons pour garantir des évolutions en continue
- Facilité l’interopérabilité pour intégrer facilement d’autres systèmes, augmenter les informations disponibles aux applications car les besoins métiers peuvent s’ouvrir sur des informations externes
- Préserver une collaboration harmonieuse entre les équipes métiers et IT
- L’évolutivité au sein de l’architecture dans le temps :
- Evaluation régulière de l’expérience métiers, retours de la continuité des services
- Réunions rétrospectives pour ajuster et optimiser en permanence
- La qualité des intégrations et livraisons continues
La résilience est la capacité d’un système informatique face à une situation imprévue de persister les services ou de les rétablir dans de brefs délais. Les situations imprévues comme les pannes, les incidents, le piratage informatique, erreur humaine ou une augmentation des charges d’opérationnelles.
La résilience est à prendre en considération dès la conception de l’architecture avec une identification des points de défaillance potentiels et d’intégrer :
- Infrastructure : Clusters, load balancers, multi-sites
- Réseau : Routage dynamique, VPN de secours
- Stockage : Réplication synchrone/asynchrone, snapshots
- Applications : Microservices, conteneurs, orchestration (K8s)
- Données : Sauvegardes régulières, bases distribuées
- Sécurité : Segmentation, détection d’intrusion, MFA
- Duplication des composants critiques (serveurs, bases de données, réseaux)
- Contrôles de détection des anomalies
- Outils configurés pour relancer la reprise des services automatiquement
- Procédures documentées pour maintenir ou restaurer les services : Plan de continuité (PCA) et de reprise (PRA)
La résilience au sein de l’architecture dans le temps :
- Surveillance régulière des points sensibles, ajout de points de contrôles
- Evaluation régulière de l’expérience, retours de la continuité des services et réajuster les procédures et documentations pour toujours assurer un confortable cadre de résilience
- Des exercices réguliers de situations défaillantes avec tests de pannes et de reprise
Sécuriser l’architecture dès sa conception
Prérequis : Architecture cartographiées sur les domaines : données, applications, infrastructures, utilisateurs et ainsi identifier les risques (vulnérabilités) pour chacun établir des mécanismes de protection.
- Protection des données, des systèmes et des infrastructures contre les menaces
- Protection de vos données sensibles des menaces internes, externes, humaines, naturelles
- Mettre en place une protection de vos données sensibles qu’elles ne soient accessibles qu’aux personnes autorisées, procédure d’informations interne de classification des données et documents : public, interne, confidentiel, strictement confidentiel
- Principe fondamental accès minimum et 0 confiance même en interne
- Garantir la sécurité avec vérification de tous les accès aux systèmes
- DevSecOps pour intégrer la sécurité dès la phase de mise en place
- Appliquer des règles de conformité via le code pour minimiser les vulnérabilités
- Mécanismes pour protéger la confidentialité des données
- Appliquer des contrôles adaptés au classification des données sur toutes les couches
- Sécurité des données via les applications (chiffrement des données) : protection des données sensibles dans les flux in out
- Mécanismes de récupération : backups réguliers planifiés pour éviter toute perte de données
- Mécanismes pour protéger l’intégrité des données
- Assurer que les données ne sont pas interceptées et modifiées par d’autres personnes que celles autorisées. Définir les rôles et responsabilités évitant les conflits d’intérêts
- Utiliser une base de données centralisée sécurisée afin d’éviter la duplication de ses données
- Accès uniquement aux personnes autorisées
- Sécurité sur les applications
- Mécanismes d’accès et authentification avec des identifiants sécurisés et authentifications multi facteurs
- Réaliser des audits de codes et tests de sécurité du code pour éviter toutes vulnérabilités
- Surveillance flux entrants non autorisés, de piratage provoquant des incidents
- Agilité, anticipations sur les incidents
- Se préparer à réagir aux attaques en réalisant régulièrement des tests des scénarios et les réactualiser
- Sécurité réseau, spécifier des zones à sécuriser
- Surveiller le trafic réseau pour bloquer les attaques
- Sécuriser toutes les communications des utilisateurs aux systèmes
- Sécurité Cloud
- Contrôler les accès : définir une politique de gestion des identités et accès
- Suivre les activités et détecter les malveillances
- Assurer du respect des normes de conformité et règlementations
- Intégrer la sécurité tout au long du cycle avec des procédures de mises à jour régulière
- Assurer que vos services mis en place sont codés sans pouvoir être modifiés lors de flux entrants et sortants
- Audit interne, traçabilité
- Formation interne de vos équipes avec une campagne interne d’information cyberattaque et erreurs humaines et la sécurité physique utilisation de wifi public, clé, phishing, mots de passes sécurisés, personnes physiques à rappeler que les politiques de l’entreprise sont à respecter au-delà de l’entreprise
- Former vos équipes sur IA générative, utiliser avec sécurité un chatbot et les risques liés à la gouvernance des données, sur les risques liés au partage des informations sensibles avec un chatbot
Pourquoi choisir Qim info pour vos projets d’architecture IT ?
Faire appel à Qim info, c’est être accompagné d’experts afin de choisir la bonne architecture alignée avec la stratégie de votre entreprise. Nos équipes peuvent intervenir dans différents projets tels que :
- L’améliorations à vos systèmes d’informations de votre écosystème
- La migration des anciens systèmes de flux et applications vers des systèmes évolutifs, scalables
- L’évolution et la migration vers le cloud
Contactez nos experts pour vos discuter de vos projets d’architecture IT.