software_stack

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 - Stack (disambiguation), Stack

TLDR: A software stack is a collection of technologies, frameworks, and tools that work together to build and run applications. Each layer in the stack has a specific role, such as the operating system, backend programming languages, databases, and frontend technologies. Stacks like the LAMP stack (Linux, Apache, MySQL, PHP) and MEAN stack (MongoDB, Express.js, Angular, Node.js) have become standard for developing modern web and mobile applications.

https://en.wikipedia.org/wiki/Solution_stack

A software stack is typically divided into frontend and backend layers. The frontend involves user-facing components built with technologies like HTML, CSS, and JavaScript frameworks such as React or Vue.js. The backend comprises server-side technologies, including programming languages like Python, Java, or PHP, and databases like PostgreSQL or MongoDB, which store and retrieve data.

https://www.redhat.com/en/topics/cloud-native-apps/what-is-a-software-stack

The integration of these layers enables seamless communication and functionality. For example, the MEAN stack uses Node.js for server-side execution, MongoDB for database storage, and Angular for frontend development. Each component is optimized to work cohesively, reducing development overhead and ensuring scalability for web applications.

https://www.mongodb.com/mean-stack

Choosing the right software stack depends on factors like application requirements, scalability needs, and developer expertise. Cloud-native stacks, such as those integrating Kubernetes and Docker, have gained popularity for their ability to support containerized applications. Understanding and selecting an appropriate software stack is essential for building efficient, maintainable, and secure applications.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/


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. 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

; Jamstack:<ref name=“Jamstack”>

</ref>

; LAMP (software bundle) | LAMP:<ref name=“FramptonComplete18”>

</ref>

; LAPP:<ref name=“RittinghouseCloud17”>

</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”>

</ref> : Linux (operating system) : Eucalyptus (software) | 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) | 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 (programming language) | Python (scripting languages)

; LLMP<ref name=“JohnstonSetting09”>

</ref> : Linux (operating system) : Lighttpd (web server) : MySQL or MariaDB (database management systems) : Perl, PHP, or Python (programming language) | Python (scripting languages)

; LYME (software bundle) | LYME and LYCE (software bundle) | LYCE:<ref name=“SamkoughSolution16”>

</ref> : Linux (operating system) : Yaws (web server) | Yaws (web server, written in Erlang (programming language) | Erlang) : Mnesia or CouchDB (database, written in Erlang (programming language) | Erlang) : Erlang (programming language) | Erlang (functional programming language)

; MAMP:<ref name=“CoucouvanisGetYour07”>

</ref> : Mac OS X (operating system) : Apache HTTP Server | Apache (web server) : MySQL or MariaDB (database) : PHP, Perl, or Python (programming language) | 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 (solution stack) | MEAN:<ref name=“FramptonComplete18” /> : MongoDB (database) : Express.js (application controller layer) : AngularJS/Angular (web framework) | 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)

; List of Nginx–MySQL–PHP packages | NMP:<ref name=“LunaProg17”>

</ref> : Nginx (web server) : MySQL or MariaDB (database) : PHP (programming language)

; OpenACS<ref name=“OpenACSWhatIs”>

</ref> : Linux or Microsoft Windows | 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 Messaging | 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 (computer science) | node startup/shutdown) : Akka (toolkit) (Actor model | actor implementation) : Apache Cassandra (database) : Apache Kafka (Stream processing | messaging)

; WAMP:<ref name=“AMPPS-WAMP”>

</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”>

</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”>

</ref> : Windows Server (operating system) : Internet Information Services (web server) : .NET (software framework) : Microsoft SQL Server | SQL Server (database)

; WISA:<ref name=“SachdevaWhich09”>

</ref> : Windows Server (operating system) : Internet Information Services (web server) : Microsoft SQL Server | SQL Server (database) : ASP.NET (web framework)

; XAMPP:<ref name=“AFXAMPP”>

</ref> : cross-platform (operating system) : Apache HTTP Server | Apache (web server) : MariaDB or MySQL (database) : PHP (programming language) : Perl (programming language)

; XRX (web application architecture) | XRX:<ref name=“McCrearyXRX”>

</ref> : XML database (database such as BaseX, eXist, MarkLogic Server) : XQuery (Query language) : REST (Client (computing) | client interface) : XForms (client)

See also

Category of Computing Category of Web frameworks

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.

1)
https://searchenterpriselinux.techtarget.com/news/interview/0,289202,sid39_gci880604,00.html, Red Hat: Linux served at vertical data center dinner tables, Mimoso, Michael S., February 24, 2003
software_stack.txt · Last modified: 2025/02/01 06:27 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki