lundi 24 février 2025

Architectures, technologies numériques

 Des choix d’architectures, de technologies numériques, sont faits pour les ensembles matériels et logiciels inclus dans les offres numériques de l’entreprise, les ressources numériques qu’elle utilise. Ils portent sur de nouveaux ensembles ou sur des évolutions de l’existant. 

Dans le cas des produits et services, fournis par l’entreprise, la valeur ajoutée numérique apportée dépend des choix des entreprises dans ce domaine. Pour les constructeurs, par exemple, elle est faible lorsqu’ils se limitent à assembler des composants matériels et des logiciels standard du marché. Elle est très forte dans le cas des composants électroniques, pour lesquels les constructeurs réalisent des investissements considérables en R&D.

Les choix d’architecture, de technologies, concernent les produits, les logiciels, les SI.

Les produits sont complètement ou partiellement numériques.

Les SI sont des systèmes complètement numériques, ou des sous-ensembles numériques de systèmes comportant également des éléments d’autres natures. Les choix d’architecture portent sur leur architecture d’ensemble, sur celles des systèmes locaux, mobiles, distants, des réseaux de communication numérique, sur leur architecture logicielle.

Modalités de recours aux nouvelles technologies

Le recours à de nouvelles technologies présente de l’intérêt dans certains contextes, mais évidemment plus de risques que pour les technologies éprouvées. Des arbitrages sont à faire sur leurs modalités de prise en compte.

Des ruptures technologiques sont parfois nécessaires pour répondre aux besoins définis. Pour les grands SI, les entreprises souhaitent souvent qu’elles soient progressives, de façon à pouvoir étaler dans le temps les investissements techniques et financiers à réaliser.

Les produits, les logiciels appartiennent souvent à des séries, dont le client achète le dernier modèle, la dernière version. Les choix d'architecture doivent prévoir autant que faire se peut des passages aisés d'un modèle, d’une version à l'autre, l'utilisation conjointe de versions, de modèles anciens et nouveaux.

Pour les ensembles matériels et logiciels dont elles sont propriétaires, les entreprises cherchent en général à réutiliser, transformer l’existant, plutôt que de mettre en place de nouveaux ensembles, pour des raisons évidentes de coûts et de délais, de maîtrise des risques. Dans les grandes organisations, les SI, les logiciels existants ont souvent fait l’objet d’investissements lourds, sont difficiles techniquement à remplacer ; les entreprises souhaitent les rentabiliser autant que faire se peut.

Pour les opérateurs de télécommunications numériques, la réutilisation des voies de transmission existantes, filaires ou hertziennes, est en général une priorité. Ceci milite pour une grande évolutivité des ensembles matériels et logiciels.

La réutilisation est une des plus importantes sources de progrès de la productivité de l'ingénierie du logiciel, de réduction des délais de réalisation. Elle porte principalement sur le code source (réutilisation de code).

Plusieurs conditions doivent être remplies pour que la réutilisation de code soit efficace :

– définition et mise en place d'une stratégie délibérée, planifiée dans ce domaine ; réalisation des investissements nécessaires ;

– disponibilité de composants répondant aux besoins ;

– publication des caractéristiques externes détaillées des composants, aide au choix des composants les plus conformes aux besoins ;

– qualité des composants : pour que des gains de productivité puissent être obtenus, le nombre de défauts doit être très faible ;

– stratégie de communication, incitation forte des équipes d’ingénierie du logiciel à utiliser des composants réutilisables.

Les composants logiciels réutilisés sont trouvés sur le marché ou développés par l'entreprise (programmation orientée composants).

Le développement de composants logiciels par l'entreprise nécessite s'il y a lieu des travaux de réingénierie du logiciel, visant à réusiner les composants, à mettre à niveau leur documentation...

Standardisation, rationalisation, propriété

1) Les éléments constitutifs des ensembles matériels et logiciels sont des produits et services standard susceptibles d'être obtenus sur le marché, ou doivent être conçus, construits, développés sur mesure.

Il est recommandé d'utiliser autant que faire se peut des architectures, des éléments standard, d'exploiter l'expérience accumulée de la profession, de bénéficier ainsi d’économies d’échelle.

Il est parfois nécessaire de recourir à des solutions sur mesure, pour des raisons de différenciation concurrentielle, de cohérence, de sécurité…

2) L'entreprise a des options à prendre sur le niveau de maîtrise technologique qu’elle souhaite.

L'utilisation d’éléments fournis par des tiers crée des liens de dépendance par rapport aux fournisseurs, fait perdre à l’entreprise une partie de la maîtrise de ses architectures numériques.

Les grandes entreprises ont souvent intérêt à investir dans la recherche (par exemple dans le big data, la robotique, l’IA...), le développement de technologies numériques de pointe. Des choix (difficiles) sont à faire sur les domaines à retenir.

Les budgets de développement des nouvelles technologies sont parfois considérables, par exemple pour les composants électroniques, l’IA.

3) Il est souvent intéressant de définir des standards internes d’architecture, de technologies numériques, d'éliminer les hétérogénéités techniques inutiles, de mutualiser les éléments d’usage général. Outre la réduction des coûts (de développement, d’achat, de maintenance, des compétences nécessaires…), des risques, ceci permet de mieux maîtriser les architectures, les technologies mises en œuvre, et donc d’améliorer la fiabilité des ensembles matériels et logiciels, de faciliter la réalisation des projets. Cela n’est pas toujours possible.

Dans un domaine d’activité, une architecture des SI identique dans toutes les régions, les zones géographiques, permet d’accélérer la prise en charge des nouveaux produits et services, et donc la croissance. Elle facilite la consolidation des informations au niveau du groupe, pas seulement pour les données comptables. Un équilibre est à trouver avec les besoins d’adaptation au contexte local (marketing, réglementaire, social…). 

4) Les systèmes locaux, mobiles appartiennent en général à l’entreprise. Les systèmes distants sont internes ou externes.

Des économies d’échelle importantes sont réalisables par la constitution de grands data centers, plus faciles à rentabiliser par un fournisseur de services externes que par une entreprise répondant uniquement à ses besoins propres. De ce fait les services de cloud sont de plus en plus utilisés par les entreprises.

5) Des architectures, des composants logiciels standard sont fournis avec les OS, ou avec des frameworks, comme Hadoop, les serveurs d'applications.

Des normes sont à définir, notamment pour la programmation.

Automatisation

En règle générale, le fonctionnement des SI, des équipements, leur maintenance/évolution, les contrôles de sécurité doivent être aussi automatisés que possible. Les architectures doivent comporter les fonctions numériques nécessaires, en local et accessibles à distance.

L'architecture des ensembles matériels et logiciels doit permettre leur maintenance de façon fiable, rapide et au moindre coût, être évolutive selon les besoins, pour leur durée prévue d’utilisation. Ceci nécessite une architecture modulaire, rationnelle, constituée d’éléments si possible faiblement couplés, permettant de maîtriser aussi bien que possible la complexité de l'ensemble. Ceci nécessite aussi des éléments constitutifs pour lesquels les constructeurs fournissent des pièces détachées, les éditeurs des versions évolutives ou correctives, des technologies pour lesquelles les compétences nécessaires sont disponibles dans l'entreprise, chez des partenaires ou sur le marché, une documentation adaptée, du code lisible et structuré…

Les entreprises cherchent à ce que leurs SI accompagnent leurs évolutions, celles de leur environnement, dans des délais répondant à leurs besoins, et pour des coûts acceptables. Elles ont souvent besoin d’informations, de fonctions nouvelles, de capacités importantes de traitement, de stockage des informations numériques, de communication, de performances. Elles souhaitent également avoir le temps d’amortir les investissements qu’elles ont réalisés.

L'utilisation de logiciels paramétrables, réutilisables, la scalabilité du matériel numérique, sont des façons de rendre les ensembles matériels et logiciels adaptables, évolutifs. 

Les architectures orientées services (SOA), événements (EDA), contribuent à ces objectifs. Elles facilitent l'intégration des différents logiciels de l'entreprise, chaque composant logiciel étant considéré comme un service. Il en est de même pour les API, les architectures cloud-native, headless (MACH…).

Des approches de composantisation (componentization), de conteneurisation sont proposées. Elles permettent de gérer les modifications d'un composant, d'un conteneur en minimisant les impacts sur son utilisation, son environnement.

La complexité des ensembles matériels et logiciels ne doit pas entraîner de difficultés excessives dans leur maîtrise (utilisation, exploitation, maintenance, évolutions…).

L’augmentation du nombre des microservices, des API, des composants logiciels, a pour effet d’augmenter la complexité des systèmes. Le découplage a également pour inconvénient d’augmenter la complexité. La complexité est (entre autres) l’ennemie de la sécurité.

Elle doit rester maîtrisable. Des architectures monolithiques, par exemple, sont susceptibles d’être conservées et rationalisées, modularisées.

Les architectures numériques doivent être robustes, fiables, sécurisées, sûres. Elles doivent être conçues dès le départ (security by design) pour être résistantes aux pannes, aux erreurs des utilisateurs, aux actions malveillantes... Des redondances, des solutions de secours, des segmentations de réseaux, des architectures zero trust..., sont à prévoir. Ces exigences peuvent être contradictoires avec d’autres : les circuits d'échange d'informations entre les secteurs de l'entreprise, par exemple, sont susceptibles d'être utilisés par des acteurs malveillants. Les entreprises, leurs clients ne vivent pas dans un monde théorique.

Certains choix d'architecture des SI reposent sur des principes de centralisation ou de décentralisation des ressources, des données. Conceptuellement, il est en général intéressant par certains aspects de voir l'architecture de l'ensemble des SI de l'entreprise comme un tout : des actions d'optimisation globale sont à envisager, certaines données sont obligatoirement à centraliser, à mettre en cohérence, la sécurité numérique de l'entreprise est à traiter de façon globale. La décentralisation des SI peut correspondre à des choix généraux d'organisation de l'entreprise.

Aucun commentaire:

Enregistrer un commentaire