L'objet de ce billet est d'évoquer certaines évolutions récentes des architectures informatiques qui me paraissent assez structurantes. Ces évolutions sont issues d’acteurs innovants qui ne pratiquent pas la course à la puissance et envisagent des plateformes techniques en rupture. Elles devraient intéresser les entreprises qui réfléchissent sur l’évolution de leur Système d’Information.
(Attention : ce billet est assez technique)
Nouvelles architectures serveurs
Comme je l'ai évoqué dans mon dernier livre, les acteurs du cloud computing gèrent des datacenters de grande envergure avec des approches assez spécifiques :
- Une panne machine est considérée comme un évènement normal et quotidien et il est géré de manière automatique
- Les données sont répliquées en continu sur plusieurs continents.
De fait, leur approche architecturale est atypique et ils respectent un principe appelé le théorème de CAP. CAP signifie Consistency, Availability and Partition-Tolerant, c’est à dire consistance, disponibilité et tolérance aux pannes.
Le théorème dit la chose suivante : « dans une architecture distribuée de grand envergure, il n’est possible d’assurer que deux des trois propriétés CAP ». Les datacenters du cloud computing peuvent donc assurer la haute disponibilité et la tolérance aux pannes, mais pas la consistance des données. Résumé en 2 mots, cela signifie que ces architectures ne sont pas transactionnelles, et qu’elles remettent en cause les vieux principes du « Two-phase commit. »
Par ailleurs, pour des raisons de performance, leurs bases de données sont souvent éclatées sur plusieurs serveurs, et structurées de manière non relationnelle. Elles remettent dont en cause les principes de normalisation de Merise.
Enfin, toujours pour des raisons de performance, elles mettent l’accent sur l’exécution en mode asynchrone, au travers de queues de messages simplifiées.
Nouvelles architectures de postes de travail
Côté utilisateur, le cas de l’iPhone me paraît très intéressant car c’est le premier système moderne à interdire le multitâche. Cette approche est très en rupture avec les évolutions classiques de l’informatique. Elle privilégie la fluidité de l’expérience utilisateur sur la sophistication technique que l'on peut trouver dans les dernières versions de Windows.
Dans le même ordre d’idée, je pense aux netbooks exécutant des systèmes simplifiés basés sur Linux comme Moblin ou JoliCloud (cf. ce billet de Fred Cavazza). Ces systèmes me paraissent très pertinent pour des besoins de simple navigation sur le Web.
Enfin, les navigateurs de dernière génération comme Firefox ou Chrome ont réécrit leurs moteurs JavaScript pour offrir une expérience utilisateur très fluide dans un environnement technologique assez frustre : les pages Web.
En conclusion ?
Je terminerai en disant que nous sommes face à un changement de paradigme.
Ces nouvelles architectures remettent en cause des principes souvent considérés comme gravé dans le marbre par les architectes IT.
Cette nouvelle approche privilégie le pragmatisme et la fluidité de l'expérience utilisateur sur le "plaisir intellectuel d'une belle architecture".
Qu'en pensez vous?