Article de reference

Pile de solutions

En informatique , une pile logicielle, également appelée pile technologique , est un ensemble de sous-systèmes ou de composants logiciels nécessaires à la création d'une platefo...

informatique , une pile logicielle, également appelée pile technologique , est un ensemble de sous-systèmes ou de composants logiciels nécessaires à la création d'une plateforme complète , de sorte qu'aucun logiciel supplémentaire ne soit requis pour la prise en charge des applications. On dit alors que les applications « s'exécutent sur » ou « s'exécutent par-dessus » la plateforme ainsi créée.

Par exemple, pour développer une application web , l'architecte définit la pile logicielle comme étant composée du système d'exploitation cible , du serveur web , de la base de données et du langage de programmation . Une autre version de la pile logicielle comprend le système d'exploitation, l'intergiciel , la base de données et les applications. Généralement, les composants d'une pile logicielle sont développés indépendamment les uns des autres par différents développeurs.

Certains composants/sous-systèmes d'un système global sont si souvent choisis ensemble que l'ensemble est désigné par un nom global plutôt que par la dénomination de ses parties. Généralement, ce nom est un acronyme représentant les composants individuels.

Le terme « pile de solutions » a, historiquement, parfois inclus des composants matériels dans un produit final, mélangeant à la fois le matériel et le logiciel dans des couches de support.

Un développeur full-stack doit être capable de travailler sur toutes les couches d'une application ( front-end et back-end ). On peut le définir comme un développeur ou un ingénieur qui intervient aussi bien sur le front-end que sur le back-end d'un site web, d'une application web ou d'une application de bureau. Cela signifie qu'il peut piloter la création de plateformes incluant les bases de données, les interfaces utilisateur et collaborer avec les clients lors de la phase de planification des projets.

MongoDB (base de données)
Linux (système d'exploitation)
Varnish (logiciel) (cache frontal)
Node.js (environnement d'exécution JavaScript)
WISAV/WIPAV
Serveur Windows (système d'exploitation)
Services d'information Internet (serveur Web)
Microsoft SQL Server / PostgreSQL (base de données)
ASP.NET (framework web backend)
Vue.js (framework web frontend)

Piles Web indépendantes du système d'exploitation

GRANDstack
GraphQL (langage de requête et de manipulation de données)
React (présentation d'application web)
Apollo (Plateforme de graphes de données)
Neo4j ( systèmes de gestion de bases de données )
JAMstack
JavaScript (langage de programmation)
API (Interfaces de programmation d'applications)
Balisage (contenu)
MOYENNE
MongoDB (base de données)
Express.js (couche contrôleur d'application)
AngularJS / Angular (présentation d'application web)
Node.js (environnement d'exécution JavaScript)
MERN
MongoDB (base de données)
Express.js (couche contrôleur d'application)
React.js (présentation d'application web)
Node.js (environnement d'exécution JavaScript)
MEVN
MongoDB (base de données)
Express.js (couche contrôleur d'application)
Vue.js (présentation d'application web)
Node.js (environnement d'exécution JavaScript)
PERN
PostgreSQL (base de données)
Express.js (couche contrôleur d'application)
React (bibliothèque JavaScript) (présentation d'application web)
Node.js (environnement d'exécution JavaScript)
T-REx
TerminusDB ( base de données graphiques évolutive )
React ( framework web JavaScript )
Express.js (framework pour Node.js )

piles de frameworks spécifiques

Pile Java-Spring

La pile Java- Spring est une architecture robuste et adaptée aux entreprises, construite autour du langage de programmation Java et de l'écosystème Spring. Son cœur est le framework Spring, qui fournit un modèle de programmation et de configuration complet pour les applications Java modernes. Cette pile inclut souvent Spring Boot, un projet qui simplifie la configuration des applications Spring grâce à une approche de type « convention plutôt que configuration », des serveurs embarqués et des configurations par défaut prêtes pour la production. Des composants supplémentaires tels que Spring MVC, Spring Data et Spring Security sont couramment utilisés pour la création d'applications web, l'accès aux bases de données et la mise en œuvre de l'authentification et de l'autorisation. La pile Java-Spring est fréquemment associée à des bases de données relationnelles comme MySQL ou PostgreSQL et généralement déployée à l'aide de conteneurs de servlets comme Apache Tomcat ou de plateformes telles que Spring Cloud pour les architectures de microservices. Reconnue pour sa scalabilité, sa modularité et sa stabilité à long terme, la pile Java-Spring est largement adoptée dans les environnements d'entreprise, notamment dans les secteurs de la finance, des télécommunications et des plateformes SaaS à grande échelle.

Pile Python-Django

La pile Python- Django utilise Python comme langage de programmation principal et Django comme framework web. Django est conçu pour encourager une conception claire et pragmatique, et suit le principe DRY (Don't Repeat Yourself). Il intègre de nombreuses fonctionnalités, telles que l'authentification des utilisateurs, une interface d'administration, la gestion des formulaires et un ORM puissant. Ces outils intégrés rendent Django particulièrement efficace pour les applications web riches en contenu ou utilisant intensivement les bases de données. Cette pile associe souvent Django à PostgreSQL ou SQLite comme base de données et s'exécute sur des serveurs web comme Gunicorn, derrière Nginx. Grâce à la lisibilité de Python et à la documentation complète de Django, cette pile est largement utilisée dans les plateformes éducatives, les applications scientifiques et les systèmes de gestion de contenu.

Pile Ruby on Rails

L' architecture Ruby on Rails repose sur le langage de programmation Ruby et le framework web Rails. Elle privilégie le principe de convention à la configuration , permettant ainsi aux développeurs de créer rapidement des applications en réduisant le besoin de code répétitif et de configuration manuelle. Ruby on Rails intègre un ensemble d'outils, tels qu'un système de mappage objet-relationnel (ORM), un générateur de code et une structure de répertoires, ce qui le rend particulièrement adapté au développement rapide d'applications. Son souci de simplicité et de confort d'utilisation en a fait un choix populaire auprès des startups et des petites équipes. Cette architecture comprend généralement une base de données PostgreSQL ou MySQL, un serveur web comme Puma ou Nginx, et des outils de déploiement tels que Capistrano ou Heroku.

Autres piles

Piles au niveau du système d'exploitation

BCHS
OpenBSD (système d'exploitation)
C (langage de programmation)
httpd (serveur web)
SQLite (base de données)
Ganeti
Xen ou KVM ( hyperviseur )
Linux avec LVM (gestion des périphériques de stockage de masse)
Périphérique de stockage par blocs répliqués distribués ( réplication du stockage )
Ganeti ( outil de gestion de clusters de machines virtuelles )
Gestionnaire Web Ganeti (interface web)
VERRE
GemStone (serveur de base de données et d'applications)
Linux (système d'exploitation)
Apache (serveur web)
Smalltalk (langage de programmation)
Bord de mer (framework web)
LAMPE
Linux (système d'exploitation)
Apache (serveur web)
MySQL ou MariaDB ( systèmes de gestion de bases de données )
Perl , PHP ou Python ( langages de script )
SAUT
Linux (système d'exploitation)
Eucalyptus (alternative libre et open source à Amazon Elastic Compute Cloud )
AppScale ( framework de cloud computing , alternative libre et open source à Google App Engine )
Python (langage de programmation)
LEMP/LNMP
Linux (système d'exploitation)
Nginx (serveur web)
MySQL ou MariaDB (systèmes de gestion de bases de données)
Perl , PHP ou Python (langages de script)
LLMP
Linux (système d'exploitation)
Lighttpd (serveur web)
MySQL ou MariaDB (systèmes de gestion de bases de données)
Perl , PHP ou Python (langages de script)
LYME et LYCE
Linux (système d'exploitation)
Yaws (serveur web, écrit en Erlang )
Mnesia ou CouchDB (base de données, écrite en Erlang )
Erlang (langage de programmation fonctionnelle)
MAMP
Mac OS X (système d'exploitation)
Apache (serveur web)
MySQL ou MariaDB (base de données)
PHP , Perl ou Python (langages de programmation)
LAPP
Linux (système d'exploitation)
Apache (serveur web)
PostgreSQL (systèmes de gestion de bases de données)
Perl , PHP ou Python (langages de script)
WAMP
Windows (système d'exploitation)
Apache (serveur web)
MySQL ou MariaDB (base de données)
PHP , Perl ou Python (langage de programmation)
WIMP
Windows (système d'exploitation)
Services d'information Internet (serveur Web)
MySQL ou MariaDB (base de données)
PHP , Perl ou Python (langage de programmation)
VICTOIRES
Serveur Windows (système d'exploitation)
Services d'information Internet (serveur Web)
.NET ( cadre logiciel )
Serveur SQL (base de données)
WISA
Serveur Windows (système d'exploitation)
Services d'information Internet (serveur Web)
Serveur SQL (base de données)
ASP.NET (framework web)

Piles Web indépendantes du système d'exploitation

EFFLEURON
Elasticsearch ( moteur de recherche )
Logstash (outil de gestion des événements et des journaux )
Kibana ( visualisation des données )
MARQS
Apache Mesos (démarrage/arrêt des nœuds)
Akka (boîte à outils) (implémentation d'acteurs)
Riak (entrepôt de données)
Apache Kafka (messagerie)
Apache Spark (big data et MapReduce)
NMP
Nginx (serveur web)
MySQL ou MariaDB (base de données)
PHP (langage de programmation)
OpenACS
NaviServer (serveur web)
OpenACS ( framework d'applications web )
Base de données PostgreSQL ou Oracle
Tcl (langage de script)
PINARD
Prometheus (métriques et séries temporelles)
Linkerd (maillage de services)
OpenFaaS (gestion et mise à l'échelle automatique des ressources de calcul)
NATS (bus/file d'attente de messages asynchrones)
Kubernetes (clustering déclaratif, extensible, à mise à l'échelle horizontale et à auto-réparation)
CLAC
Apache Spark (big data et MapReduce)
Apache Mesos ( démarrage/arrêt du nœud )
Akka (boîte à outils) ( implémentation d'acteurs )
Apache Cassandra (base de données)
Apache Kafka ( messagerie )
XAMPP
multiplateforme (système d'exploitation)
Apache (serveur web)
MariaDB ou MySQL (base de données)
PHP (langage de programmation)
Perl (langage de programmation)
XRX
Base de données XML (base de données telle que BaseX , eXist , MarkLogic Server )
XQuery (langage de requête)
REST ( interface client )
XForms (client)