Topic

Comment choisir la bonne architecture web pour un projet business

Insights/ Architecture web & plateformes / Décisions d'architecture

04 oct. 2023 - 10 min de lecture

Comment choisir la bonne architecture web pour un projet business
Écouter l’article00:00 / 12:00

Ce que « architecture » veut vraiment dire pour un projet business

Le mot « architecture » est utilisé de façon lâche dans les conversations technologiques, souvent pour dire « le framework qu’on a choisi » ou « le schéma de la diapositive 12 ». Pour un projet business, l’architecture est une chose beaucoup plus large. C’est le système entier : comment les pages côté utilisateur sont construites, où vit la donnée, comment l’application parle aux systèmes déjà en place, où elle tourne, qui la maintient, et comment elle survit aux deux prochains changements que le métier lui imposera.

Cet article est la version pilier de la conversation. Il suppose que vous avez déjà, ou aurez bientôt, traité les décisions plus étroites : le mode de rendu adapté au contenu et, si React est sur la table, si Next.js est le bon framework pour le site. Le travail ici est la couche au-dessus des deux : décider à quoi ressemble le système dans son ensemble pour un projet business précis, avec une équipe précise, un budget précis et un calendrier précis.

Les décisions d’architecture bien prises sont essentiellement invisibles. Le site se charge vite, les intégrations marchent, l’équipe peut livrer un changement sans retenir son souffle, et personne d’astreinte ne se fait appeler à 3 heures du matin pour quelque chose qui aurait dû être pensé dix-huit mois plus tôt. Les décisions mal prises deviennent le problème de toutes les décisions suivantes.

Partir de la forme du métier, pas de la technologie

Le point de départ le plus fiable pour une décision d’architecture est la forme du métier, pas la forme de la stack. Trois choses comptent généralement plus que toute comparaison de frameworks.

La première : à quoi sert vraiment le système. Un site marketing qui doit convertir des visiteurs en leads qualifiés. Un produit connecté pour lequel les clients paient. Une plateforme de données terrain pour une ONG avec un millier d’agents sur le terrain. Un hybride des trois. Chaque forme implique une architecture très différente, et essayer d’utiliser une architecture pour toutes est la raison la plus courante pour laquelle un système se met à sembler mauvais six mois après le lancement.

La deuxième : qui paie pour, et sur quel cycle. Un métier qui finance le système sur sa trésorerie d’exploitation n’a pas la même appétence à l’ambition qu’un projet financé par une subvention unique qui se ferme dans dix-huit mois. Les choix d’architecture qui dépendent d’une équipe permanente en interne sont les mauvais choix quand il n’y aura pas d’équipe permanente en interne. Le modèle de financement fait partie de l’architecture, pas seulement du business case.

La troisième : ce que le métier veut faire du système dans deux à trois ans. Un site vitrine statique qui sera remplacé au lancement de la nouvelle marque a une architecture cible différente d’un hub de contenu qui va devenir un portail. Construire pour le mauvais horizon est la manière dont les systèmes sont sur-ingéniérés pour un changement qui ne vient jamais, ou sous-ingéniérés pour un changement qui arrive.

Ces trois questions filtrent la plupart des choix d’architecture avant qu’aucune technologie n’ait été comparée. La comparaison de technologies est réelle, mais ce n’est pas la première conversation.

Les quatre schémas d’architecture courants et ce que chacun convient

La plupart des projets web business s’inscrivent dans l’un des quatre schémas d’architecture reconnaissables. Chacun a une vraie zone de pertinence et un vrai mode d’échec.

Monolithique full-stack (une seule application qui gère pages, logique métier et accès aux données dans un même codebase, souvent avec un framework comme Django, Rails, Laravel ou une application Next.js avec des routes API). Force : le plus simple à livrer, le plus simple à exploiter, le plus rapide à itérer quand l’équipe est petite. Faiblesse : passe à l’échelle en ajoutant plus d’instances du même type, pas en isolant les responsabilités. Bonne adéquation : la plupart des projets business de taille petite à moyenne avec une seule équipe et un périmètre produit clair.

Monolithe modulaire avec frontières d’API (un seul déployable, mais des modules internes avec des APIs strictes entre eux ; une seule base de données avec des schémas soigneusement délimités). Force : la plupart des bénéfices opérationnels du monolithe, avec des frontières plus propres quand le système grandit. Faiblesse : dépend de la discipline ; sans elle, il devient un monolithe en désordre. Bonne adéquation : les projets business qui grandissent vite et pourront vouloir se découper plus tard.

Contenu headless plus frontend custom (un CMS ou une couche de contenu type Sanity, Contentful, Strapi ou WordPress-en-API, avec une application frontend séparée qui l’appelle). Force : les éditeurs ont un vrai CMS, les développeurs ont une séparation propre, le multilingue et le multi-canal sont plus simples. Faiblesse : deux systèmes à maintenir, deux pipelines de déploiement, deux surfaces où des choses peuvent casser. Bonne adéquation : sites business riches en contenu où les éditeurs sont non techniques et où le front doit faire quelque chose que le thème du CMS ne permet pas.

Architecture orientée services ou microservices (plusieurs services déployables, chacun possédant ses propres données et exposant des APIs). Force : permet à plusieurs équipes d’avancer indépendamment et isole les pannes. Faiblesse : taxe opérationnelle lourde, justifiée seulement quand le nombre d’équipes et la maturité opérationnelle l’exigent réellement. Bonne adéquation : grandes plateformes avec plusieurs équipes, plusieurs domaines métier et une vraie fonction opérations. Presque toujours le mauvais point de départ pour un projet business mono-équipe.

L’erreur n’est pas de choisir le mauvais schéma dans l’absolu. C’est de choisir un schéma qui ne correspond pas à la taille, à l’équipe et au budget du projet. Un site web business à deux développeurs n’a pas besoin de microservices, peu importe leur popularité ; une plateforme d’entreprise multi-équipes ne peut pas vivre dans un seul monolithe longtemps, peu importe à quel point cela aurait été simple de commencer là.

Les questions qui tranchent l’architecture

Quand la forme du métier et la liste courte des schémas sont claires, six questions tranchent la plupart des décisions d’architecture restantes.

Où vit la donnée, et qui d’autre en a besoin ? Si la donnée alimente aussi un CRM, un ERP, un outil de reporting ou une application mobile, la couche de données doit être conçue pour cela dès le départ. Traiter le site web comme le système de référence pour des données dont d’autres systèmes ont aussi besoin est une source récurrente de refonte coûteuse.

De quelles intégrations le système dépend-il, et à quel point sont-elles fiables ? Un site qui dépend de trois APIs externes a besoin de cache, de replis et de timeouts conçus dès le premier jour. Un site qui n’en dépend d’aucune est opérationnellement plus simple, mais probablement moins utile.

Quel est le profil de trafic réaliste, aujourd’hui et dans dix-huit mois ? Optimiser pour le trafic d’un futur hypothétique réussi est la forme la plus courante de mise à l’échelle prématurée. Concevoir pour le trafic réel, avec un chemin de mise à niveau propre, est presque toujours moins cher.

Qui est d’astreinte quand quelque chose casse ? Une architecture qui exige une capacité d’opérations 24/7 que l’organisation n’a pas est la mauvaise architecture pour cette organisation, peu importe à quel point elle a l’air propre sur le papier.

Quelle est l’enveloppe budgétaire, y compris l’année qui suit le lancement ? Le coût total de possession, pas le coût projet, est le bon chiffre. Les décisions d’architecture qui enferment le projet dans un contrat d’hébergement ou une stack fournisseur que le budget ne peut pas tenir sont une forme lente d’échec.

Que sait maintenir l’équipe, et qu’est-elle prête à apprendre ? Une équipe qui sait faire tourner une application Django proprement aura du mal avec un déploiement microservices polyglotte, et une équipe qui sait faire tourner du React moderne aura du mal avec une stack PHP héritée. Les décisions d’architecture qui ignorent les compétences réelles de l’équipe vieillissent mal. Le même point s’applique dans les contextes régulés ou ONG où la rotation de personnel est plus rapide : l’architecture doit survivre aux personnes, pas l’inverse.

Les anti-schémas à éviter

Quelques choix d’architecture reviennent dans presque chaque conversation de projet business et méritent rarement le coût qu’ils imposent.

Copier l’architecture d’un géant du tech pour un petit projet business. L’architecture qui fait tourner un service de streaming est la mauvaise architecture pour le site d’une PME. Elle porte une complexité opérationnelle que la plus petite équipe ne peut pas absorber. La bonne référence est un projet comparable, pas un projet célèbre.

Sur-ingénierer pour une échelle qui n’a pas été démontrée. Concevoir pour un million d’utilisateurs quand le plafond réaliste est dix mille fait payer une taxe de complexité maintenant pour un bénéfice qui n’arrivera peut-être jamais. Construisez pour la prochaine étape plausible, pas pour celle d’après imaginée.

La modernité pour elle-même. Choisir les outils les plus récents parce qu’ils sont les plus récents, sans un problème précis qu’ils résolvent mieux que l’alternative ennuyeuse, est la manière dont les équipes finissent avec une stack à la mode au premier jour et impossible à maintenir au cinq centième.

Ignorer le workflow éditorial. Une architecture techniquement belle mais qui exige un développeur pour publier un communiqué de presse est une architecture qui sera contournée dans l’année, souvent par un WordPress parallèle que personne n’avait prévu.

Traiter l’hébergement comme une note de bas de page. La décision d’hébergement fait partie de l’architecture. Choisir une stack que l’équipe ops interne ne peut pas faire tourner, ou une plateforme managée que le budget ne peut pas tenir, est la manière dont les systèmes sont reconstruits dix-huit mois plus tard pour des raisons qui n’ont rien à voir avec le code.

Conclusion

Une architecture web, c’est le système, pas la stack. La bonne pour un projet business est celle qui correspond à la forme du métier, à l’équipe, au budget et à l’horizon de temps, avec aussi peu de complexité supplémentaire que le projet peut se permettre. Les organisations qui tirent une valeur mesurable de leurs plateformes web ne sont pas celles avec les architectures les plus à la mode ; ce sont celles dont l’architecture est suffisamment ennuyeuse pour être maintenue, suffisamment précise pour correspondre au travail, et suffisamment humble pour être remplacée quand le métier évolue.

Le contexte plus large, dont les décisions de mode de rendu et de framework qui s’inscrivent un niveau en dessous de celle-ci, est rassemblé dans le cluster architecture web et plateformes. Et lorsque la question passe de « quelle doit être l’architecture » à « nous avons une architecture et il nous faut maintenant quelqu’un pour la construire correctement, avec le bon backend, le bon frontend et un codebase maintenable », c’est exactement ce sur quoi mon accompagnement développement d’applications web est centré.

- Haja Faniry

Services liés

Développement d'applications web

Développement d'applications web sur mesure pour entreprises, startups et organisations internationales.

Plateformes Numériques pour ONG & Organisations

Développement de plateformes numériques et systèmes de données pour ONG, institutions de recherche et organisations internationales.

Article précédent
Monolithe vs architecture modulaire pour les projets web modernes
Article suivant
Comment intégrer l’IA dans des systèmes existants
Choisir la bonne architecture web pour un projet business | Haja Faniry