Solution stack

Last updated

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.

Contents

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

OS-level stacks

BCHS [7]
OpenBSD (operating system)
C (programming language)
httpd (web server)
SQLite (database)
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

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)
NMP [27]
Nginx (web server)
MySQL or MariaDB (database)
PHP (programming language)
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

Related Research Articles

Web development is the work involved in developing a website for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex web applications, electronic businesses, and social network services. A more comprehensive list of tasks to which Web development commonly refers, may include Web engineering, Web design, Web content development, client liaison, client-side/server-side scripting, Web server and network security configuration, and e-commerce development.

<span class="mw-page-title-main">FOSDEM</span> Annual event in Brussels centered on free and open source software development

Free and Open source Software Developers' European Meeting (FOSDEM) is a non-commercial, volunteer-organized European event centered on free and open-source software development. It is aimed at developers and anyone interested in the free and open-source software movement. It aims to enable developers to meet and to promote the awareness and use of free and open-source software.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

A LAMP is one of the most common software stacks for the web's most popular applications. Its generic software stack model has largely interchangeable components.

<span class="mw-page-title-main">Catalyst (software)</span> Open-source web application framework

Catalyst is an open-source web application framework written in Perl. It closely follows the model–view–controller (MVC) architecture and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.

The acronyms BAPP and BAMP refer to a set of open-source software programs commonly used together to run dynamic websites or servers. This set is a solution stack, and an open source web platform.

MAMP is a solution stack composed of free and open-source and proprietary commercial software used together to develop and run dynamic websites on Apple Macintosh computers.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

The acronym WIMP is a solution stack of software, partially free and open source software, used to run dynamic web sites on servers. The expansion is as follows:

<span class="mw-page-title-main">LYME (software bundle)</span>

LYME and LYCE are software stacks composed entirely of free and open-source software to build high-availability heavy duty dynamic web pages. The stacks are composed of:

<span class="mw-page-title-main">Opa (programming language)</span>

Opa is a programming language for developing scalable web applications. It is free and open-source software released under a GNU Affero General Public License (AGPLv3), and an MIT License.

The following outline is provided as an overview of and topical guide to the Perl programming language:

Jelastic is a cloud platform software vendor that provides multi-cloud platform as a service-based on container technology for hosting service providers, ISVs, telecommunication companies, enterprises and developers. The platform is available as public cloud in over 70 data centers, as well as virtual and on-premises servers. Jelastic provides support of Java, PHP, Ruby, Node.js, Python, Go environments, custom Docker containers and Kubernetes clusters.

<span class="mw-page-title-main">MEAN (solution stack)</span> JavaScript software stack

MEAN is a source-available JavaScript software stack for building dynamic web sites and web applications. A variation known as MERN replaces Angular with React.js front-end, and another named MEVN use Vue.js as front-end.

The following outline is provided as an overview of and topical guide to MySQL:

Microsoft, a tech company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

The following outline is provided as an overview of and topical guide to web design and web development, two very related fields:

References

  1. "Solution stack". Computer Desktop Encyclopedia. The Computer Language Company. 2015. Retrieved 5 July 2018.
  2. Mimoso, Michael S. (24 February 2003). "Red Hat: Linux served at vertical data center dinner tables". SearchEnterpriseLinux.com. Retrieved 2009-08-09.
  3. Beal, V. (7 September 2007). "Acronym Guide to Web Stacks". Webopedia. Quinstreet, Inc. Retrieved 5 July 2018.
  4. Ferguson, R. (2002). Using Microsoft SharePoint Portal Server. Que Publishing. p. 616. ISBN   9780789725707.
  5. Anderson, G.W. (2003). SAP Planning: Best Practices in Implementation. Sams. p. 13. ISBN   9780789728753.
  6. Amir, Masroor. "Full Stack Developer - Complete Roadmap | Technologies in 2023". The Geeks Bot | A Computer Science Site for geeks. Retrieved 2023-04-27.
  7. Dzonsons, K. "BCHS Stack" . Retrieved 5 July 2018.
  8. "Ganeti installation tutorial". Ganeti Documentation. Google, Inc. Retrieved 5 July 2018.
  9. 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.
  10. 1 2 3 4 Frampton, M. (2018). Complete Guide to Open Source Big Data Stack. Apress. p. 7. ISBN   9781484221495.
  11. 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.
  12. "LEMP Stack Info". LEMP.io. Retrieved 6 July 2018.
  13. 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.
  14. "Solution Stack". Idiosyncratic Knowledge. 9 July 2016. Retrieved 9 July 2016.
  15. Coucouvanis, N. (2007). "Get Your Wiki On". Mac Life (5): 83–86. Retrieved 6 July 2018.
  16. Rittinghouse, J.W.; Ransome, J.F. (2017). Cloud Computing: Implementation, Management, and Security. CRC Press. p. PT184. ISBN   9781351615365.
  17. Sharma, A. (2018). "Chapter 2: Introducing MEVN". Full-Stack Web Development with Vue.js and Node. Packt Publishing Ltd. pp. 6–30. ISBN   9781788830775.
  18. "WAMP". Softaculous Ltd. Retrieved 6 July 2018.
  19. "Tutorial: Installing a WIMP Server on an Amazon EC2 Instance Running Windows Server". AWS Documentation. Amazon Web Services, Inc. Retrieved 6 July 2018.
  20. Evgen (28 January 2018). "How to Choose Your Technology Stack for Web Development". GBKSOFT Blog. GBKSOFT Dev LLC. Retrieved 6 July 2018.
  21. Sachdeva, B. (27 May 2009). "Which Web Application Stack Is Best for Me?". developer.com. QuinStreet, Inc. Retrieved 6 July 2018.
  22. Chhajed, S. (2015). "Chapter 1: Introduction to ELK Stack". Learning ELK Stack. Packt Publishing Ltd. pp. 1–22. ISBN   9781785886706.
  23. "GRANDStack" . Retrieved 24 Dec 2019.
  24. "JAMstack" . Retrieved 5 July 2018.
  25. Wilson, E. (2018). "Chapter 1: Introduction to the MERN Stack". MERN Quick Start Guide. Packt Publishing Ltd. pp. 7–13. ISBN   9781787280045.
  26. Sharma, A. (2018). "Chapter 1: Introducing MEVN". Full-Stack Web Development with Vue.js and Node. Packt Publishing Ltd. pp. 6–30. ISBN   9781788830775.
  27. Luna, F. (2017). Programador Web Full Stack: Desarrollo frontend y backend. RedUSERS. pp. 17–18.
  28. "OpenACS: What it is and why to use it". OpenACS.org. OpenACS Community. Retrieved 6 July 2018.
  29. "Learn the PERN Stack by building a web app - Full video course". freeCodeCamp.org. 2020-03-20. Retrieved 2021-06-19.
  30. "TerminusDB on Twitter". Twitter. Retrieved 2020-10-14.
  31. "XAMPP Apache + MariaDB + PHP + Perl". Apache Friends. Retrieved 6 July 2018.
  32. McCreary, D. "XRX". danmccreary.com. Retrieved 6 July 2018.