¿Qué es una pila de software?

Es el conjunto de tecnologías que trabajan juntas para hacer que una aplicación o sitio web funcione.

Hay pilas de la vieja escuela, en su mayoría obsoletas como LAMP, que se refiere al uso de Linux para alojar Apache HTTPS, MySQL y PHP para ejecutar un sitio web. Linux todavía se recomienda, pero el resto ya no son las mejores prácticas para los nuevos sitios (no tienes otra opción si estás usando WordPress, aunque creo que WordPress es casi siempre una mala idea hoy en día).

Hay pilas más nuevas como MEAN y MERN: MongoDB, ExpressJS, React/Angular, y Node.js. Ambos caen en el nuevo enfoque llamado JAMstack, donde en lugar de utilizar un lenguaje como PHP para generar todas las páginas de un sitio cada vez que se accede a ellas, se sirven páginas estáticas y se dejan cambiar dinámicamente en el cliente.

Pero la pila también puede incluir muchas otras tecnologías. MongoDB está cayendo en desgracia en general, y más pilas están utilizando PostgreSQL. Las bases de datos gráficas como Dgraph, o adaptadores como Postrgraphile, facilitan el soporte de GraphQL como parte de tu pila. TypeScript es una opción de mejores prácticas cuando se utiliza Node.js.

Y luego la pila puede incluir el proveedor de la nube que usted'está utilizando (AWS, Google Cloud, Azure, etc.), la infraestructura como código (Terraform, Amazon CDK, etc.), [1] tecnologías adicionales como el almacenamiento en caché (Redis, MemcacheDB), colas de mensajes (AWS SQS, RabbitMQ), o frameworks de servidor (NestJS, Next.js, etc.).

Así que cuando hablas de la "pila", te refieres a la lista de tecnologías básicas que dan forma a la arquitectura de la aplicación en la que estás trabajando. No todas las librerías que utilizas, sino las piedras angulares.

Notas al pie

[1] AWS Cloud Development Kit - Amazon Web Services