In computing, a solution stack, also called software stack and tech 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 of 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.
JavaScript stacks
A JavaScript stack is a collection of technologies that use JavaScript as a primary programming language across the entire software development process, typically combining front-end and back-end tools to build full-scale web applications. With the rise of Node.js, JavaScript can now be executed server-side, allowing developers to use a single language for both client and server development. This unification simplifies the development workflow, improves code reuse, and enhances productivity by enabling consistent logic and tooling across the application. JavaScript stacks are often favored for their speed, scalability, and access to a vast ecosystem of libraries and frameworks available through platforms like npm. The increasing popularity of these stacks reflects a broader shift toward full-stack JavaScript development in modern web engineering.[7][8][9][10]
OS-level stacks
- MLVN[11]
- MongoDB (database)
- Linux (operating system)
- Varnish (software) (frontend cache)
- Node.js (JavaScript runtime)
- 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
- GRANDstack[12]
- GraphQL (data query and manipulation language)
- React (web application presentation)
- Apollo (Data Graph Platform)
- Neo4j (database management systems)
- JAMstack[13]
- JavaScript (programming language)
- APIs (Application programming interfaces)
- Markup (content)
- MEAN[14]
- MongoDB (database)
- Express.js (application controller layer)
- AngularJS/Angular (web application presentation)
- Node.js (JavaScript runtime)
- MERN[15]
- MongoDB (database)
- Express.js (application controller layer)
- React.js (web application presentation)
- Node.js (JavaScript runtime)
- MEVN[16]
- MongoDB (database)
- Express.js (application controller layer)
- Vue.js (web application presentation)
- Node.js (JavaScript runtime)
- PERN[17]
- PostgreSQL (database)
- Express.js (application controller layer)
- React (JavaScript library) (web application presentation)
- Node.js (JavaScript runtime)
- T-REx[18]
- TerminusDB (scalable graph database)
- React (JavaScript web framework)
- Express.js (framework for Node.js)
Specific framework stacks
Java-Spring stack
The Java-Spring stack is a robust and enterprise-grade technology stack built around the Java programming language and the Spring ecosystem. At its core is the Spring Framework, which provides a comprehensive programming and configuration model for modern Java applications. This stack often includes Spring Boot, a project that simplifies Spring application setup with convention-over-configuration, embedded servers, and production-ready defaults. Additional components such as Spring MVC, Spring Data, and Spring Security are commonly used for building web applications, accessing databases, and implementing authentication and authorization. The Java-Spring stack is frequently paired with relational databases like MySQL or PostgreSQL and typically deployed using servlet containers like Apache Tomcat or platforms such as Spring Cloud for microservices architecture. Known for its scalability, modularity, and long-term stability, the Java-Spring stack is widely adopted in enterprise environments, particularly in finance, telecommunications, and large-scale SaaS platforms.[19][20][21]
Python-Django stack
The Python-Django stack utilizes Python as the primary programming language and Django as the web framework. Django is designed to encourage clean, pragmatic design and follows the DRY (Don't Repeat Yourself) principle. It includes a wide array of built-in features, such as user authentication, an admin interface, form handling, and a powerful ORM. These built-in tools make Django especially effective for content-driven or database-heavy web applications. The stack often pairs Django with PostgreSQL or SQLite as a database and runs on web servers like Gunicorn behind Nginx. Because of Python's readability and Django's comprehensive documentation, this stack is widely used in educational platforms, scientific applications, and content management systems.[22][23]
Ruby on Rails stack
La pila Ruby on Rails se basa en el lenguaje de programación Ruby y el framework web Rails. Enfatiza el principio de convención sobre configuración , lo que permite a los desarrolladores crear aplicaciones rápidamente al reducir la necesidad de código repetitivo y configuración manual. Ruby on Rails incluye un conjunto integrado de herramientas, como un sistema de mapeo objeto-relacional (ORM), andamiaje para la generación de código y una estructura de directorios, lo que la hace ideal para el desarrollo rápido de aplicaciones. Su enfoque en la simplicidad y la satisfacción del desarrollador la ha convertido en una opción popular entre startups y equipos pequeños. La pila generalmente incluye una base de datos PostgreSQL o MySQL, un servidor web como Puma o Nginx y herramientas de despliegue como Capistrano o Heroku. [ 24 ] [ 25 ]
Otras pilas
Pilas a nivel del sistema operativo
- BCHS [ 26 ]
- OpenBSD (sistema operativo)
- C (lenguaje de programación)
- httpd (servidor web)
- SQLite (base de datos)
- Ganeti [ 27 ]
- Xen o KVM ( hipervisor )
- Linux con LVM (gestión de dispositivos de almacenamiento masivo)
- Dispositivo de bloques replicado distribuido ( replicación de almacenamiento )
- Ganeti ( herramienta de gestión de clústeres de máquinas virtuales )
- Administrador web de Ganeti (interfaz web)
- VIDRIO [ 28 ]
- GemStone (base de datos y servidor de aplicaciones)
- Linux (sistema operativo)
- Apache (servidor web)
- Smalltalk (lenguaje de programación)
- Costa (marco web)
- LÁMPARA [ 14 ]
- Linux (sistema operativo)
- Apache (servidor web)
- MySQL o MariaDB ( sistemas de gestión de bases de datos )
- Perl , PHP o Python ( lenguajes de scripting )
- SALTO [ 29 ]
- Linux (sistema operativo)
- Eucalipto (alternativa gratuita y de código abierto a Amazon Elastic Compute Cloud )
- AppScale ( marco de computación en la nube y alternativa gratuita y de código abierto a Google App Engine )
- Python (lenguaje de programación)
- LEMP/LNMP [ 30 ]
- Linux (sistema operativo)
- Nginx (servidor web)
- MySQL o MariaDB (sistemas de gestión de bases de datos)
- Perl , PHP o Python (lenguajes de scripting)
- LLMP [ 31 ]
- Linux (sistema operativo)
- Lighttpd (servidor web)
- MySQL o MariaDB (sistemas de gestión de bases de datos)
- Perl , PHP o Python (lenguajes de scripting)
- LYME y LIC [ 32 ]
- Linux (sistema operativo)
- Yaws (servidor web, escrito en Erlang )
- Mnesia o CouchDB (base de datos, escrita en Erlang )
- Erlang (lenguaje de programación funcional)
- MAMP [ 33 ]
- Mac OS X (sistema operativo)
- Apache (servidor web)
- MySQL o MariaDB (base de datos)
- PHP , Perl o Python (lenguajes de programación)
- LAPP [ 34 ]
- Linux (sistema operativo)
- Apache (servidor web)
- PostgreSQL (sistemas de gestión de bases de datos)
- Perl , PHP o Python (lenguajes de scripting)
- WAMP [ 35 ]
- Windows (sistema operativo)
- Apache (servidor web)
- MySQL o MariaDB (base de datos)
- PHP , Perl o Python (lenguaje de programación)
- WIMP [ 36 ]
- Windows (sistema operativo)
- Servicios de información de Internet (servidor web)
- MySQL o MariaDB (base de datos)
- PHP , Perl o Python (lenguaje de programación)
- VICTORIAS [ 37 ]
- Windows Server (sistema operativo)
- Servicios de información de Internet (servidor web)
- .NET ( marco de software )
- Servidor SQL (base de datos)
- WISA [ 38 ]
- Windows Server (sistema operativo)
- Servicios de información de Internet (servidor web)
- Servidor SQL (base de datos)
- ASP.NET (marco de desarrollo web)
Pilas web independientes del sistema operativo
- ALCE [ 39 ]
- Elasticsearch ( motor de búsqueda )
- Logstash (herramienta de gestión de eventos y registros )
- Kibana ( visualización de datos )
- MARQS [ 14 ]
- Apache Mesos (inicio/apagado del nodo)
- Akka (kit de herramientas) (implementación de actores)
- Riak (almacén de datos)
- Apache Kafka (mensajería)
- Apache Spark (big data y MapReduce)
- OpenACS [ 41 ]
- NaviServer (servidor web)
- OpenACS ( marco de trabajo para aplicaciones web )
- Base de datos PostgreSQL u Oracle
- Tcl (lenguaje de scripting)
- MORAPIO
- Prometeo (métricas y series temporales)
- Linkerd (malla de servicios)
- OpenFaaS (gestión y autoescalado de la computación)
- NATS (bus/cola de mensajes asíncronos)
- Kubernetes (agrupación declarativa, extensible, escalable horizontalmente y con capacidad de autorreparación)
- SMACK [ 14 ]
- Apache Spark (big data y MapReduce)
- Apache Mesos ( inicio/apagado del nodo )
- Akka (kit de herramientas) ( implementación de actor )
- Apache Cassandra (base de datos)
- Apache Kafka ( mensajería )
- XAMPP [ 42 ]
- multiplataforma (sistema operativo)
- Apache (servidor web)
- MariaDB o MySQL (base de datos)
- PHP (lenguaje de programación)
- Perl (lenguaje de programación)
- XRX [ 43 ]
- Base de datos XML (bases de datos como BaseX , eXist , MarkLogic Server )
- XQuery (lenguaje de consulta)
- REST ( interfaz de cliente )
- XForms (cliente)
Véase también
Referencias
- ↑ "Pila de soluciones" . Enciclopedia de escritorio de computadoras . The Computer Language Company. 2015. Consultado el 5 de julio de 2018 .
- ↑ Mimoso, Michael S. (24 de febrero de 2003). "Red Hat: Linux servido en las mesas de cena de los centros de datos verticales" . SearchEnterpriseLinux.com . Recuperado el 9 de agosto de 2009 .
- ↑ Beal, V. (7 de septiembre de 2007). "Guía de acrónimos para pilas web" . Webopedia . Quinstreet, Inc. Recuperado el 5 de julio de 2018 .
- ↑ Ferguson, R. (2002). Uso de Microsoft SharePoint Portal Server . Que Publishing. pág. 616. ISBN 9780789725707.
- ↑ Anderson, GW (2003). SAP Planning: Best Practices in Implementation . Sams. p. 13. ISBN 9780789728753.
- ↑ Amir, Masroor. "Desarrollador Full Stack - Hoja de ruta completa | Tecnologías en 2023" . The Geeks Bot | Un sitio de informática para geeks . Consultado el 27 de abril de 2023 .
- ↑ Tilkov, Stefan y Steve Vinoski. «Node.js: Uso de JavaScript para crear programas de red de alto rendimiento». IEEE Internet Computing , vol. 14, n.º 6, 2010, págs. 80-83. DOI: 10.1109/MIC.2010.145
- ↑ Pimentel, Jon. Proyectos Full-Stack React . Packt Publishing, 2018.
- ↑ "Node.js — Acerca de Node.js®" . nodejs.org . Consultado el 18 de junio de 2025 .
- ↑ bin Uzayr, Sufyan (2023-08-09), "JavaScript para uso móvil" , Conquering JavaScript , Boca Raton: CRC Press, pp. 371–402 , doi : 10.1201/9781003356578-7 , ISBN 978-1-003-35657-8, consultado el 18 de junio de 2025
- ↑ Sharma, A. (2018). «Capítulo 2: Introducción a MEVN» . Desarrollo web full-stack con Vue.js y Node . Packt Publishing Ltd. pp. 6–30 . ISBN 9781788830775.
- ↑ "GRANDStack" . Consultado el 24 de diciembre de 2019 .
- ↑ "JAMstack" . Consultado el 5 de julio de 2018 .
- 1 2 3 4 Frampton, M. (2018). Guía completa de la pila de Big Data de código abierto . Apress. pág. 7. ISBN 9781484221495.
- ↑ Wilson, E. (2018). «Capítulo 1: Introducción a la pila MERN» . Guía de inicio rápido de MERN . Packt Publishing Ltd. págs. 7–13 . ISBN 9781787280045.
- ↑ Sharma, A. (2018). «Capítulo 1: Introducción a MEVN» . Desarrollo web full-stack con Vue.js y Node . Packt Publishing Ltd. pp. 6–30 . ISBN 9781788830775.
- ↑ "Aprende la pila PERN creando una aplicación web - Curso completo en vídeo" . freeCodeCamp.org . 2020-03-20 . Consultado el 2021-06-19 .
- ↑ "TerminusDB en Twitter" . Twitter . Consultado el 14 de octubre de 2020 .
- ↑ Walls, Craig. Primavera en acción . Manning Publications, 2022.
- ↑ Deinum, Marten; Cosmina, Iuliana (2021), "Fundamentos del Spring Framework" , Pro Spring MVC con WebFlux , Berkeley, CA: Apress, pp. 21–54 , doi : 10.1007/978-1-4842-5666-4_2 , ISBN 978-1-4842-5665-7, consultado el 18 de junio de 2025
- ↑ Gutiérrez, Felipe (2016), "Primavera con bota de primavera" , Pro Spring Boot , Berkeley, CA: Apress, pp. 89–105 , doi : 10.1007/978-1-4842-1431-2_5 , ISBN 978-1-4842-1432-9, consultado el 18 de junio de 2025
- ↑ Holovaty, Adrian y Jacob Kaplan-Moss. El libro de Django . Versión 2.0.
- ↑ "Django" . Proyecto Django . Consultado el 18 de junio de 2025 .
- ↑ Hinze, Annika (julio de 2008). "Reseña de "RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series) de Michael Hartl, Aurelius Prochazka", Addison-Wesley Professional, 2007, $44.99, ISBN 0321480791" . ACM Queue . 6 (4): 53. doi : 10.1145/1413254.1413266 . ISSN 1542-7730 .
- ↑ "Guías de Ruby on Rails" . Guías de Ruby on Rails . Consultado el 18 de junio de 2025 .
- ↑ Dzonsons, K. "BCHS Stack" . Consultado el 5 de julio de 2018 .
- ↑ "Tutorial de instalación de Ganeti" . Documentación de Ganeti . Google, Inc. Consultado el 5 de julio de 2018 .
- ↑ Glynn, A. (3 de junio de 2015). "Guía para principiantes sobre la instalación y configuración de GLASS: Gemstone 64/S Smalltalk / Seaside / Application Server / Object Database Server Environment" . Horizons of Identity . Consultado el 5 de julio de 2018 .
- ↑ Kaisler, SH; Amour, F.; Espinosa, A.; Money, WH (2015). Obtención de valor a partir de macrodatos para la prestación de servicios . Business Expert Press. pág. PT69. ISBN 9781631572234.
- ↑ "Información de la pila LEMP" . LEMP.io. Consultado el 6 de julio de 2018 .
- ↑ Johnston, C. (18 de febrero de 2009). "Configuración de una pila LLMP (Linux, Lighttpd, MySQL, PHP5) en Ubuntu 8.10" . ChrisJohnston.org . Archivado del original el 5 de febrero de 2019. Recuperado el 6 de julio de 2018 .
- ↑ "Solution Stack" . Conocimiento idiosincrásico . 9 de julio de 2016. Consultado el 9 de julio de 2016 .
- ↑ Coucouvanis, N. (2007). "Get Your Wiki On" . Mac Life (5): 83–86 . Recuperado el 6 de julio de 2018 .
- ↑ Rittinghouse, JW; Ransome, JF (2017). Computación en la nube: implementación, gestión y seguridad . CRC Press. pág. PT184. ISBN 9781351615365.
- ↑ "WAMP" . Softaculous Ltd. Consultado el 6 de julio de 2018 .
- ↑ "Tutorial: Instalación de un servidor WIMP en una instancia de Amazon EC2 con Windows Server" . Documentación de AWS . Amazon Web Services, Inc. Consultado el 6 de julio de 2018 .
- ↑ Evgen (28 de enero de 2018). "Cómo elegir tu pila tecnológica para el desarrollo web" . Blog de GBKSOFT . GBKSOFT Dev LLC . Consultado el 6 de julio de 2018 .
- ↑ Sachdeva, B. (27 de mayo de 2009). "¿Qué pila de aplicaciones web es la mejor para mí?" . developer.com . QuinStreet, Inc . Recuperado el 6 de julio de 2018 .
- ↑ Chhajed, S. (2015). «Capítulo 1: Introducción a ELK Stack» . Aprendiendo ELK Stack . Packt Publishing Ltd. págs. 1–22 . ISBN 9781785886706.
- ↑ Luna, F. (2017). Programador Web Full Stack: Desarrollo frontend y backend . RedUSUARIOS. págs. 17 y 18.
- ↑ "OpenACS: Qué es y por qué usarlo" . OpenACS.org . Comunidad OpenACS . Consultado el 6 de julio de 2018 .
- ↑ "XAMPP Apache + MariaDB + PHP + Perl" . Apache Friends . Consultado el 6 de julio de 2018 .
- ↑ McCreary, D. "XRX" . danmccreary.com . Consultado el 6 de julio de 2018 .
- Arquitectura de software
- marcos de trabajo web