Les cinq principales tendances de développement logiciel de 2018 - Par Igor Lebedev, CTO de SONM

Publié: 2021-08-09

Jusqu'à présent, 2018 a été une année de transformation pour les développeurs. Le développement de logiciels s'est surpassé avec de nouvelles versions et des solutions de meilleure qualité qui rendent les tâches informatisées plus faciles et plus efficaces que jamais. Les bases de données sont désormais capables de quantifier de grands pools d'informations sans interruption, les serveurs sont vendus en série au lieu d'unités singulières, et la blockchain a ouvert des portes en utilisant un système décentralisé. Voici les cinq principales tendances de développement de logiciels qui prennent d'assaut le monde de la technologie cette année :

Big Data

La croissance constante des données d'entreprise et publiques conduit à une situation où les bases de données et les instruments de stockage traditionnels ne sont plus capables d'utiliser et de gérer le volume de données. Les anciennes approches ne fonctionnent plus, ayant vu de première main que les SGBDR (Systèmes de gestion de bases de données relationnelles) ne sont plus capables de tout contenir. Cela conduit à l'émergence de nouveaux outils et approches, mais plus important encore, cela conduit à la fin de la domination des bases de données monolithiques traditionnelles. La nouvelle approche consiste à stocker des données partagées sur plusieurs nœuds. Les données de base sont toujours stockées dans des bases de données centralisées traditionnelles, mais davantage de volume de données est stocké séparément et la part des bases de données monolithiques est réduite. L'enjeu du big data en 2018, c'est qu'il vous oblige à réécrire vos applications classiques d'une nouvelle manière afin de gérer de grands pools de données.

Évolutivité horizontale

La solution de mise à l'échelle traditionnelle consistait toujours à acheter un serveur plus récent et plus gros. Ce nouveau serveur aurait plus de cœurs, un cache de mode, des fréquences plus élevées, des banques de mémoire plus grandes, des bus plus rapides et plus de disques. Cependant, cette solution de mise à l'échelle a des limites et ces limites ont déjà été atteintes. Le châssis de serveur commun peut avoir au plus 2 ou 4 processeurs, et vous ne pouvez pas ajouter de processeurs sans limites car vous ne pouvez pas augmenter les fréquences. À un moment donné, la mise à l'échelle verticale atteint ses limites. L'étape suivante est la mise à l'échelle horizontale. Cela signifie qu'au lieu d'acheter un serveur plus gros pour remplacer l'ancien, vous achetez un ou plusieurs serveurs supplémentaires du même type à ajouter à votre pool existant. Cette approche semble plus flexible, mais nécessite une architecture logicielle différente et, encore une fois, vous oblige à réécrire le logiciel. Si vous faites cela, vous bénéficiez d'une meilleure gestion des ressources avec la possibilité de partager des ressources. Ici, nous voyons les microservices, l'exécution sans état et Kubernetes comme des tendances.

Décentralisation

Les changements que nous voyons dans le monde apportent de nouveaux défis. Ils peuvent être liés à la politique, aux coûts de livraison, à la confiance ou à des situations de marché, mais la tendance reste que les entreprises ont tendance à décentraliser leurs services et logiciels. Les réseaux de diffusion de contenu déploient des serveurs chez votre FAI, les fournisseurs SaaS ouvrent des DC dans votre pays et les entreprises réfléchissent à la reprise après sinistre. Cela conduit les entreprises à ne plus avoir un seul centre de données principal, mais deux ou plus, tout en obligeant leurs ingénieurs à réfléchir à la modification de certains aspects de leur architecture applicative.

Traitement du brouillard

L'utilisation de l'informatique augmente chaque jour. L'IoT génère de plus en plus de données à la périphérie du réseau. Ces données sont traditionnellement traitées dans les DC ou dans le cloud. Cependant, compte tenu du fait que les lignes optiques modernes sont extrêmement rapides et que le débit du réseau augmente d'année en année, la quantité de données augmente beaucoup plus rapidement. Les réseaux sont et ont toujours été le « goulot d'étranglement » du traitement global de l'information. Si ce n'est techniquement (par bande passante et latence), alors économiquement (par prix par transmission). Actuellement, le moyen le plus rapide et le moins cher de migrer votre entrepôt de données vers un autre DC est d'appeler un véhicule cargo et de transporter littéralement les disques durs vers un nouvel emplacement. Non, ce n'est pas une blague.

Cela conduit à l'idée fondatrice de l'industrie du traitement Edge et Fog, ce qui signifie qu'autant de données que possible doivent être traitées localement. Les principales sociétés informatiques travaillent sur des solutions pour traiter et servir les données à proximité des appareils. Ce type de traitement est le brouillard. Il y a des difficultés à cela. Vous ne pouvez pas simplement copier le code du cloud et espérer que cela fonctionne, car dans le cloud, toutes les données sont accessibles localement, tandis que dans le brouillard, aucun nœud ne possède toutes les données et doit demander à un autre nœud les informations requises. Cela oblige les développeurs d'applications à adopter leur architecture et à réécrire le code, afin que les tâches puissent être résolues à la manière du MPP (traitement parallèle massif). Cela donne une raison de plus pour réécrire le code et IaaS décentralisé ; jusqu'à ce qu'il devienne une plate-forme attrayante pour héberger votre application nouveau-né.

Tolérance aux pannes

Nous vivons à une époque où il est plus difficile de vendre quelque chose que de produire. La concurrence du marché augmente et les entreprises exécutant des logiciels réfléchissent à un meilleur SLA pour avoir un avantage et gagner la confiance des utilisateurs. Avec les points mentionnés précédemment, la probabilité d'une défaillance d'un seul composant du système augmente de manière critique. On ne peut pas compter sur la capacité du cluster de base de données Oracle à gérer les pannes car une grande partie des données se trouvent à l'extérieur. Au lieu d'avoir quelques serveurs super fiables avec une double alimentation, il peut désormais y avoir 10 ou même 100 serveurs et l'espérance mathématique d'une défaillance d'un seul nœud atteint près de 1 (un, 100%). Quelque chose échouera probablement et les entreprises doivent s'y préparer à nouveau en examinant leur architecture d'application. Le monde, et l'informatique en particulier, change constamment et évolue à un rythme incroyablement rapide. Les anciennes approches ne fonctionnent pas. Les entreprises réécrivent leurs logiciels avec le big data, l'évolutivité horizontale, la décentralisation et le traitement du brouillard au cœur. Les ingénieurs gardent constamment à l'esprit les tolérances aux pannes côté application.

Ces tendances de développement logiciel ont conduit à l'émergence de nouvelles exigences en matière de matériel et de sa disponibilité, qui est moins critique pour la défaillance d'un seul nœud, et avec plus d'options de mise à l'échelle horizontale. Alors que nous nous tournons vers l'avenir, nous prévoyons un surplus de nouvelles tendances en développement, qui, espérons-le, suivront l'évolution de notre technologie et le besoin d'un plus grand support matériel.

A propos d'Igor Lebedev :

Igor Lebedev est un spécialiste en informatique avec plus de 15 ans d'expérience en informatique. Son expertise réside dans les architectures système classiques, les classes système, les bases de données, le fog computing, les systèmes de trading automatisés, les contrats intelligents et la microélectronique. Igor est actuellement CTO et chef de l'équipe de développement SONM depuis juillet 2017. En tant que CTO, Igor fournit un aperçu et une contribution précieuse à la vision du produit et au processus de développement global, tout en constituant en permanence une équipe de développeurs qui créent le brouillard informatique, le projet SONM .