Table of Contents
Software Stack
Return to Programming topics, Software engineering topics, DevOps topics, IT topics, Cloud Computing topics
Short description: Set of software subsystems or components needed to create a complete software platform
Redirects - Software stack - [[Stack (disambiguation), Stack
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 software architect defines the stack as the target operating system, web server, database, and programming language. Another version of a software stack is operating system, middleware, database, and applications.1) 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 (see full stack) is expected to be able to work in all the layers of the stack.
Examples
: OpenBSD (operating system) : C (programming language) : httpd (web server) : SQLite (database)
: Elasticsearch (search engine) : Logstash (event and log management tool) : Kibana (data visualization)
: Xen or KVM (hypervisor) : Linux with LVM (mass-storage device management) : Distributed Replicated Block Device (storage replication) : Ganeti (virtual machine cluster management tool) : Ganeti Web Manager (web interface)
: GemStone (database and application server) : Linux (operating system) : Apache (web server) : Smalltalk (programming language) : Seaside (web framework)
: GRANDstack:<ref name=“GrandStack”>
</ref> : GraphQL (data query and manipulation language) : React (web application presentation) : Apollo (Data Graph Platform) : Neo4j (database management systems)
; Jamstack:<ref name=“Jamstack”>
</ref> : JavaScript (programming language) : APIs (Application programming interfaces) : Markup (content)
; LAMP:<ref name=“FramptonComplete18”>
</ref> : Linux (operating system) : Apache (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (scripting languages)
; LAPP:<ref name=“RittinghouseCloud17”>
</ref> : Linux (operating system) : Apache (web server) : PostgreSQL (database management systems) : Perl, PHP, or Python (scripting languages)
; LEAP:<ref name=“KaislerObtain15”>
</ref> : Linux (operating system) : Eucalyptus (free and open-source alternative to the Amazon Elastic Compute Cloud) : AppScale (cloud computing-framework and free and open-source alternative to Google App Engine) : Python (programming language)
; LEMP/LNMP:<ref name=“LEMPHome”>
</ref> : Linux (operating system) : Nginx (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (scripting languages)
; LLMP<ref name=“JohnstonSetting09”>
</ref> : Linux (operating system) : Lighttpd (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (scripting languages)
; LYME and LYCE:<ref name=“SamkoughSolution16”>
</ref> : Linux (operating system) : Yaws (web server, written in Erlang) : Mnesia or CouchDB (database, written in Erlang) : Erlang (functional programming language)
; MAMP:<ref name=“CoucouvanisGetYour07”>
</ref> : Mac OS X (operating system) : Apache (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming languages)
; MARQS:<ref name=“FramptonComplete18” /> : Apache Mesos (node startup/shutdown) : Akka (toolkit) (actor implementation) : Riak (data store) : Apache Kafka (messaging) : Apache Spark (big data and MapReduce)
;MEAN:<ref name=“FramptonComplete18” /> : MongoDB (database) : Express.js (application controller layer) : AngularJS/Angular (web application presentation) : Node.js (web server)
; MERN:<ref name=“WilsonMERN18”>
</ref> : MongoDB (database) : Express.js (application controller layer) : React.js (web application presentation) : Node.js (web server)
; MEVN:<ref name=“SharmaFull18”>
</ref> : MongoDB (database) : Express.js (application controller layer) : Vue.js (web application presentation) : Node.js (web server)
; NMP:<ref name=“LunaProg17”>
</ref> : Nginx (web server) : MySQL or MariaDB (database) : PHP (programming language)
; OpenACS<ref name=“OpenACSWhatIs”>
</ref> : Linux or Windows (operating system) : NaviServer (web server) : OpenACS (web application framework) : PostgreSQL or Oracle Database (database) : Tcl (scripting language)
; 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:<ref name=“FramptonComplete18” /> : Apache Spark (big data and MapReduce) : Apache Mesos (node startup/shutdown) : Akka (toolkit) (actor implementation) : Apache Cassandra (database) : Apache Kafka (messaging)
; WAMP:<ref name=“AMPPS-WAMP”>
</ref> : Windows (operating system) : Apache (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming language)
; WIMP:<ref name=“AWSTutorialWIMP”>
</ref> : Windows (operating system) : Internet Information Services (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming language)
; WINS:<ref name=“EvgenHowTo18”>
</ref> : Windows Server (operating system) : Internet Information Services (web server) : .NET (software framework) : SQL Server (database)
; WISA:<ref name=“SachdevaWhich09”>
</ref> : Windows Server (operating system) : Internet Information Services (web server) : SQL Server (database) : ASP.NET (web framework)
; XAMPP:<ref name=“AFXAMPP”>
</ref> : cross-platform (operating system) : Apache (web server) : MariaDB or MySQL (database) : PHP (programming language) : Perl (programming language)
; XRX:<ref name=“McCrearyXRX”>
</ref> : XML database (database such as BaseX, eXist, MarkLogic Server) : XQuery (Query language) : REST (client interface) : XForms (client)
See also
References
- Snippet from Wikipedia: Solution stack
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, 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 application (front-end and back-end). A full-stack developer can be defined as a developer or an engineer who works with both the front and back end development of a website, web application or desktop application. This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects.