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 =
: OpenBSD (operating system)
: C (programming language)
: httpd (web server)
: SQLite (database)
: 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)
; 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)
: 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)
: 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)
: PHP, Perl, or Python (programming languages)
: Linux (operating system)
: Apache (web server)
: PostgreSQL (database management systems)
: Perl, PHP, or Python (scripting languages)
: 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)
: 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)
: PHP, Perl, or Python (programming language)
: Windows Server (operating system)
: Internet Information Services (web server)
: SQL Server (database)
: 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 =
: Elasticsearch (search engine)
: Logstash (event and log management tool)
; 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)
: 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)
: MongoDB (database)
: Express.js (application controller layer)
: Vue.js (web application presentation)
: Node.js (JavaScript runtime)
: Nginx (web server)
: 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)
: 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)
: Apache Spark (big data and MapReduce)
: Apache Mesos (node startup/shutdown)
: Akka (toolkit) (actor implementation)
: Apache Cassandra (database)
: 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)
: 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)
: XForms (client)