Solution stack

{{short description|Set of software subsystems or components needed to create a complete platform}}

{{Redirects|Software stack||Stack (disambiguation)#Computing{{!}}Stack § Computing}}

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.{{cite encyclopedia |url=https://encyclopedia2.thefreedictionary.com/Solution+stack |title=Solution stack |encyclopedia=Computer Desktop Encyclopedia |publisher=The Computer Language Company |year=2015 |access-date=5 July 2018}} 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.{{cite news|url=http://searchenterpriselinux.techtarget.com/news/interview/0,289202,sid39_gci880604,00.html|title=Red Hat: Linux served at vertical data center dinner tables|last=Mimoso|first=Michael S.|date=24 February 2003|work=SearchEnterpriseLinux.com|access-date=2009-08-09}} 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.{{cite web |url=https://www.webopedia.com/quick_ref/webstack_acronyms.asp |title=Acronym Guide to Web Stacks |author=Beal, V. |work=Webopedia |publisher=Quinstreet, Inc |date=7 September 2007 |access-date=5 July 2018}}

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.{{cite book |url=https://books.google.com/books?id=d4n0ZGQYQL8C&pg=PA616 |title=Using Microsoft SharePoint Portal Server |author=Ferguson, R. |publisher=Que Publishing |page=616 |year=2002 |isbn=9780789725707}}{{cite book |title=SAP Planning: Best Practices in Implementation |author=Anderson, G.W. |publisher=Sams |page=13 |year=2003 |isbn=9780789728753}}

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.{{Cite web |last=Amir |first=Masroor |title=Full Stack Developer - Complete Roadmap {{!}} Technologies in 2023 |url=https://www.thegeeksbot.com/2023/03/full-stack-developer-complete-roadmap.html |access-date=2023-04-27 |website=The Geeks Bot {{!}} A Computer Science Site for geeks |language=en}} This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects.

Examples

= OS-level stacks =

; BCHS{{cite web |url=http://www.learnbchs.org/ |title=BCHS Stack |author=Dzonsons, K. |access-date=5 July 2018}}

: OpenBSD (operating system)

: C (programming language)

: httpd (web server)

: SQLite (database)

; Ganeti{{cite web |url=http://docs.ganeti.org/ganeti/master/html/install.html |title=Ganeti installation tutorial |work=Ganeti Documentation |publisher=Google, Inc |access-date=5 July 2018}}

: 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)

; GLASS{{cite web |url=https://kalountos.wordpress.com/2015/06/03/a-beginners-guide-to-installing-and-configuring-glass-gemstone-64s-smalltalk-seaside-application-server-object-database-server-environment/ |title=A Beginners' Guide to Installing and Configuring GLASS: Gemstone 64/S Smalltalk / Seaside / Application Server / Object Database Server Environment |author=Glynn, A. |work=Horizons of Identity |date=3 June 2015 |access-date=5 July 2018}}

: GemStone (database and application server)

: Linux (operating system)

: Apache (web server)

: Smalltalk (programming language)

: Seaside (web framework)

; LAMP{{cite book |url=https://books.google.com/books?id=Y8FHDwAAQBAJ&pg=PA7 |title=Complete Guide to Open Source Big Data Stack |author=Frampton, M. |publisher=Apress |page=7 |year=2018 |isbn=9781484221495}}

: Linux (operating system)

: Apache (web server)

: MySQL or MariaDB (database management systems)

: Perl, PHP, or Python (scripting languages)

; LEAP{{cite book |url=https://books.google.com/books?id=ajM_CwAAQBAJ&pg=PT69 |title=Obtaining Value from Big Data for Service Delivery |author1=Kaisler, S.H. |author2=Amour, F. |author3=Espinosa, A. |author4=Money, W.H. |publisher=Business Expert Press |page=PT69 |year=2015 |isbn=9781631572234}}

: 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{{cite web |url=https://lemp.io/ |title=LEMP Stack Info |work=LEMP.io |access-date=6 July 2018}}

: Linux (operating system)

: Nginx (web server)

: MySQL or MariaDB (database management systems)

: Perl, PHP, or Python (scripting languages)

; LLMP{{cite web |url=http://www.chrisjohnston.org/ubuntu-tutorials/setting-up-a-llmp-stack-linux-lighttpd-mysql-php5-on-ubuntu-810 |title=Setting up a LLMP Stack (Linux, Lighttpd, MySQL, PHP5) on Ubuntu 8.10 |author=Johnston, C. |work=ChrisJohnston.org |date=18 February 2009 |access-date=6 July 2018 |archive-date=5 February 2019 |archive-url=https://web.archive.org/web/20190205042248/http://www.chrisjohnston.org/ubuntu-tutorials/setting-up-a-llmp-stack-linux-lighttpd-mysql-php5-on-ubuntu-810 |url-status=dead }}

: Linux (operating system)

: Lighttpd (web server)

: MySQL or MariaDB (database management systems)

: Perl, PHP, or Python (scripting languages)

; LYME and LYCE{{cite web |url=http://idioknowledge.blogspot.com/2016/07/solution-stack.html |title=Solution Stack |work=Idiosyncratic Knowledge |date=9 July 2016 |access-date=9 July 2016}}

: Linux (operating system)

: Yaws (web server, written in Erlang)

: Mnesia or CouchDB (database, written in Erlang)

: Erlang (functional programming language)

; MAMP{{cite journal |url=https://books.google.com/books?id=3gIAAAAAMBAJ&pg=PA85 |title=Get Your Wiki On |journal=Mac Life |author=Coucouvanis, N. |issue=5 |pages=83–86 |year=2007 |access-date=6 July 2018}}

: Mac OS X (operating system)

: Apache (web server)

: MySQL or MariaDB (database)

: PHP, Perl, or Python (programming languages)

; LAPP{{cite book |url=https://books.google.com/books?id=jB-9DgAAQBAJ&pg=PT184 |title=Cloud Computing: Implementation, Management, and Security |author1=Rittinghouse, J.W. |author2=Ransome, J.F. |publisher=CRC Press |page=PT184 |year=2017 |isbn=9781351615365}}

: Linux (operating system)

: Apache (web server)

: PostgreSQL (database management systems)

: Perl, PHP, or Python (scripting languages)

; MLVN{{cite book |chapter-url=https://books.google.com/books?id=3EBbDwAAQBAJ&pg=PA6 |chapter=Chapter 2: Introducing MEVN |title=Full-Stack Web Development with Vue.js and Node |author=Sharma, A. |publisher=Packt Publishing Ltd |pages=6–30 |year=2018 |isbn=9781788830775}}

: MongoDB (database)

: Linux (operating system)

: Varnish (software) (frontend cache)

: Node.js (JavaScript runtime)

; WAMP{{cite web |url=http://ampps.com/wamp |title=WAMP |publisher=Softaculous Ltd |access-date=6 July 2018}}

: Windows (operating system)

: Apache (web server)

: MySQL or MariaDB (database)

: PHP, Perl, or Python (programming language)

; WIMP{{cite web |url=https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-WIMP.html |title=Tutorial: Installing a WIMP Server on an Amazon EC2 Instance Running Windows Server |work=AWS Documentation |publisher=Amazon Web Services, Inc |access-date=6 July 2018}}

: Windows (operating system)

: Internet Information Services (web server)

: MySQL or MariaDB (database)

: PHP, Perl, or Python (programming language)

; WINS{{cite web |url=https://gbksoft.com/blog/how-to-choose-your-technology-stack/ |title=How to Choose Your Technology Stack for Web Development |author=Evgen |work=GBKSOFT Blog |publisher=GBKSOFT Dev LLC |date=28 January 2018 |access-date=6 July 2018}}

: Windows Server (operating system)

: Internet Information Services (web server)

: .NET (software framework)

: SQL Server (database)

; WISA{{cite web |url=https://www.developer.com/design/article.php/3822286/Which-Web-Application-Stack-Is-Best-for-Me.htm |title=Which Web Application Stack Is Best for Me? |author=Sachdeva, B. |work=developer.com |publisher=QuinStreet, Inc |date=27 May 2009 |access-date=6 July 2018}}

: 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 (database)

: ASP.NET (backend web framework)

: Vue.js (frontend web framework)

= OS-agnostic web stacks =

; ELK{{cite book |chapter-url=https://books.google.com/books?id=EfqoCwAAQBAJ&pg=PA1 |chapter=Chapter 1: Introduction to ELK Stack |title=Learning ELK Stack |author=Chhajed, S. |publisher=Packt Publishing Ltd |pages=1–22 |year=2015 |isbn=9781785886706}}

: Elasticsearch (search engine)

: Logstash (event and log management tool)

: Kibana (data visualization)

; GRANDstack{{cite web |url=https://grandstack.io/ |title=GRANDStack |access-date=24 Dec 2019}}

: GraphQL (data query and manipulation language)

: React (web application presentation)

: Apollo (Data Graph Platform)

: Neo4j (database management systems)

; JAMstack{{cite web |url=https://jamstack.org/ |title=JAMstack |access-date=5 July 2018}}

: JavaScript (programming language)

: APIs (Application programming interfaces)

: Markup (content)

; MARQS

: Apache Mesos (node startup/shutdown)

: Akka (toolkit) (actor implementation)

: Riak (data store)

: Apache Kafka (messaging)

: Apache Spark (big data and MapReduce)

;MEAN

: MongoDB (database)

: Express.js (application controller layer)

: AngularJS/Angular (web application presentation)

: Node.js (JavaScript runtime)

; MERN{{cite book |chapter-url=https://books.google.com/books?id=HnxeDwAAQBAJ&pg=PA7 |chapter=Chapter 1: Introduction to the MERN Stack |title=MERN Quick Start Guide |author=Wilson, E. |publisher=Packt Publishing Ltd |pages=7–13 |year=2018 |isbn=9781787280045}}

: MongoDB (database)

: Express.js (application controller layer)

: React.js (web application presentation)

: Node.js (JavaScript runtime)

; MEVN{{cite book |chapter-url=https://books.google.com/books?id=3EBbDwAAQBAJ&pg=PA6 |chapter=Chapter 1: Introducing MEVN |title=Full-Stack Web Development with Vue.js and Node |author=Sharma, A. |publisher=Packt Publishing Ltd |pages=6–30 |year=2018 |isbn=9781788830775}}

: MongoDB (database)

: Express.js (application controller layer)

: Vue.js (web application presentation)

: Node.js (JavaScript runtime)

; NMP{{cite book |url=https://books.google.com/books?id=VBVFDwAAQBAJ&pg=PA17 |title=Programador Web Full Stack: Desarrollo frontend y backend |author=Luna, F. |publisher=RedUSERS |pages=17–18 |year=2017}}

: Nginx (web server)

: MySQL or MariaDB (database)

: PHP (programming language)

; OpenACS{{cite web |url=https://openacs.org/about/what-is-openacs |title=OpenACS: What it is and why to use it |publisher=OpenACS Community |work=OpenACS.org |access-date=6 July 2018}}

: NaviServer (web server)

: OpenACS (web application framework)

: PostgreSQL or Oracle Database (database)

: Tcl (scripting language)

; PERN{{Cite web|date=2020-03-20|title=Learn the PERN Stack by building a web app - Full video course|url=https://www.freecodecamp.org/news/learn-the-pern-stack-full-course/|access-date=2021-06-19|website=freeCodeCamp.org|language=en}}

: PostgreSQL (database)

: Express.js (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 (big data and MapReduce)

: Apache Mesos (node startup/shutdown)

: Akka (toolkit) (actor implementation)

: Apache Cassandra (database)

: Apache Kafka (messaging)

; T-REx{{Cite web |title=TerminusDB on Twitter |url=https://twitter.com/terminusdb/status/1313507776224690178 |access-date=2020-10-14 |website=Twitter |language=en}}

: TerminusDB (scalable graph database)

: React (JavaScript web framework)

: Express.js (framework for Node.js)

; XAMPP{{cite web |url=https://www.apachefriends.org/index.html |title=XAMPP Apache + MariaDB + PHP + Perl |publisher=Apache Friends |access-date=6 July 2018}}

: cross-platform (operating system)

: Apache (web server)

: MariaDB or MySQL (database)

: PHP (programming language)

: Perl (programming language)

; XRX{{cite web |url=http://www.danmccreary.com/xrx/ |title=XRX |author=McCreary, D. |work=danmccreary.com |access-date=6 July 2018}}

: XML database (database such as BaseX, eXist, MarkLogic Server)

: XQuery (Query language)

: REST (client interface)

: XForms (client)

See also

References