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.
Historiquement, le terme « pile de solutions » a 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)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)
- 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)