Solution stack: Difference between revisions
I linked a web page where the term full stack developer is fully explained .so the people can understand what full stack developer is and other info. Tags: Reverted Visual edit |
ShelfSkewed (talk | contribs) (disambiguation) redirect for intentional link to dab page per WP:INTDABLINK Tag: Disambiguation links added |
||
(47 intermediate revisions by 40 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|Set of software subsystems or components needed to create a complete platform}} |
{{short description|Set of software subsystems or components needed to create a complete platform}} |
||
{{Redirects|Software stack||Stack (disambiguation)#Computing}} |
{{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 [[Computing platform|platform]] such that no additional software is needed to support applications.<ref name="CDESolution15">{{cite |
In [[computing]], a '''solution stack''' or '''software stack''' is a set of [[software]] subsystems or components needed to create a complete [[Computing platform|platform]] such that no additional software is needed to support applications.<ref name="CDESolution15">{{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}}</ref> 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.<ref>{{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}}</ref> Regularly, the components of a software stack are developed by different developers independently from one another. |
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.<ref>{{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}}</ref> 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.<ref name="BealAcronym07">{{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}}</ref> |
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.<ref name="BealAcronym07">{{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}}</ref> |
||
Line 10: | Line 10: | ||
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.<ref name="FergusonSpecial02">{{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}}</ref><ref name="AndersonSAP03">{{cite book |title=SAP Planning: Best Practices in Implementation |author=Anderson, G.W. |publisher=Sams |page=13 |year=2003 |isbn=9780789728753}}</ref> |
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.<ref name="FergusonSpecial02">{{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}}</ref><ref name="AndersonSAP03">{{cite book |title=SAP Planning: Best Practices in Implementation |author=Anderson, G.W. |publisher=Sams |page=13 |year=2003 |isbn=9780789728753}}</ref> |
||
A ''' |
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 [[Programmer|developer]] or an engineer who works with both the front and back end development of a website, web application or desktop application.<ref>{{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}}</ref> This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects. |
||
== Examples == |
== Examples == |
||
=== OS-level stacks === |
|||
; BCHS:<ref name="DzonsonsBCHS">{{cite web |url=http://www.learnbchs.org/ |title=BCHS Stack |author=Dzonsons, K. |access-date=5 July 2018}}</ref> |
|||
; BCHS<ref name="DzonsonsBCHS">{{cite web |url=http://www.learnbchs.org/ |title=BCHS Stack |author=Dzonsons, K. |access-date=5 July 2018}}</ref> |
|||
: [[OpenBSD]] (operating system) |
: [[OpenBSD]] (operating system) |
||
: [[C (programming language)|C]] (programming language) |
: [[C (programming language)|C]] (programming language) |
||
: [[OpenBSD# |
: [[OpenBSD#Subprojects|httpd]] (web server) |
||
: [[SQLite]] (database) |
: [[SQLite]] (database) |
||
; |
; Ganeti<ref name="GanetiInstall">{{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}}</ref> |
||
: [[Elasticsearch]] ([[search engine]]) |
|||
: [[Logstash]] (event and [[log management]] tool) |
|||
: [[Kibana]] ([[data visualization]]) |
|||
; Ganeti:<ref name="GanetiInstall">{{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}}</ref> |
|||
: [[Xen]] or [[Kernel-based Virtual Machine|KVM]] ([[hypervisor]]) |
: [[Xen]] or [[Kernel-based Virtual Machine|KVM]] ([[hypervisor]]) |
||
: [[Linux]] with [[Logical Volume Manager (Linux)|LVM]] (mass-storage device management) |
: [[Linux]] with [[Logical Volume Manager (Linux)|LVM]] (mass-storage device management) |
||
Line 31: | Line 27: | ||
: [[Ganeti Web Manager]] (web interface) |
: [[Ganeti Web Manager]] (web interface) |
||
; GLASS |
; GLASS<ref name="GlynnABegin15">{{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}}</ref> |
||
: [[Gemstone (database)|GemStone]] (database and application server) |
: [[Gemstone (database)|GemStone]] (database and application server) |
||
: [[Linux]] (operating system) |
: [[Linux]] (operating system) |
||
Line 38: | Line 34: | ||
: [[Seaside web framework|Seaside]] (web framework) |
: [[Seaside web framework|Seaside]] (web framework) |
||
; [[ |
; [[LAMP (software bundle)|LAMP]]<ref name="FramptonComplete18">{{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}}</ref> |
||
: [[GraphQL]] (data query and manipulation language) |
|||
: [[React (web framework)|React]] (web application presentation) |
|||
: [[Apollo]] (Data Graph Platform) |
|||
: [[Neo4j]] ([[database management system]]s) |
|||
; [[Jamstack]]:<ref name="Jamstack">{{cite web |url=https://jamstack.org/ |title=JAMstack |access-date=5 July 2018}}</ref> |
|||
: [[JavaScript]] (programming language) |
|||
: [[API|APIs]] (Application programming interfaces) |
|||
: [[Markup language|Markup]] (content) |
|||
; [[LAMP (software bundle)|LAMP]]:<ref name="FramptonComplete18">{{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}}</ref> |
|||
: [[Linux]] (operating system) |
: [[Linux]] (operating system) |
||
: [[Apache HTTP Server|Apache]] (web server) |
: [[Apache HTTP Server|Apache]] (web server) |
||
Line 55: | Line 40: | ||
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] ([[scripting language]]s) |
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] ([[scripting language]]s) |
||
; |
; LEAP<ref name="KaislerObtain15">{{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}}</ref> |
||
: [[Linux]] (operating system) |
|||
: [[Apache HTTP Server|Apache]] (web server) |
|||
: [[PostgreSQL]] (database management systems) |
|||
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] (scripting languages) |
|||
; LEAP:<ref name="KaislerObtain15">{{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}}</ref> |
|||
: [[Linux]] (operating system) |
: [[Linux]] (operating system) |
||
: [[Eucalyptus (software)|Eucalyptus]] (free and open-source alternative to the [[Amazon Elastic Compute Cloud]]) |
: [[Eucalyptus (software)|Eucalyptus]] (free and open-source alternative to the [[Amazon Elastic Compute Cloud]]) |
||
Line 67: | Line 46: | ||
: [[Python (programming language)|Python]] (programming language) |
: [[Python (programming language)|Python]] (programming language) |
||
; LEMP/LNMP |
; LEMP/LNMP<ref name="LEMPHome">{{cite web |url=https://lemp.io/ |title=LEMP Stack Info |work=LEMP.io |access-date=6 July 2018}}</ref> |
||
: [[Linux]] (operating system) |
: [[Linux]] (operating system) |
||
: [[Nginx]] (web server) |
: [[Nginx]] (web server) |
||
Line 73: | Line 52: | ||
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] (scripting languages) |
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] (scripting languages) |
||
; LLMP<ref name="JohnstonSetting09">{{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}}</ref> |
; LLMP<ref name="JohnstonSetting09">{{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 }}</ref> |
||
: [[Linux]] (operating system) |
: [[Linux]] (operating system) |
||
: [[Lighttpd]] (web server) |
: [[Lighttpd]] (web server) |
||
Line 79: | Line 58: | ||
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] (scripting languages) |
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] (scripting languages) |
||
; [[LYME (software bundle)|LYME]] and [[LYCE (software bundle)|LYCE]] |
; [[LYME (software bundle)|LYME]] and [[LYCE (software bundle)|LYCE]]<ref name="SamkoughSolution16">{{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}}</ref> |
||
: [[Linux]] (operating system) |
: [[Linux]] (operating system) |
||
: [[Yaws (web server)|Yaws]] (web server, written in [[Erlang (programming language)|Erlang]]) |
: [[Yaws (web server)|Yaws]] (web server, written in [[Erlang (programming language)|Erlang]]) |
||
Line 85: | Line 64: | ||
: [[Erlang (programming language)|Erlang]] (functional programming language) |
: [[Erlang (programming language)|Erlang]] (functional programming language) |
||
; [[MAMP]] |
; [[MAMP]]<ref name="CoucouvanisGetYour07">{{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}}</ref> |
||
: [[Mac OS X]] (operating system) |
: [[Mac OS X]] (operating system) |
||
: [[Apache HTTP Server|Apache]] (web server) |
: [[Apache HTTP Server|Apache]] (web server) |
||
Line 91: | Line 70: | ||
: [[PHP]], [[Perl]], or [[Python (programming language)|Python]] (programming languages) |
: [[PHP]], [[Perl]], or [[Python (programming language)|Python]] (programming languages) |
||
; LAPP<ref name="RittinghouseCloud17">{{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}}</ref> |
|||
; MARQS:<ref name="FramptonComplete18" /> |
|||
: [[Linux]] (operating system) |
|||
: [[Apache HTTP Server|Apache]] (web server) |
|||
: [[PostgreSQL]] (database management systems) |
|||
: [[Perl]], [[PHP]], or [[Python (programming language)|Python]] (scripting languages) |
|||
; MLVN<ref>{{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}}</ref> |
|||
: [[MongoDB]] (database) |
|||
: [[Linux]] (operating system) |
|||
: [[Varnish (software)]] (frontend cache) |
|||
: [[Node.js]] (JavaScript runtime) |
|||
; [[WAMP]]<ref name="AMPPS-WAMP">{{cite web |url=http://ampps.com/wamp |title=WAMP |publisher=Softaculous Ltd |access-date=6 July 2018}}</ref> |
|||
: [[Microsoft Windows|Windows]] (operating system) |
|||
: [[Apache HTTP Server|Apache]] (web server) |
|||
: [[MySQL]] or [[MariaDB]] (database) |
|||
: [[PHP]], [[Perl]], or [[Python (programming language)|Python]] (programming language) |
|||
; [[WIMP (software bundle)|WIMP]]<ref name="AWSTutorialWIMP">{{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}}</ref> |
|||
: [[Microsoft Windows|Windows]] (operating system) |
|||
: [[Internet Information Services]] (web server) |
|||
: [[MySQL]] or [[MariaDB]] (database) |
|||
: [[PHP]], [[Perl]], or [[Python (programming language)|Python]] (programming language) |
|||
; WINS<ref name="EvgenHowTo18">{{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}}</ref> |
|||
: [[Windows Server]] (operating system) |
|||
: [[Internet Information Services]] (web server) |
|||
: [[.NET Framework|.NET]] ([[software framework]]) |
|||
: [[Microsoft SQL Server | SQL Server]] (database) |
|||
; WISA<ref name="SachdevaWhich09">{{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}}</ref> |
|||
: [[Windows Server]] (operating system) |
|||
: [[Internet Information Services]] (web server) |
|||
: [[Microsoft SQL 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<ref name="ChhajedLearning15">{{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}}</ref> |
|||
: [[Elasticsearch]] ([[search engine]]) |
|||
: [[Logstash]] (event and [[log management]] tool) |
|||
: [[Kibana]] ([[data visualization]]) |
|||
; GRANDstack<ref name="GrandStack">{{cite web |url=https://grandstack.io/ |title=GRANDStack |access-date=24 Dec 2019}}</ref> |
|||
: [[GraphQL]] (data query and manipulation language) |
|||
: [[React (web framework)|React]] (web application presentation) |
|||
: [[Meteor_(web_framework)|Apollo]] (Data Graph Platform) |
|||
: [[Neo4j]] ([[database management system]]s) |
|||
; [[JAMstack]]<ref name="Jamstack">{{cite web |url=https://jamstack.org/ |title=JAMstack |access-date=5 July 2018}}</ref> |
|||
: [[JavaScript]] (programming language) |
|||
: [[API|APIs]] (Application programming interfaces) |
|||
: [[Markup language|Markup]] (content) |
|||
; MARQS<ref name="FramptonComplete18" /> |
|||
: [[Apache Mesos]] (node startup/shutdown) |
: [[Apache Mesos]] (node startup/shutdown) |
||
: [[Akka (toolkit)]] (actor implementation) |
: [[Akka (toolkit)]] (actor implementation) |
||
Line 98: | Line 137: | ||
: [[Apache Spark]] (big data and MapReduce) |
: [[Apache Spark]] (big data and MapReduce) |
||
;[[MEAN (solution stack)|MEAN]] |
;[[MEAN (solution stack)|MEAN]]<ref name="FramptonComplete18" /> |
||
: [[MongoDB]] (database) |
: [[MongoDB]] (database) |
||
: [[Express.js]] (application controller layer) |
: [[Express.js]] (application controller layer) |
||
: [[AngularJS]]/[[Angular (web framework)|Angular]] (web application presentation) |
: [[AngularJS]]/[[Angular (web framework)|Angular]] (web application presentation) |
||
: [[Node.js]] ( |
: [[Node.js]] (JavaScript runtime) |
||
; MERN |
; [[MEAN (solution stack)|MERN]]<ref name="WilsonMERN18">{{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}}</ref> |
||
: [[MongoDB]] (database) |
: [[MongoDB]] (database) |
||
: [[Express.js]] (application controller layer) |
: [[Express.js]] (application controller layer) |
||
: [[React.js]] (web application presentation) |
: [[React.js]] (web application presentation) |
||
: [[Node.js]] ( |
: [[Node.js]] (JavaScript runtime) |
||
; MEVN |
; MEVN<ref>{{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}}</ref> |
||
: [[MongoDB]] (database) |
: [[MongoDB]] (database) |
||
: [[Express.js]] (application controller layer) |
: [[Express.js]] (application controller layer) |
||
: [[Vue.js]] (web application presentation) |
: [[Vue.js]] (web application presentation) |
||
: [[Node.js]] ( |
: [[Node.js]] (JavaScript runtime) |
||
; |
; NMP<ref name="LunaProg17">{{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}}</ref> |
||
: [[Nginx]] (web server) |
: [[Nginx]] (web server) |
||
: [[MySQL]] or [[MariaDB]] (database) |
: [[MySQL]] or [[MariaDB]] (database) |
||
: [[PHP]] (programming language) |
: [[PHP]] (programming language) |
||
; [[OpenACS]] |
; [[OpenACS]]<ref name="OpenACSWhatIs">{{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}}</ref> |
||
: [[Linux]] or [[Microsoft Windows|Windows]] (operating system) |
|||
: [[NaviServer]] (web server) |
: [[NaviServer]] (web server) |
||
: [[OpenACS]] ([[web application framework]]) |
: [[OpenACS]] ([[web application framework]]) |
||
Line 128: | Line 166: | ||
: [[Tcl]] (scripting language) |
: [[Tcl]] (scripting language) |
||
; |
; PERN<ref>{{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}}</ref> |
||
: [[PostgreSQL]] (database) |
: [[PostgreSQL]] (database) |
||
: [[Express.js]] (application controller layer) |
: [[Express.js]] (application controller layer) |
||
: [[React (JavaScript library)]] (web application presentation) |
: [[React (JavaScript library)]] (web application presentation) |
||
: [[Node.js]] ( |
: [[Node.js]] (JavaScript runtime) |
||
; |
; PLONK |
||
: [[Prometheus]] (metrics and time-series) |
: [[Prometheus (software)|Prometheus]] (metrics and time-series) |
||
: [[Linkerd]] (service mesh) |
: [[Linkerd]] (service mesh) |
||
: |
: OpenFaaS (management and auto-scaling of compute) |
||
: [[NATS Messaging|NATS]] (asynchronous message bus/queue) |
: [[NATS Messaging|NATS]] (asynchronous message bus/queue) |
||
: [[Kubernetes]] (declarative, extensible, scale-out, self-healing clustering) |
: [[Kubernetes]] (declarative, extensible, scale-out, self-healing clustering) |
||
; SMACK |
; SMACK<ref name="FramptonComplete18" /> |
||
: [[Apache Spark]] (big data and MapReduce) |
: [[Apache Spark]] (big data and MapReduce) |
||
: [[Apache Mesos]] ([[Node (computer science)|node]] startup/shutdown) |
: [[Apache Mesos]] ([[Node (computer science)|node]] startup/shutdown) |
||
Line 148: | Line 186: | ||
: [[Apache Kafka]] ([[Stream processing|messaging]]) |
: [[Apache Kafka]] ([[Stream processing|messaging]]) |
||
; T-REx<ref>{{Cite web |title=TerminusDB on Twitter |url=https://twitter.com/terminusdb/status/1313507776224690178 |access-date=2020-10-14 |website=Twitter |language=en}}</ref> |
|||
; T-REx |
|||
:<ref>{{Cite web|title=https://twitter.com/terminusdb/status/1313507776224690178|url=https://twitter.com/terminusdb/status/1313507776224690178|access-date=2020-10-14|website=Twitter|language=en}}</ref> |
|||
: [[TerminusDB]] (scalable [[graph database]]) |
: [[TerminusDB]] (scalable [[graph database]]) |
||
: [[React (web framework)|React]] ([[JavaScript]] web framework) |
: [[React (web framework)|React]] ([[JavaScript]] web framework) |
||
: [[Express.js|Express]].js (framework for [[Node.js]]) |
: [[Express.js|Express]].js (framework for [[Node.js]]) |
||
; [[ |
; [[XAMPP]]<ref name="AFXAMPP">{{cite web |url=https://www.apachefriends.org/index.html |title=XAMPP Apache + MariaDB + PHP + Perl |publisher=Apache Friends |access-date=6 July 2018}}</ref> |
||
: [[Microsoft Windows|Windows]] (operating system) |
|||
: [[Apache HTTP Server|Apache]] (web server) |
|||
: [[MySQL]] or [[MariaDB]] (database) |
|||
: [[PHP]], [[Perl]], or [[Python (programming language)|Python]] (programming language) |
|||
; [[WIMP (software bundle)|WIMP]]:<ref name="AWSTutorialWIMP">{{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}}</ref> |
|||
: [[Microsoft Windows|Windows]] (operating system) |
|||
: [[Internet Information Services]] (web server) |
|||
: [[MySQL]] or [[MariaDB]] (database) |
|||
: [[PHP]], [[Perl]], or [[Python (programming language)|Python]] (programming language) |
|||
; WINS:<ref name="EvgenHowTo18">{{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}}</ref> |
|||
: [[Windows Server]] (operating system) |
|||
: [[Internet Information Services]] (web server) |
|||
: [[.NET Framework|.NET]] ([[software framework]]) |
|||
: [[Microsoft SQL Server | SQL Server]] (database) |
|||
; WISA:<ref name="SachdevaWhich09">{{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}}</ref> |
|||
: [[Windows Server]] (operating system) |
|||
: [[Internet Information Services]] (web server) |
|||
: [[Microsoft SQL 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) |
|||
; [[XAMPP]]:<ref name="AFXAMPP">{{cite web |url=https://www.apachefriends.org/index.html |title=XAMPP Apache + MariaDB + PHP + Perl |publisher=Apache Friends |access-date=6 July 2018}}</ref> |
|||
: [[cross-platform]] (operating system) |
: [[cross-platform]] (operating system) |
||
: [[Apache HTTP Server|Apache]] (web server) |
: [[Apache HTTP Server|Apache]] (web server) |
||
Line 192: | Line 198: | ||
: [[Perl]] (programming language) |
: [[Perl]] (programming language) |
||
; [[XRX (web application architecture)|XRX]] |
; [[XRX (web application architecture)|XRX]]<ref name="McCrearyXRX">{{cite web |url=http://www.danmccreary.com/xrx/ |title=XRX |author=McCreary, D. |work=danmccreary.com |access-date=6 July 2018}}</ref> |
||
: [[XML database]] (database such as [[BaseX]], [[eXist]], [[MarkLogic Server]]) |
: [[XML database]] (database such as [[BaseX]], [[eXist]], [[MarkLogic Server]]) |
||
: [[XQuery]] (Query language) |
: [[XQuery]] (Query language) |
||
Line 199: | Line 205: | ||
==See also== |
==See also== |
||
{{Wiktionary|stack}} |
|||
* [[Content management framework]] |
|||
* [[List of content management systems]] |
|||
* [[Content management system]] |
* [[Content management system]] |
||
* [[List of Apache–MySQL–PHP packages]] |
* [[List of Apache–MySQL–PHP packages]] |
||
* [[List of Nginx–MySQL–PHP packages]] |
|||
* [[Web framework]] |
* [[Web framework]] |
||
Line 208: | Line 214: | ||
{{reflist}} |
{{reflist}} |
||
{{Web interfaces}} |
|||
[[Category:Computing]] |
|||
[[Category:Software architecture]] |
|||
[[Category:Web frameworks]] |
[[Category:Web frameworks]] |
Latest revision as of 04:39, 8 December 2024
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.[1] 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.[2] 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.[3]
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.[4][5]
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.[6] This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects.
Examples
[edit]OS-level stacks
[edit]- Ganeti[8]
- 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[9]
- GemStone (database and application server)
- Linux (operating system)
- Apache (web server)
- Smalltalk (programming language)
- Seaside (web framework)
- LAMP[10]
- Linux (operating system)
- Apache (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
- LEAP[11]
- 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[12]
- Linux (operating system)
- Nginx (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
- LLMP[13]
- Linux (operating system)
- Lighttpd (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
- LYME and LYCE[14]
- Linux (operating system)
- Yaws (web server, written in Erlang)
- Mnesia or CouchDB (database, written in Erlang)
- Erlang (functional programming language)
- MAMP[15]
- Mac OS X (operating system)
- Apache (web server)
- MySQL or MariaDB (database)
- PHP, Perl, or Python (programming languages)
- LAPP[16]
- Linux (operating system)
- Apache (web server)
- PostgreSQL (database management systems)
- Perl, PHP, or Python (scripting languages)
- MLVN[17]
- MongoDB (database)
- Linux (operating system)
- Varnish (software) (frontend cache)
- Node.js (JavaScript runtime)
- WAMP[18]
- Windows (operating system)
- Apache (web server)
- MySQL or MariaDB (database)
- PHP, Perl, or Python (programming language)
- WIMP[19]
- Windows (operating system)
- Internet Information Services (web server)
- MySQL or MariaDB (database)
- PHP, Perl, or Python (programming language)
- WINS[20]
- Windows Server (operating system)
- Internet Information Services (web server)
- .NET (software framework)
- SQL Server (database)
- WISA[21]
- 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
[edit]- ELK[22]
- Elasticsearch (search engine)
- Logstash (event and log management tool)
- Kibana (data visualization)
- GRANDstack[23]
- GraphQL (data query and manipulation language)
- React (web application presentation)
- Apollo (Data Graph Platform)
- Neo4j (database management systems)
- JAMstack[24]
- JavaScript (programming language)
- APIs (Application programming interfaces)
- Markup (content)
- MARQS[10]
- Apache Mesos (node startup/shutdown)
- Akka (toolkit) (actor implementation)
- Riak (data store)
- Apache Kafka (messaging)
- Apache Spark (big data and MapReduce)
- MEAN[10]
- MongoDB (database)
- Express.js (application controller layer)
- AngularJS/Angular (web application presentation)
- Node.js (JavaScript runtime)
- MERN[25]
- MongoDB (database)
- Express.js (application controller layer)
- React.js (web application presentation)
- Node.js (JavaScript runtime)
- MEVN[26]
- MongoDB (database)
- Express.js (application controller layer)
- Vue.js (web application presentation)
- Node.js (JavaScript runtime)
- OpenACS[28]
- NaviServer (web server)
- OpenACS (web application framework)
- PostgreSQL or Oracle Database (database)
- Tcl (scripting language)
- PERN[29]
- 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[10]
- Apache Spark (big data and MapReduce)
- Apache Mesos (node startup/shutdown)
- Akka (toolkit) (actor implementation)
- Apache Cassandra (database)
- Apache Kafka (messaging)
- T-REx[30]
- TerminusDB (scalable graph database)
- React (JavaScript web framework)
- Express.js (framework for Node.js)
- XAMPP[31]
- cross-platform (operating system)
- Apache (web server)
- MariaDB or MySQL (database)
- PHP (programming language)
- Perl (programming language)
- XRX[32]
- XML database (database such as BaseX, eXist, MarkLogic Server)
- XQuery (Query language)
- REST (client interface)
- XForms (client)
See also
[edit]- List of content management systems
- Content management system
- List of Apache–MySQL–PHP packages
- Web framework
References
[edit]- ^ "Solution stack". Computer Desktop Encyclopedia. The Computer Language Company. 2015. Retrieved 5 July 2018.
- ^ Mimoso, Michael S. (24 February 2003). "Red Hat: Linux served at vertical data center dinner tables". SearchEnterpriseLinux.com. Retrieved 2009-08-09.
- ^ Beal, V. (7 September 2007). "Acronym Guide to Web Stacks". Webopedia. Quinstreet, Inc. Retrieved 5 July 2018.
- ^ Ferguson, R. (2002). Using Microsoft SharePoint Portal Server. Que Publishing. p. 616. ISBN 9780789725707.
- ^ Anderson, G.W. (2003). SAP Planning: Best Practices in Implementation. Sams. p. 13. ISBN 9780789728753.
- ^ Amir, Masroor. "Full Stack Developer - Complete Roadmap | Technologies in 2023". The Geeks Bot | A Computer Science Site for geeks. Retrieved 2023-04-27.
- ^ Dzonsons, K. "BCHS Stack". Retrieved 5 July 2018.
- ^ "Ganeti installation tutorial". Ganeti Documentation. Google, Inc. Retrieved 5 July 2018.
- ^ Glynn, A. (3 June 2015). "A Beginners' Guide to Installing and Configuring GLASS: Gemstone 64/S Smalltalk / Seaside / Application Server / Object Database Server Environment". Horizons of Identity. Retrieved 5 July 2018.
- ^ a b c d Frampton, M. (2018). Complete Guide to Open Source Big Data Stack. Apress. p. 7. ISBN 9781484221495.
- ^ Kaisler, S.H.; Amour, F.; Espinosa, A.; Money, W.H. (2015). Obtaining Value from Big Data for Service Delivery. Business Expert Press. p. PT69. ISBN 9781631572234.
- ^ "LEMP Stack Info". LEMP.io. Retrieved 6 July 2018.
- ^ Johnston, C. (18 February 2009). "Setting up a LLMP Stack (Linux, Lighttpd, MySQL, PHP5) on Ubuntu 8.10". ChrisJohnston.org. Archived from the original on 5 February 2019. Retrieved 6 July 2018.
- ^ "Solution Stack". Idiosyncratic Knowledge. 9 July 2016. Retrieved 9 July 2016.
- ^ Coucouvanis, N. (2007). "Get Your Wiki On". Mac Life (5): 83–86. Retrieved 6 July 2018.
- ^ Rittinghouse, J.W.; Ransome, J.F. (2017). Cloud Computing: Implementation, Management, and Security. CRC Press. p. PT184. ISBN 9781351615365.
- ^ Sharma, A. (2018). "Chapter 2: Introducing MEVN". Full-Stack Web Development with Vue.js and Node. Packt Publishing Ltd. pp. 6–30. ISBN 9781788830775.
- ^ "WAMP". Softaculous Ltd. Retrieved 6 July 2018.
- ^ "Tutorial: Installing a WIMP Server on an Amazon EC2 Instance Running Windows Server". AWS Documentation. Amazon Web Services, Inc. Retrieved 6 July 2018.
- ^ Evgen (28 January 2018). "How to Choose Your Technology Stack for Web Development". GBKSOFT Blog. GBKSOFT Dev LLC. Retrieved 6 July 2018.
- ^ Sachdeva, B. (27 May 2009). "Which Web Application Stack Is Best for Me?". developer.com. QuinStreet, Inc. Retrieved 6 July 2018.
- ^ Chhajed, S. (2015). "Chapter 1: Introduction to ELK Stack". Learning ELK Stack. Packt Publishing Ltd. pp. 1–22. ISBN 9781785886706.
- ^ "GRANDStack". Retrieved 24 Dec 2019.
- ^ "JAMstack". Retrieved 5 July 2018.
- ^ Wilson, E. (2018). "Chapter 1: Introduction to the MERN Stack". MERN Quick Start Guide. Packt Publishing Ltd. pp. 7–13. ISBN 9781787280045.
- ^ Sharma, A. (2018). "Chapter 1: Introducing MEVN". Full-Stack Web Development with Vue.js and Node. Packt Publishing Ltd. pp. 6–30. ISBN 9781788830775.
- ^ Luna, F. (2017). Programador Web Full Stack: Desarrollo frontend y backend. RedUSERS. pp. 17–18.
- ^ "OpenACS: What it is and why to use it". OpenACS.org. OpenACS Community. Retrieved 6 July 2018.
- ^ "Learn the PERN Stack by building a web app - Full video course". freeCodeCamp.org. 2020-03-20. Retrieved 2021-06-19.
- ^ "TerminusDB on Twitter". Twitter. Retrieved 2020-10-14.
- ^ "XAMPP Apache + MariaDB + PHP + Perl". Apache Friends. Retrieved 6 July 2018.
- ^ McCreary, D. "XRX". danmccreary.com. Retrieved 6 July 2018.