Rapport InfoQ sur les tendances en matière d’architecture et de conception logicielles – avril 2022

Les thèses centrales

  • “Data plus architecture” est l’idée que les architectures logicielles s’adaptent de plus en plus pour prendre en compte les données. Cela englobe de manière holistique la qualité des données, les pipelines de données et la traçabilité pour comprendre comment les données ont influencé les décisions et les modèles d’IA.
  • L’architecture logicielle innovante facilite la qualité des données tout comme nous avons amélioré la qualité du code. Repérer tôt les données erronées est tout aussi important que repérer les erreurs tôt.
  • La pratique de l’architecture logicielle n’appartient pas qu’aux titulaires du titre d’architecte. Tout ingénieur peut participer activement à l’architecture, et les architectes doivent aider à faciliter ce processus.
  • Un avantage positif de la pandémie et du passage au travail à distance et hybride est l’augmentation des communications asynchrones, qui peuvent se manifester sous la forme d’enregistrements de décision d’architecture (ADR).
  • Les architectes logiciels ajustent leurs boucles de rétroaction, ce qui peut être difficile lorsqu’ils traitent avec des collègues dans plusieurs fuseaux horaires ou d’autres limitations de travail à distance. Les bons architectes apprennent à concevoir de meilleurs systèmes distribués grâce au travail distribué.

Chaque année, les éditeurs d’InfoQ discutent de ce que nous avons observé dans le paysage du développement logiciel et produisent plusieurs rapports sur les tendances, chacun avec son propre graphique de courbe d’adoption. Cela aide l’équipe éditoriale à concentrer sa couverture sur les technologies et les idées innovantes, et fournit également à nos lecteurs un aperçu général des sujets à surveiller.

Ces rapports comportent deux éléments principaux. Le premier est le rapport écrit que vous lisez en ce moment, contenant le graphique de tendance et les détails des éléments individuels qui ont été ajoutés ou modifiés au cours de l’année écoulée, ainsi qu’une analyse générale par l’équipe éditoriale d’InfoQ.

La deuxième partie du rapport est un épisode du podcast InfoQ, qui offre l’opportunité d’écouter une partie de la conversation des rédacteurs et d’entendre quelques exemples anecdotiques de notre panel d’experts.

Mises à jour du graphique de tendance

En 2021, nous avons examiné de nombreuses façons dont les architectes façonnent leurs conceptions, en tenant compte des “-ilités” clés. Cette année, nous avons ajouté Design for Security à cette liste et nous l’envisageons au stade de l’adoption précoce. Bien que la sécurité ait toujours été un facteur, il devient de plus en plus important de prendre en compte la sécurité tôt et de manière répétée dans la conception d’un système et de ses composants.

L’architecture ne fait peut-être pas partie du trio portemanteau DevSecOps, mais c’est un élément sous-jacent de cette idée. Il existe également de nombreuses similitudes entre la cybersécurité et l’architecture logicielle, comme discuté avec Maxime Lamothe-Brassard sur le podcast InfoQ.

Nous avons envisagé d’ajouter “conception pour l’évolutivité”, mais avons décidé que cela serait capturé sous l’idée de “conception pour la résilience” et d’autres tendances existantes d’adaptation à l’évolutivité. Au cours de la deuxième année de la pandémie, l’utilisation des services en ligne a continué de croître et les entreprises devaient être en mesure d’adapter la demande.

eBPF, Berkley Extended Packet Filters, est un moyen de programmer le noyau Linux et de donner aux développeurs la possibilité d’ajouter des fonctionnalités au système d’exploitation lors de l’exécution. Nous avons ajouté eBPF en tant que tendance innovante et surveillerons son adoption dans les années à venir. Liz Rice a donné un excellent aperçu de la technologie dans un récent épisode du podcast InfoQ.

Le terme “Next Generation GraphQL” a été remplacé par GraphQL Federation car il s’agit de l’aspect clé à adopter par les entreprises qui s’appuient sur leurs implémentations GraphQL existantes.

“Data Gateways” a été supprimé et remplacé par “Data + Architecture”. De plus, Architect Elevator a été remplacé par Architecture Decision Records. Ces changements sont discutés en détail plus loin dans ce rapport.

Dapr et WebAssembly sont tous deux passés d’innovateurs à des adopteurs précoces.

Certains éléments ont été supprimés en raison d’un manque d’adoption et d’une innovation insuffisante ces dernières années. Il s’agissait de Open Application Model (OAM) et de RSocket & Reactive Streams.

données + architecture

Nous assistons à une transition de données qui ne sont considérées qu’au niveau du stockage ou du transport dans un système vers des données qui sont un élément déterminant du système. Cela est évident dans les systèmes d’IA/ML construits à partir de données, ainsi que dans les modèles de conception tels que l’approvisionnement en événements. Parfois, cela se manifeste par un concept clairement défini, tel que B. Data Mesh, que nous continuons à surveiller en tant que tendance innovante distincte. Le plus souvent, les architectes regardent simplement les données différemment, ce qui conduit à l’inclusion de “Données + Architecture” dans le tableau des tendances de cette année.

Dans une interview sur le podcast InfoQ, Neal Ford et Mark Richards ont discuté de la nécessité d’inclure des chapitres sur les données dans leur nouveau livre, Software Architecture : the Hard Parts. Nela a dit :

Nous voulions nous assurer d’avoir une image plus complète car nous croyons fermement que les données plus l’architecture seront l’un des thèmes des prochaines années. Et c’est le sujet d’une grande partie de notre travail professionnel que nous faisons en ce moment – démêler cette relation et la transformer en une relation de travail harmonieuse est encore une fois une collaboration entre les administrateurs de base de données, les architectes, et amener ces pratiques dans le même type de pratiques que ce à quoi nous nous habituons dans l’architecture et le design.

L’architecture Data + inclut certains des termes favorables au référencement, tels que B. Les passerelles de données, qu’il remplace dans le graphique. Cela inclut également des idées telles que la qualité des données et l’introduction d’outils qui tentent de résoudre le problème : « Comment pouvons-nous nous assurer que les données que nous utilisons sont correctes ? Comment savons-nous que c’est ce à quoi nous nous attendions ? » Les conséquences de ne pas répondre à cette question peuvent être dévastatrices.

L’éditeur d’InfoQ, Eran Stiller, fait attention à la qualité des données lorsqu’il travaille chez Badook et déclare ce qui suit :

Aujourd’hui, les entreprises s’appuient de plus en plus sur l’intelligence artificielle et les algorithmes d’apprentissage automatique. Ils les utilisent pour améliorer leur expérience client, prévoir leurs niveaux de ventes et de stocks et obtenir des informations précieuses sur leur activité. Dans certains cas, ils prennent même des décisions entièrement automatisées sans intervention humaine. Ces algorithmes sont basés sur des données. Si les données sont bonnes, ils peuvent construire un modèle utilisable. Malheureusement, nos données changent avec le temps et leur qualité se dégrade. Des erreurs de collecte de données se produisent, les pipelines de données peuvent involontairement faire des ravages sur nos données, et les hypothèses que nous avions auparavant sur nos données changent avec le temps et peuvent ne plus être valides, entraînant des résultats commerciaux potentiellement désastreux.

Par exemple, la société immobilière Zillow a récemment radié plus d’un demi-milliard de dollars après que son modèle de données utilisé pour prédire les prix des logements et guider ses décisions commerciales n’ait pas réussi à s’adapter à une réalité changeante.

De plus, les régulateurs du monde entier, comme l’Union européenne, sont en train de réglementer la manière dont les algorithmes d’intelligence artificielle sont créés et utilisés. Une loi similaire sur la responsabilité algorithmique a récemment été présentée au Congrès américain. Une partie cruciale de ces réglementations consistera à s’assurer que les données utilisées pour dériver l’algorithme sont valides.

Par conséquent, je m’attends à ce que la qualité et la fiabilité des données soient un problème de plus en plus préoccupant pour la plupart, sinon la totalité, des entreprises technologiques. Tout comme nous testons notre code, nous devons tester et valider nos données et nous assurer qu’elles se comportent comme prévu. Si nous ne le faisons pas, nous pourrions nous réveiller un matin et fonder notre stratégie commerciale sur des prévisions corrompues ou, pire, prendre des décisions financières désastreuses et entièrement automatisées qui pourraient nous coûter des milliards. Je suis sûr qu’aucun d’entre nous ne veut être dans cette position.

architectes et architecture

Il existe un large éventail dans l’industrie pour définir le rôle d’un architecte et les pratiques d’architecture logicielle et de conception de logiciels. De nombreuses entreprises n’ont pas de titre de poste pour un architecte logiciel, et celles qui en ont peuvent avoir des responsabilités très différentes. Malgré cela, un logiciel est toujours conçu et a toujours une architecture. Notre défi est d’identifier les manières innovantes dont l’architecture est créée et comment cela peut se manifester dans le rôle des architectes logiciels.

C’est une idée difficile qui peut être résumée en un concept court dans le graphique de tendance. L’année dernière, nous avons eu l’idée de “l’ascenseur d’architecte” de Gregor Hohpe selon laquelle l’architecte doit communiquer à plusieurs niveaux de l’organisation. Avant cela, nous avions « Architecte comme directeur technique ». Les deux sont tombés dans la catégorie des premiers utilisateurs, en grande partie en raison du sentiment instinctif qu’ils n’étaient pas nécessairement innovants, mais ils n’étaient pas non plus largement utilisés.

Cette année, nous avons inclus “Architecture Decision Records (ADRs)” en tant qu’idée d’adoption précoce. Une bonne référence pour les UAW est un article de Michael Nygard de 2011. La plupart des équipes logicielles sont familiarisées avec les diagrammes d’architecture “boîtes et flèches”, qui sont utiles pour documenter l’état souhaité ou actuel d’un système.

Cependant, il est souvent utile de comprendre pourquoi ces décisions de conception ont été prises, ce qui est le but des ADR. En capturant la décision ainsi que d’autres options envisagées et l’analyse des compromis effectuée à ce moment-là, un ADR peut être très utile si une conception doit être mise à jour à l’avenir, ou simplement comme rappel si la conception est remise en question.

Un effet secondaire de la construction de systèmes distribués et de microservices construits par des équipes semi-autonomes est que les décisions architecturales sont également distribuées. En tant que tels, les architectes doivent aider les équipes à effectuer des tâches architecturales telles que : B. analyse des compromis, pour prendre de bonnes décisions et pour documenter et communiquer ces décisions. Selon Andrew Harmel-Law, les ADR peuvent jouer un rôle important dans la mise à l’échelle des architectures logicielles.

Pour entendre plus de discussions sur le rôle des architectes et la pratique de l’architecture logicielle, je recommande fortement d’écouter le podcast qui l’accompagne.

Prochains événements QCon en 2022

QCon, la conférence internationale sur le développement de logiciels, revient en 2022 (en personne et en ligne).

QCon rassemble les ingénieurs logiciels seniors les plus innovants au monde dans de multiples domaines pour partager leur mise en œuvre réelle des tendances et pratiques émergentes.

Trouvez l’inspiration pratique (et non les présentations de produits) des leaders du logiciel profondément enracinés dans la construction de logiciels, la mise à l’échelle des architectures et l’optimisation de leur leadership technique pour vous aider à prendre les bonnes décisions.

Assistez à QCon London (4-6 avril) en personne ou à QCon Plus (10-20 mai) en ligne.

Leave a Comment