Les piles de logiciels (Web stack en anglais) sont un ensemble de logiciels per­met­tant de dé­ve­lop­per des sites et des ap­pli­ca­tions Web. Le terme « stack » signifie en anglais « pile », dans la mesure où l’on utilise un em­pi­le­ment de logiciels pour le dé­ve­lop­pe­ment d’un projet, dont les com­po­sants in­di­vi­duels se com­plè­tent. Ces piles de logiciels pré­sen­tent une structure mi­ni­ma­liste et sont composées de la manière suivante :

  • un système d’ex­ploi­ta­tion ;
  • un serveur Web ;
  • une base de données ;
  • un in­ter­pré­teur de script.

En plus du matériel du serveur, cette pile de logiciels veille à ce que les in­for­ma­tions né­ces­saires au projet Web soient re­trans­mises au client (na­vi­ga­teur), qui re­tra­vaille les codes HTML, CSS et Ja­vaS­cript. Etant donné que les com­po­sants in­di­vi­duels d’une pile de logiciels peuvent être combinés à l’envoi, il existe de nom­breuses va­ria­tions qui vous aideront à parvenir à des résultats très dif­fé­rents. La com­bi­nai­son la plus populaire est l’ensemble de logiciels libres LAMP qui permet de cons­truire des serveurs de sites Web. LAMP est l’acronyme de Linux, Apache, MySQL et PHP.

Les com­po­sants tra­di­tion­nels d’une pile de logiciels

Les piles lo­gi­cielles peuvent être ren­for­cées par l’uti­li­sa­tion de fra­me­works, d’autres langages de script, d’un serveur Proxy ou de divers pro­grammes d’analyse. Les Web stacks sont composés d’au moins quatre logiciels :

Système d’ex­ploi­ta­tion

Le système d’ex­ploi­ta­tion est l’interface centrale entre le matériel du serveur (pro­ces­seur, mémoire vive, espace Web…) et les com­po­sants logiciels qui s’y ajoutent. C’est plus pré­ci­sé­ment le système d’ex­ploi­ta­tion qui a recours aux res­sources ma­té­rielles pour que la fonc­tion­na­lité de chacune des ap­pli­ca­tions, et notamment du serveur Web, puisse être assurée. Les systèmes d’ex­ploi­ta­tion com­pa­tibles avec les piles lo­gi­cielles sont, à titre d’exemple, Linux, Windows, Unix ou Mac OS.

Serveur Web

Le serveur Web est un logiciel installé sur le système d’ex­ploi­ta­tion et dont les documents sont trans­fé­rés au client. A l’aide du protocole de trans­mis­sion HTTP, la demande du client est transmise au serveur Web. Si le document demandé contient des éléments statiques comme des données HTML ou des images, le serveur Web intègre cette demande de manière directe, en livrant les données en question au client. En ce qui concerne le contenu dynamique, il ne peut être transmis qu’à l’aide de bases de données et de modules de script. Parmi les solutions de serveur Web les plus répandues, on peut compter Apache, Microsoft IIS ainsi que NGINX.

Base de données

Les systèmes de bases de données sont très im­por­tants pour tout projet Web. Les quantités de données sont traitées et stockées sur le long terme afin que le serveur Web puisse y avoir recours au moment opportun. A l’aide d’ex­ten­sions de serveur, les requêtes sont re­trans­mises. Elles génèrent à partir du résultat de la requête un format adapté (comme HTML par exemple) et le re­trans­met­tent au serveur Web. Le choix de la base de données est étroi­te­ment corrélé à celui du logiciel du serveur Web et au langage de script, ainsi qu’au langage de pro­gram­ma­tion. Les plus répandus sont Oracle, MySQL et MongoDB.

L’in­ter­pré­teur de script

Sans langage de script, le logiciel de serveur Web ne serait pas en mesure de créer des sites Web et des ap­pli­ca­tions dy­na­miques. D’une part, les in­ter­pré­teurs de scripts se trouvent côté client, c’est-à-dire qu’ils in­ter­ro­gent le na­vi­ga­teur. D’autre part, certains processus de calcul pour l’affichage des pages ont lieu via une écriture de scripts par le serveur. PHP est l’in­ter­pré­teur de script le plus répandu parmi les piles lo­gi­cielles. D’autres al­ter­na­tives po­pu­laires sont ASP.NET, Java, Ruby, Perl ou encore Python.

Voici les solutions de piles de logiciels

Toute une série de piles de logiciels a été éprouvée pour le dé­ve­lop­pe­ment Web. Ces dernières années, les exigences ont sen­si­ble­ment augmenté en matière de con­vi­via­lité pour les uti­li­sa­teurs, de stabilité, d’in­te­rac­ti­vité et d’évo­lu­ti­vité. Les ap­pli­ca­tions Web de­vien­nent plus complexes, et cela a mené à l’uti­li­sa­tion de piles de logiciels plus in­no­vantes, avec de nouvelles com­bi­nai­sons.

Ja­vaS­cript joue un rôle très important, même côté serveur. Les piles de logiciels pour ap­pli­ca­tions Web per­met­tent par exemple de mettre en œuvre des projets per­for­mants sur la pla­te­forme Node.js sur Ja­vaS­cript grâce à une pro­gram­ma­tion sim­pli­fiée. Découvrez ci-dessous trois piles de logiciels fortement ap­pré­ciées :

LAMP – le classique

LAMP est, comme évoqué pré­cé­dem­ment, la pile de logiciels la plus populaire. C’est une des premières à être sortie et est la com­bi­nai­son idéale pour tous vos projets Web. LAMP comprend :

  • Linux en tant que système d’ex­ploi­ta­tion
  • Apache en guise de serveur Web
  • Une base de données MySQL
  • L’in­ter­pré­teur de script PHP

Tous les com­po­sants de LAMP sont des logiciels open source et ont une licence dite libre (sinon les droits re­tour­ne­raient aux auteurs). Ils peuvent être modifiés et dé­ve­lop­pés con­ti­nuel­le­ment par la com­mu­nauté open source. De plus, ces logiciels sont gratuits. Ils ont, par exemple, été utilisés pour le dé­ve­lop­pe­ment de MediaWiki, logiciel de Wikipedia. La pile de logiciels de LAMP est tout à fait adaptée au dé­ve­lop­pe­ment de sites Web dy­na­miques. En tant qu’uti­li­sa­teur, vous bé­né­fi­ciez du support de la com­mu­nauté, qui est très large, de tutoriaux très concis et de la pos­si­bi­lité d’utiliser PHP ou d’autres outils per­for­mants comme php­MyAd­min. 

Au vu des progrès tech­niques constants et du dé­ve­lop­pe­ment de nouveaux logiciels libres gratuits, il existe donc de plus en plus de variantes parmi les piles de logiciels de LAMP. Parmi elles, on remarque l’uti­li­sa­tion plus répandue des com­po­sants suivants :

  • WAMP (Windows en tant que système d’ex­ploi­ta­tion)
  • MAMP (Mac OS X en tant que système d’ex­ploi­ta­tion)
  • XAMPP (système d’ex­ploi­ta­tion au choix, couplé avec Perl et PHP en tant qu’in­ter­pré­teur de script et un serveur FTP in­dé­pen­dant de toute pla­te­forme)
  • LAPP (Post­greSQL en tant que base de données pour les projets d’en­tre­prise)

Depuis que MariaDB (par les mêmes dé­ve­lop­peurs que MySQL) a été lancé, un nombre gran­dis­sant de projets ont été dé­ve­lop­pés avec ce logiciel. C’est un système de bases de données très apprécié. Découvrez en plus dans l’article suivant.

WISA – la pile de logiciels de Microsoft

Con­trai­re­ment au fonc­tion­ne­ment du serveur LAMP, pour lequel les com­po­sants in­di­vi­duels n’ont pas été dé­ve­lop­pés pour être combinés, le Web stack WISA est une pile de logiciels dont les éléments ont été dé­ve­lop­pés pour fonc­tion­ner ensemble. Microsoft a programmé chaque élément de WISA pour que les uti­li­sa­teurs de ce pack logiciel puissent bé­né­fi­cier d’un fonc­tion­ne­ment fluide. Cependant, la licence n’est pas libre, à l’inverse de la pile de logiciels LAMP. Mais les uti­li­sa­teurs peuvent bé­né­fi­cier du support technique de Microsoft. La com­po­si­tion de WISA est la suivante :

  • Le système d’ex­ploi­ta­tion Windows Server
  • Le logiciel de serveur Web Internet In­for­ma­tion Services (IIS)
  • Le système re­la­tion­nel de gestion de bases de données SQL Server
  • La bi­blio­thèque de langages de pro­gram­ma­tion ASP.NET

Grâce à la bi­blio­thèque ASP.NET, les projets Web basés sur Visual C# ou Visual Basic.NET peuvent être pro­gram­més à l’aide d’un com­pi­la­teur qui exécute les dif­fé­rentes actions di­rec­te­ment sur le système. WISA ne nécessite donc pas l’uti­li­sa­tion d’un in­ter­pré­teur de script, ce qui entraîne une per­for­mance accrue. Cette pile de logiciels de Microsoft est donc une ex­cel­lente solution pour les projets Web complexes et ambitieux.

MEAN – une pile de logiciels modernes pour les ap­pli­ca­tions Web monopages

La pile de logiciels MEAN présente une approche dif­fé­rente aux autres Web stacks. Tout d’abord, il est important de savoir que son uti­li­sa­tion nécessite, au vu de ses com­po­sants, une maîtrise des langages de pro­gram­ma­tion pour les serveurs (PHP entre autres) et les clients (par exemple Ja­vaS­cript). Les éléments de cette pile de logiciels moderne sont com­pa­tibles avec Ja­vaS­cript. Les systèmes d’ex­ploi­ta­tion sont moins im­por­tants avec MEAN. Ses com­po­sants sont les suivants :

  • La base de données NoSQL MongoDB
  • Le framework d’ap­pli­ca­tions Web côté client Express.js
  • Le framework en front-end côté client AngularJS
  • und die auf der Ja­vaS­cript-Lauf­zei­tum­ge­bung auf­bauende Plattform Node.js.

Les avantages de ce Web stack reposent sur un processus de dé­ve­lop­pe­ment simplifié à l’extrême et plus rapide, ainsi qu’un bon éche­lon­nage de votre projet Web. Cette pile de logiciels est avant adaptée aux ap­pli­ca­tions Web monopages orientées vers les uti­li­sa­teurs et les ap­pli­ca­tions mobiles (notamment grâce à la trans­mis­sion des données et des documents en format JSON). Il existe des va­ria­tions à MEAN, à l’image de MEEN (avec Ember.js en guise de framework en frontend). Ou encore MERN (avec React.js en guise de framework en frontend).

La pla­te­forme Meteor de Ja­vaS­cript offre un service en com­plé­ment à la pile de logiciels MEAN.

Comment trouver la pile de logiciels adaptée à vos besoins ?

Le pack logiciel le plus adapté à vos besoins en matière de dé­ve­lop­pe­ment et de temps à investir dépend de votre projet Web et de son ampleur. Les piles de logiciels de Ja­vaS­cript sont par exemple orientées en première ligne vers la réa­li­sa­tion d’ap­pli­ca­tions Web monopages. Les Web stacks plus clas­siques, qui se basent sur PHP, Python ou Perl pré­sen­tent quant-à-eux des avantages pour les projets mul­ti­pages. Les langages de pro­gram­ma­tion et le degré de con­nais­sances dans ce domaine jouent également un rôle pré­pon­dé­rant dans le choix de la pile de logiciels adaptée.

Vous ob­tien­drez de meilleurs résultats si vous optez pour un Web stack dont vous disposez des con­nais­sances né­ces­saires en fonction des langages de pro­gram­ma­tion utilisés. Bien entendu, d’autres critères entrent en compte, comme la per­for­mance ou la stabilité offerte par la pile de logiciels. N’oubliez pas de veiller au fait que vous pourrez avoir recours à des com­po­sants al­ter­na­tifs, comme nginx par exemple en guise de logiciel de serveur Web pour les projets qui génèrent beaucoup de trafic.

Aller au menu principal