In
computing, a solution stack or software stack is a set of
software subsystems or components needed to create a complete
platform such that no additional software is needed to support applications.
Applications are said to "run on" or "run on top of" the resulting platform.
For example, to develop a
web application, the architect defines the stack as the target
operating system,
web server
A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiate ...
,
database, and
programming language. Another version of a software stack is operating system,
middleware, database, and applications. Regularly, the components of a software stack are developed by different developers independently from one another.
Some components/subsystems of an overall system are chosen together often enough that the particular set is referred to by a name representing the whole, rather than by naming the parts. Typically, the name is an
acronym representing the individual components.
The term "solution stack" has, historically, occasionally included hardware components as part of a final product, mixing both the hardware and software in layers of support.
A full-stack developer is expected to be able to work in all the layers of the stack. A full-stack web developer can be defined by some as a developer or engineer who works with both the front and back ends of a website or application. This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects.
Examples
; BCHS
:
OpenBSD
OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
(operating system)
:
C (programming language)
:
httpd (web server)
:
SQLite (database)
; ELK
:
Elasticsearch (
search engine
A search engine is a software system designed to carry out web searches. They search the World Wide Web in a systematic way for particular information specified in a textual web search query. The search results are generally presented in a ...
)
:
Logstash (event and
log management tool)
:
Kibana (
data visualization
Data and information visualization (data viz or info viz) is an interdisciplinary field that deals with the graphic representation of data and information. It is a particularly efficient way of communicating when the data or information is num ...
)
; Ganeti
:
Xen
Xen (pronounced ) is a type-1 hypervisor, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. It was
originally developed by the University of Cambridge Computer Laboratory an ...
or
KVM (
hypervisor)
:
Linux with
LVM (mass-storage device management)
:
Distributed Replicated Block Device (storage
replication
Replication may refer to:
Science
* Replication (scientific method), one of the main principles of the scientific method, a.k.a. reproducibility
** Replication (statistics), the repetition of a test or complete experiment
** Replication crisi ...
)
:
Ganeti (
virtual machine cluster management tool)
:
Ganeti Web Manager
Ganeti Web Manager is a web-based management interface for the Ganeti solution stack for virtual machine clusters. In 2010 the project was under development at the OSU Open Source Lab which uses Ganeti for hosting open source software projects su ...
(web interface)
; GLASS
:
GemStone
A gemstone (also called a fine gem, jewel, precious stone, or semiprecious stone) is a piece of mineral crystal which, in cut and polished form, is used to make jewelry or other adornments. However, certain rocks (such as lapis lazuli, opal, ...
(database and application server)
:
Linux (operating system)
:
Apache
The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
(web server)
:
Smalltalk
Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Ka ...
(programming language)
:
Seaside (web framework)
;
GRANDstack
:
GraphQL (data query and manipulation language)
:
React (web application presentation)
:
Apollo (Data Graph Platform)
:
Neo4j (
database management system
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases span ...
s)
;
Jamstack
Jamstack, previously stylized as JAMStack, is a web development Software architecture, architecture pattern and solution stack. The initialism "JAM" stands for JavaScript, API and Markup language, Markup (generated by a static site generator) and w ...
:
JavaScript (programming language)
:
APIs
Apis or APIS may refer to:
* Apis (deity), an ancient Egyptian god
* Apis (Greek mythology), several different figures in Greek mythology
* Apis (city), an ancient seaport town on the northern coast of Africa
**Kom el-Hisn, a different Egyptian ci ...
(Application programming interfaces)
:
Markup (content)
;
LAMP
:
Linux (operating system)
:
Apache
The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
(web server)
:
MySQL or
MariaDB (
database management system
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases span ...
s)
:
Perl,
PHP, or
Python (
scripting languages)
; LAPP
:
Linux (operating system)
:
Apache
The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
(web server)
:
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
(database management systems)
:
Perl,
PHP, or
Python (scripting languages)
; LEAP
:
Linux (operating system)
:
Eucalyptus (free and open-source alternative to the
Amazon Elastic Compute Cloud)
:
AppScale
AppScale is a software company offering cloud infrastructure software and services to enterprises, government agencies, contractors, and third-party service providers. The company commercially supports one software product, AppScale ATS, a manage ...
(
cloud computing-framework and free and open-source alternative to
Google App Engine)
:
Python (programming language)
; LEMP/LNMP
:
Linux (operating system)
:
Nginx (web server)
:
MySQL or
MariaDB (database management systems)
:
Perl,
PHP, or
Python (scripting languages)
; LLMP
:
Linux (operating system)
:
Lighttpd (web server)
:
MySQL or
MariaDB (database management systems)
:
Perl,
PHP, or
Python (scripting languages)
;
LYME and
LYCE
:
Linux (operating system)
:
Yaws (web server, written in
Erlang)
:
Mnesia
Mnesia is a distributed, soft real-time database management system written in the Erlang programming language. It is distributed as part of the Open Telecom Platform.
Description
As with Erlang, Mnesia was developed by Ericsson for soft real ...
or
CouchDB (database, written in
Erlang)
:
Erlang (functional programming language)
;
MAMP
:
Mac OS X (operating system)
:
Apache
The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
(web server)
:
MySQL or
MariaDB (database)
:
PHP,
Perl, or
Python (programming languages)
; MARQS
:
Apache Mesos (node startup/shutdown)
:
Akka (toolkit) (actor implementation)
:
Riak (data store)
:
Apache Kafka
Apache Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala. The project aims to provide a unified, high-throughput, low-latency plat ...
(messaging)
:
Apache Spark
Apache Spark is an open-source unified analytics engine for large-scale data processing. Spark provides an interface for programming clusters with implicit data parallelism and fault tolerance. Originally developed at the University of Californi ...
(big data and MapReduce)
;
MEAN
:
MongoDB (database)
:
Express.js
Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been ...
(application controller layer)
:
AngularJS
AngularJS is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to simplify both the development ...
/
Angular (web application presentation)
:
Node.js (JavaScript runtime)
; MERN
:
MongoDB (database)
:
Express.js
Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been ...
(application controller layer)
:
React.js
React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces based on components. It is maintained by Meta (formerly Facebook) and a community of individual developers and com ...
(web application presentation)
:
Node.js (JavaScript runtime)
; MEVN
:
MongoDB (database)
:
Express.js
Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been ...
(application controller layer)
:
Vue.js (web application presentation)
:
Node.js (JavaScript runtime)
; MLVN
:
MongoDB (database)
:
Linux (operating system)
:
Varnish (software)
Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as well as APIs. In contrast to other web accelerators, such as Squid (software), Squid, which began life as a client-side cache, or Apache HTTP server, Apache and nginx ...
(frontend cache)
:
Node.js (JavaScript runtime)
;
NMP
:
Nginx (web server)
:
MySQL or
MariaDB (database)
:
PHP (programming language)
;
OpenACS
:
Linux or
Windows (operating system)
:
NaviServer
NaviServer is a high performance web server written in C (programming language), C and Tcl. It can be easily extended in either language to create web sites and services; there are over 35 modules available (including database integration or prot ...
(web server)
:
OpenACS (
web application framework)
:
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
or
Oracle Database
Oracle Database (commonly referred to as Oracle DBMS, Oracle Autonomous Database, or simply as Oracle) is a multi-model database management system produced and marketed by Oracle Corporation.
It is a database commonly used for running online t ...
(database)
:
Tcl (scripting language)
;
PERN
:
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
(database)
:
Express.js
Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been ...
(application controller layer)
:
React (JavaScript library) (web application presentation)
:
Node.js (JavaScript runtime)
;
PLONK
:
Prometheus (metrics and time-series)
:
Linkerd (service mesh)
:
OpenFaaS (management and auto-scaling of compute)
:
NATS (asynchronous message bus/queue)
:
Kubernetes (declarative, extensible, scale-out, self-healing clustering)
; SMACK
:
Apache Spark
Apache Spark is an open-source unified analytics engine for large-scale data processing. Spark provides an interface for programming clusters with implicit data parallelism and fault tolerance. Originally developed at the University of Californi ...
(big data and MapReduce)
:
Apache Mesos (
node startup/shutdown)
:
Akka (toolkit) (
actor implementation)
:
Apache Cassandra (database)
:
Apache Kafka
Apache Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala. The project aims to provide a unified, high-throughput, low-latency plat ...
(
messaging)
; T-REx
:
TerminusDB (scalable
graph database)
:
React (
JavaScript web framework)
:
Express
Express or EXPRESS may refer to:
Arts, entertainment, and media Films
* '' Express: Aisle to Glory'', a 1998 comedy short film featuring Kal Penn
* '' The Express: The Ernie Davis Story'', a 2008 film starring Dennis Quaid
Music
* ''Express'' ...
.js (framework for
Node.js)
;
WAMP
:
Windows (operating system)
:
Apache
The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
(web server)
:
MySQL or
MariaDB (database)
:
PHP,
Perl, or
Python (programming language)
;
WIMP
:
Windows (operating system)
:
Internet Information Services (web server)
:
MySQL or
MariaDB (database)
:
PHP,
Perl, or
Python (programming language)
; WINS
:
Windows Server (operating system)
:
Internet Information Services (web server)
:
.NET (
software framework
In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard ...
)
:
SQL Server (database)
; WISA
:
Windows Server (operating system)
:
Internet Information Services (web server)
:
SQL Server (database)
:
ASP.NET (web framework)
; WISAV/WIPAV
:
Windows Server (operating system)
:
Internet Information Services (web server)
:
Microsoft SQL Server/
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
(database)
:
ASP.NET (backend web framework)
:
Vue.js (frontend web framework)
;
XAMPP
:
cross-platform (operating system)
:
Apache
The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño an ...
(web server)
:
MariaDB or
MySQL (database)
:
PHP (programming language)
:
Perl (programming language)
;
XRX
:
XML database (database such as
BaseX,
eXist,
MarkLogic Server)
:
XQuery (Query language)
:
REST (
client interface)
:
XForms (client)
See also
*
Content management framework
*
Content management system
A content management system (CMS) is computer software used to manage the creation and modification of digital content (content management).''Managing Enterprise Content: A Unified Content Strategy''. Ann Rockley, Pamela Kostur, Steve Manning. New ...
*
List of Apache–MySQL–PHP packages
*
List of Nginx–MySQL–PHP packages
*
Web framework
References
{{reflist
Software architecture
Web frameworks