Le stack comme base des plateformes et portails en ligne
« Stack » sonne comme du jargon, mais désigne quelque chose de concret : une combinaison fixe de composants logiciels accordés entre eux. Comment une telle pile est structurée et ce qu’elle change concrètement pour les projets de plateforme.
Lorsqu’on n’a pas affaire à l’informatique au quotidien, le terme « stack » ne dit pas grand-chose. Il ne désigne pas une catégorie de produits, mais une approche : au lieu de décider à chaque projet quelles technologies utiliser, vous définissez une combinaison de composants et construisez toutes les plateformes sur cette base.
Ce qu’est un stack
« Stack » signifie littéralement « pile ». On désigne ainsi un ensemble de composants logiciels accordés entre eux et dont les fonctions se complètent. Chaque composant couvre un domaine de tâches, chacun constitue en soi un environnement fermé, et ils proviennent souvent de fabricants différents. La structure modulaire est caractéristique : la pile se lit couche par couche et se remplace couche par couche.
De quoi se compose un stack
L’exemple le plus connu, LAMP, montre bien sa composition :
- Linux comme système d’exploitation
- Apache comme serveur web
- MySQL comme base de données
- PHP comme langage de programmation
Tout est alors réuni pour mettre une application web en ligne. Dans la pratique, d’autres composants s’y ajoutent :
- Langages de programmation et frameworks
- Bases de données et index de recherche
- Outils front-end
- Outils back-end
- Outils de conteneurs et de déploiement
- Applications connectées via des API
Front-end, back-end et la question de la spécialisation
Le développement de plateformes, de logiciels et de sites web se divise en deux domaines. Dans un CMS, le front-end est l’interface visible, le back-end l’espace d’administration où vous saisissez et gérez les contenus. Le front-end porte sur la conception, l’interaction et la trouvabilité, le back-end sur le modèle de données, les intégrations et l’architecture.
Pour ces deux domaines, plusieurs chemins mènent au même résultat. Outre LAMP, il existe par exemple WIMP, avec Windows comme système d’exploitation et IIS comme serveur web. Qui sert les deux travaille avec deux fois plus de systèmes, de langages et de particularités. C’est pourquoi nous nous engageons sur un seul stack, dans lequel toute l’équipe se spécialise. Qui en maîtrise toutes les couches travaille en développement full stack.
Cela a des conséquences concrètes. Le savoir se transmet en interne, parce que tout le monde travaille avec les mêmes outils. Les projets restent compatibles entre eux. Et aucun projet ne dépend d’une seule personne qui serait la seule à connaître une technologie donnée.
À quoi sert un stack
Un portail client a besoin de plus qu’une application : un système d’exploitation, un serveur web, une couche de conteneurs, un langage de programmation, un framework applicatif et une base de données. Le stack fournit cette base toute prête : accordée, testée et éprouvée en exploitation. Une part considérable du risque technique disparaît ainsi avant même que la première ligne de logique métier ne soit écrite.
Le stack détermine en même temps sur quelle base les extensions sont développées et comment les composants échangent des données. C’est précisément cet accord qui décide ensuite de la vitesse et de la stabilité.
Pourquoi notre stack mise sur l’open source
Nous misons sur des composants open source éprouvés : Symfony comme framework applicatif, API Platform pour les interfaces, Sylius pour l’e-commerce, MariaDB et Apache Solr pour les données et la recherche. Le stack reste ainsi conçu pour une exploitation à long terme, tout en restant souple : certains composants peuvent être remplacés sans toucher à l’ensemble de la plateforme.
En dessous se trouve l’infrastructure. Nous exploitons les plateformes dans des conteneurs Docker, orchestrés avec Docker Swarm et gérés via Portainer, sur notre propre infrastructure dans le VDC suisse. Le système d’exploitation et la version de PHP sont encapsulés par conteneur et définis dans l’image. Un changement d’infrastructure reste ainsi une opération maîtrisable plutôt qu’un projet de migration.
Comme le stack est continu, de l’infrastructure à la plateforme et au logiciel, l’installation et le déploiement sont largement standardisés. Cela réduit la complexité de l’exploitation et simplifie l’administration.
La standardisation profite aussi à la sécurité : les tests tournent en routine sur toutes les plateformes, et une faille est corrigée une seule fois, de manière centralisée, plutôt que dans chaque projet séparément.
Les avantages en bref
- Une technologie clairement définie plutôt que des décisions au cas par cas
- Une standardisation qui réduit l’effort et les sources d’erreur
- Un transfert de connaissances au sein de l’équipe, parce que tout le monde connaît les mêmes outils
- La compatibilité entre les projets
- Moins de dépendance envers des personnes isolées
- Un déploiement standardisé et une exploitation selon des règles fixes
- De la vitesse grâce à des composants accordés entre eux
Ce que cela signifie pour votre projet
Gestion des comptes utilisateur, rôles et droits, couche API, CMS, hébergement, monitoring : ces exigences reviennent dans presque chaque projet de plateforme. Chez nous, elles proviennent du stack, soit environ 60 % de la plateforme finie. Les 40 % restants sont ce qui fait votre activité : modèle d’affaires, processus, interface. La vue d’ensemble du cloudtec Stack montre en détail comment le stack est structuré.