Stack tecnológicos: ¿Qué son los tech stack y cómo se construyen?

S

Elegir el stack tecnológico adecuado para aplicaciones web es esencial para que los desarrolladores ofrezcan productos de calidad, que sean eficientes y aceptables en cuanto a costos. Una empresa podrá contar con distintos stacks tecnológicos a medida que vaya creciendo y cambiando. Entiende que son los tech stacks (y los modern stack) y las opciones más populares.

¿Qué es un stack tecnológico?

Un stack tecnológico es una lista de todos los servicios tecnológicos, sistemas, herramientas y componentes utilizados para crear y ejecutar una aplicación. Incluye lenguajes de programación, bases de datos, bibliotecas, frameworks y herramientas de desarrollo (frontend y backend) que utiliza una empresa.

El término stack tecnológico se utiliza principalmente en los círculos de desarrolladores y facilita el intercambio entre la estructura de las aplicaciones.

Los stacks tecnológicos también pueden ser denominados stacks de soluciones, pilas de tecnologías, conjuntos de soluciones y algunos se inclina por usar el término en inglés tech stack.

¿Cómo se conforma un stack tecnológico?

Un stack tecnológico o conjunto de soluciones está conformado por varios elementos que permiten que los programadores interactúen con una aplicación:

  • Lenguajes de programación (ej. Python, Java, PHP)
  • Frameworks de backend (ej. Laravel, Django, Ruby On Rails)
  • Frameworks de frontend (ej. React, EmberJS, Bootstrap)
  • Almacenamiento de datos (ej. MongoDB, MySQL, PostgreSQL)
  • Servidores (ej. Apache, Ngnix, AWS, Azure)
  • Monitoreo (ej. AppDynamics, Datadog)
  • Soluciones de BI (ej. Tableau, Qlik, Power BI)
  • API (ej. Mulesoft, Google Apigee)
  • Herramientas de análisis (ej. Google Analytics, Heap)
  • Soluciones UI / UX y patrones de diseño

Dependiendo de las necesidades de la empresa, un stack tecnológico estará compuesto de distintos elementos. Generalmente se tiene un lenguaje de programación central sobre el que se añaden herramientas y frameworks adicionales.

De estas “adiciones” se habla cuando se utiliza el término en inglés “stack” (algo así como apilar). 

Importancia y beneficios de un stack tecnológico

Un stack tecnológico bien construido facilita la gestión empresarial, habilitando la toma de decisiones basada en datos, acelerando la innovación y simplificando el trabajo de los desarrolladores y los líderes empresariales, como el CEO o el CTO.

Organizar las tecnologías como un conjunto contribuye a brindar experiencias de usuario más consistentes y confiables, de forma que los clientes interactúan con productos que son fáciles de adoptar, explorar y utilizar.

Los tech stacks son importantes porque:

  • Con un enfoque flexible, un stack tecnológico ayuda a manejar las aplicaciones para diseñar, implementar y mejorar sistemas, cuidando los tiempos de salida en vivo, el presupuesto y la calidad.
  • Ayudan a reducir la ambigüedad y la complejidad. Con base en los criterios de definición del stack es más sencillo priorizar las decisiones de adopción de tecnologías nuevas, se crean lineamientos de negocio más congruentes y se pueden contrastar con las prioridades del negocio.
  • Las startup con stacks de tecnología bien definidos pueden crecer más rápido, ahorran tiempo y dinero, generando eficiencias y cadencia en el lanzamiento de nuevos productos.

Debido a estos beneficios, el término stack tecnológico se ha extendido a otros sectores como marketing con los llamados stack martech o en ventas y su stack de ventas.

¿Qué es un modern stack?

El término modern stack o tech stack moderno se está empleando con mayor frecuencia en los entornos de desarrollo web y manejo de datos.

En principio, un modern stack se diferencia de los conjuntos de tecnologías tradicionales porque es más ágil, depende menos de la infraestructura en sitio y usa las tecnologías disruptivas como la inteligencia artificial, la computación en la nube y blockchain para crear palancas de valor agregado.

En este sentido, los stacks modernos de tecnologías utilizan marcos de referencia adaptados a la computación en la nube y el potencial de las nuevas tecnologías para establecerse y actualizarse.

Stack moderno
Modern stack

Tipos de stacks tecnológicos más usados

Algunos de los stacks tecnológicos más usados son:

1. LAMP

Conjunto de tecnologías LAMP

LAMP es uno de los stacks de soluciones más populares. Está conformado por:

  • Linux (sistema operativo)
  • Apache (servidor web)
  • MySQL (base de datos)
  • PHP / Pearl / Python (lenguajes de programación)

Las ventajas de LAMP son la seguridad, flexibilidad y buenas opciones de personalización.

2. Python Django

Stack tecnológico Python - Django

Como su nombre indica, esta pila tecnológica de back-end consiste en el lenguaje de programación Python y el framework Django. De nuevo, el servidor web es Apache y la base de datos MySQL.

Esta variante es ideal para crear Productos Mínimos Viables (MVP) debido a su rápida implementación.

3. MEAN

Pila de tecnologías MEAN

MEAN se utiliza para el desarrollo full-stack de una aplicación web y significa:

  • MongoDB (base de datos),
  • Express.js (framework de aplicación / back-end),
  • Angular (marco de front-end), y
  • Node.js (entorno de ejecución / sistema de ejecución).

JavaScript se utiliza a menudo como lenguaje de programación en el front-end y el back-end. Los desarrolladores encuentran MEAN principalmente en aplicaciones de alto rendimiento y aplicaciones web escalables.

4. MERN

stack tecnológico MERN

MERN es también una pila completa de aplicaciones web. La diferencia con MEAN es que no se utiliza Angular como framework front-end, sino React / Redux.

El MERN Stack ha ido ganando popularidad desde que muchas de las nuevas aplicaciones incorporan JavaScript. Por lo tanto, los desarrolladores de MERN Stack están muy solicitados.

Construir tech stacks

Cada empresa tiene necesidades diferentes en lo que respecta a sus aplicaciones y pila tecnológica. Por lo tanto, no existe una estructura estándar que aplique a todas las empresas por igual. 

No obstante, cada equipo debe decidir por sí mismo qué tecnologías y qué lenguaje de programación utilizar. A partir de ahí, se pueden añadir gradualmente herramientas y servicios adicionales.

Antes del auge de los productos y servicios SaaS, las pilas tecnológicas eran básicamente: LAMP + estándares para aplicaciones basadas en PHP + ninguna alternativa de código abierto como WAMP.

Ahora las opciones son mucho más amplias y los equipos de ingeniería y producto pueden combinar diferentes herramientas para construir el producto perfecto.

#1 Modelo servidor-cliente

Un servidor es un programa en un dispositivo que proporciona funcionalidad, usabilidad y datos para que otros programas (llamados clientes) accedan a ellos. Por ello, esta relación también se denomina modelo servidor-cliente.

Los ejemplos más conocidos son Nginx y Apache.

#2 Stack tecnológico frontend: Cliente

El desarrollo de un producto suele empezar por el conjunto de tecnologías frontend, que es la parte visible a los usuarios finales. Para ello, se debe elegir un stack tecnológico backend que soporte esa interfaz de usuario. 

Cada herramienta adicional se suma a las herramientas de frontend y backend.

Las tecnologías que pertenecen al frontend son visibles para el usuario. Son, por ejemplo, los elementos visuales de un sitio web o una aplicación. También proporcionan al usuario las herramientas necesarias para realizar determinadas acciones en esta aplicación.

Las interfaces de las aplicaciones web suelen construirse utilizando JavaScript y los frameworks AngularJS, Backbone.js y ReactJS.

Existen tecnologías front-end como Objective-C / SWIFT para aplicaciones iOS y Java para smartphones Android.

Ejemplos de tecnologías front-end:

  • HTML (Lenguaje de marcado de hipertexto): Para estructurar el contenido de un sitio web
  • CSS (Hojas de estilo en cascada): Determina el diseño y el estilo del contenido, por ejemplo, colores, fuentes, maquetación, etc.
  • JavaScript: Permite que una aplicación sea interactiva y añade contenido animado e interactivo

#3 Stack tecnológicos backend: Servidores

Las tecnologías backend incluyen frameworks web, lenguajes de programación, servidores y sistemas operativos. Para el desarrollo web, LAMP es un conjunto de soluciones informáticas popular.

Como se ha visto anteriormente, el término está formado por el sistema operativo Linux, el servidor HTTP Apache, el sistema de gestión de bases de datos relacionales MySQL y el lenguaje de programación PHP

Para los desarrolladores, los lenguajes del frontend suelen ser más fáciles de programar que los del backend.

Lenguajes y marcos de programación de back-end:

  • Ruby (Ruby on Rails)
  • JavaScript (NodeJS, MeteorJS, ExpressJS)
  • PHP (Laravel, CodeIgniter)
  • Python (Django, Flask)
  • Scala

#4 Base de datos

También es posible desarrollar una aplicación sin base de datos. Sin embargo, esto puede limitar su funcionalidad.

La base de datos es esencial para almacenar datos sobre los usuarios. A partir de ahí, la aplicación puede adaptarse y optimizarse. 

¿Qué bases de datos se pueden utilizar?

  • MySQL (relacional)
  • PostgreSQL (relacional)
  • MongoDB (no relacional, NoSQL)
Cómo se conforma un stack tecnológico
La estructura más sencilla de un stack tecnológico

Algunos ejemplos adicionales de tecnologías para un stack tecnológico son:

FrontendBackendBase de datosInfrastructura
React.jsNode.jsMySQLNGINX
ReduxFeathers.jsMongoDBBitbucket
SveiteRedisPostgreSQLTeamCity
AngularPython(Django, Flask)FireBaseDocker
Next.js

Kubernetes
ES5, ES6

Apache
typescript

AWS

Consejos para crear tu stack tecnológico

#1 Planifica con el futuro en mente

La velocidad con la que cambian las aplicaciones es muy alta, tanto en rendimiento como en funcionalidad. Los desarrolladores deben tener esto en cuenta cuando crean un stack de tecnologías.

Cuando se omite la evolución que pueden tener las aplicaciones en el tiempo la empresa se ve obligada a sumar servicios e integrarlos. Si este error se repite consistentemente la gestión de las aplicaciones se entorpece.

Por esta razón, los productos mínimos viables (PMV) deben ser parte de la estrategia de desarrollo. Crear PMV ayuda a identificar errores a bajo costo y evitar desarrollos no deseados.

2# Usar analíticas de producto

La mayoría de las compañías emplean analíticas de producto para facilitar el manejo de los conjuntos de tecnologías. De hecho, existen plataformas de análisis especialmente diseñadas para conectar fuentes de información con stacks de tecnologías.

Gracias al uso de analíticas es más fácil monitorear, rastrear y solucionar problemas con las aplicaciones.

3# Definir un presupuesto

El presupuesto de las tecnologías debe definirse antes de construir las aplicaciones. Ante cualquier duda, el costo del stack tecnológico debe estimarse más alto de lo esperado y se deben tomar en cuenta los costos variables relacionados con los empleados.

4# Opciones de habilidades tecnológicas

Los requerimientos de los stacks tecnológicos son tan variables como las habilidades necesarias para construirlos. Sin embargo, es importante prestar atención a las tendencias.

Cuando se trata de lenguajes de programación, Python, R y Javascript son los más populares. Sin embargo, CSS, SQL, Java y Bash/Shell también son comunes en los conjuntos de tecnologías.

Los programadores también disfrutan programar usando Rust, Kotlin, Swift y C#, así que no olvides estos aspectos al construir la pila de tecnologías.

¿Necesitas ayuda con tu stack tecnológico?

Contrata un consultor IT freelance que analice tu negocio y encuentre el mejor tech stack para tu proyecto.

> 2,000 consultores IT disponibles con tarifas entre 53 y 133 $/hora

Cómo auditar tu stack tecnológico

Una buena práctica en la auditoría de conjuntos de tecnologías es revisar los procesos conectados con cada aplicación, en lugar de las aplicaciones por separado.

El proceso de auditoría implica una investigación detallada, donde cada grupo de interés (stakeholder) cuenta. Es recomendable entrevistar a personas clave tales como directivos, líderes de equipo, dueños de procesos y usuarios que utilizan las herramientas dentro del stack a diario.

Adicionalmente, la auditoría debe considerar información y datos de cada aplicación y proceso de negocio dentro del alcance.

Por esta razón, es importante considerar los aspectos más relevantes para la auditoría, teniendo en cuenta cuáles serían los hallazgos que podrían ser más determinantes para tomar decisiones.

Algunos lineamientos básicos para conducir la auditoría de un stack tecnológico son:

  • Identificar los procesos dentro del alcance
  • Elaborar un inventario de las aplicaciones necesarias para ejecutar las tareas cotidianas
  • Analizar el impacto de las aplicaciones sobre la continuidad operacional y los resultados del negocio
  • Relación de los componentes del stack de tecnologías con la experiencia del empleado y del usuario final

Para documentar la auditoría de la pila de tecnologías es recomendable capturar información acerca de:

  • Frecuencia y volumen de uso de las aplicaciones
  • Prevalencia del uso de las aplicaciones en distintos departamentos y a nivel general de empresa
  • Necesidades y requerimientos cubiertos por cada aplicación

Ejemplos de stacks tecnológicos en empresas

EmpresaApps & DataDevOpsHerramientas
Netflix Python
Node.js
React
Java
MySQL
PostgreSQL
Amazon S3
Amazon EC2
Flask
Amazon RDS
Amazon DynamoDB
Cassandra
Hadoop
Oracle
Amazon RDS for PostgreSQL
Amazon EMR
Presto
CloudBees
Pig
WinJS
Atlas-DB
GitHub
Git
Jenkins
Gradle
AWS CloudTrail
Apache Mesos
Sumo Logic
Express Gateway
LogicMonitor
Crittercism
Dynomite
Boundary
Vector
G Suite
Confluence
OneLogin
HubCommander
InstagramJavaScript
Python
React
Java
NGINX
PostgreSQL
Redis
Django
GraphQL
React Native
Redux
Objective-C
Memcached
Cassandra
Gunicorn
Immutable.js
Gearman
ReasonML
Webpack
Babel
Sentry
Jest
HAProxy
Fabric
Flow (JS)
Nuclide
Facebook React
PHP
GraphQL
Memcached
Cassandra
Flux
Tornado
Presto
Hack
Relay Framework
RocksDB
Yoga
Prepack
McRouter
Hydra Framework
Beringei
Jenkins
Datadog
Jest
Chef
Phabricator
HHVM (HipHop Virtual Machine)
Nuclide
Buck
Infer
LogDevice
Confluence
Campaign Monitor
GooglePython
Java
AngularJS
Android SDK
Golang
C++
Dart
guava
Material Design Lite Material Design
Preact
LevelDB
Kubernetes
Android Studio
Bazel
EarlGrey
Seesa
Gmail
G Suite
Google Meet
AirBnBJavaScript
React
Java
MySQL
NGINX
Redis
Amazon S3
Amazon EC2
Sass
Ruby
Amazon CloudFront
Rails
Amazon RDS
Hadoop
Airflow
Amazon EBS
Presto
Druid
Airpal
GitHub
Webpack
New Relic
Kibana
Sentry
Amazon CloudWatch
Logstash
Vagrant
Datadog
Jest
Chef
Enzyme
Apache Mesos
SmartStack
Slack
G Suite
Asana
InVision
Campaign Monitor
React Sketch.app
Assemblage
Spotify Python
Java
NGINX
PostgreSQL
Bootstrap
Amazon S3
Amazon CloudFront
Kafka
Cassandra
Hadoop
Google BigQuery
Apache Storm
Google Cloud Bigtable
Docker
New Relic
Datadog
Pingdom
TestFlight
Percy
Apache CloudStack
Helios
G Suite
AdRoll
Qualaroo
Desk.com
Blossom
AmazonReact
Java
MySQL
AngularJS
Amazon S3
Amazon EC2
Redux
Amazon CloudFront
Amazon RDS
Amazon DynamoDB
Amazon SQS
Amazon VPC
Perl
Amazon Redshift
Amazon ElastiCache
Amazon RDS for PostgreSQL
Amazon EBS
Amazon EMR
redux-saga
Amazon Elastic Transcoder
Amazon EC2 Container Service
Amazon CloudWatch
Jest
NightwatchJS
Amazon WorkSpaces

Te puede interesar:

Yker Valerio

Yker es un profesional con más de 10 años de experiencia en proyectos de transformación, innovación y gestión del conocimiento. Actualmente apoya al equipo de Freelancermap en el desarrollo de contenidos.

2 comentarios

  • interesante información, no sabia que netflix tenia tantas tecnologias de desarrollo y diferentes lenguajes de programacion

  • Excelente artículo. Muy claro. Sería interesante saber que otras tecnologías están «probando» o desarrollando y en relación a AI / modelos ML/DL y gobiernan los datos… que stack utilizan ej: jupyternotebooks, VERTEX, pureview y por otro lado el mundo del gobierno de la infra DEVOPS… ya que forman parte de la cadena de transmisión desde el caso de uso / propósito de negocio hasta su implementación y mejora continua MLOPS….

Entradas recientes