Introducing G2.ai, the future of software buying.Try now

¿Qué son los Tech Stacks? Elegir el adecuado para el desarrollo

25 de Marzo de 2019
por John Thomas Lang

Ya seas un principiante o un veterano digital experimentado, decidir la pila de tecnología adecuada —también conocida como tech stack— es crucial para el éxito en el desarrollo de aplicaciones.

Un momento fugaz de brillantez... Tengo una idea para una aplicación. Pero, ¿qué sigue?

Una vez que hayas decidido entre una aplicación web o una aplicación móvil, es hora de determinar tu pila de tecnología. Comencemos con lo básico:

¿Qué es una pila de tecnología?

Crear una aplicación revolucionaria requiere una mezcla de herramientas de hardware y software combinadas con una propuesta de valor clara.

Cada elemento crucial se superpone al otro, proporcionando todo lo necesario para desarrollar y mantener una aplicación eficaz.

what is a tech stack

Tecnologías del lado del cliente (o front-end)

Esto proporciona todo lo necesario para potenciar la experiencia del usuario de la aplicación; dicho de otra manera, cada interacción que un usuario tiene con una aplicación viene a través del lado del cliente.

Por ejemplo, si consideramos un coche, el front-end serían todos los botones, perillas y interruptores con los que un usuario interactúa. Si el usuario quiere encender el aire acondicionado, no necesita entender cómo funciona el subsistema eléctrico del coche; solo sabe que girar una perilla enciende el A/C. De la misma manera, el front-end normaliza sistemas complejos en interacciones de usuario discretas y simples.

Las tecnologías comunes del lado del cliente incluyen:

  • Lenguajes de marcado (HTML, XML, XHTML)
  • Hojas de estilo (CSS internas, externas e inline)
  • Lenguajes de programación específicos (JavaScript, Xamarin)
  • Marcos de UI construidos sobre un lenguaje de programación (ReactJS, AngularJS, ambos construidos sobre JavaScript)

Tecnologías del lado del servidor (o back-end)

Esto conecta la interacción del usuario con subsistemas que realizan lógica, se comunican con bases de datos, coordinan con servicios web, y más.

Siguiendo con la analogía del coche, el back-end podría ser la computadora a bordo del coche: su subsistema eléctrico, su subsistema hidráulico, etc. Todos estos hacen que el coche "funcione".

Las tecnologías comunes del lado del servidor incluyen:

  • Lenguajes de programación específicos (C#, Java, PHP, Python)
  • Varios marcos de aplicación construidos sobre un lenguaje de programación (Node.js construido sobre JavaScript, .NET construido sobre C#, Django construido sobre Python)
  • Bases de datos (Microsoft SQL Server, MySQL, PostgreSQL)
  • Infraestructuras y servicios en la nube (AWS, Microsoft Azure, Google Cloud)

¿Quieres aprender más sobre Desarrollo de Aplicaciones Software? Explora los productos de Desarrollo de Aplicaciones.

Pilas de tecnología comunes

Si bien las pilas de tecnología son un paisaje en constante cambio, las pilas de tecnología más comunes son LAMP, MEAN y MERN. Vamos a desglosarlas.

LAMP (Linux, Apache, MySQL, PHP)

LAMP es ampliamente considerada una de las pilas de tecnología más confiables y accesibles. Construida para ejecutarse en un sistema operativo Linux, la pila se centra en Apache como el servidor web principal (es decir, el medio por el cual los usuarios acceden a la aplicación), MySQL como el proveedor de bases de datos, y PHP (más marcos complementarios, como Laravel) como la tecnología de back-end.

LAMP no impone una tecnología de front-end particular; los desarrolladores pueden elegir la que mejor se adapte a sus necesidades. Los componentes que conforman una pila LAMP casi siempre son compatibles con los proveedores de hosting y aseguran estabilidad y facilidad de uso para los desarrolladores.

Aunque LAMP es una de las pilas más antiguas y confiables, sus deficiencias, como la dificultad para escalar y no estar bien adaptada para aplicaciones de una sola página, tienden a dirigir a los desarrolladores web y de aplicaciones hacia una solución diferente.

MEAN (Mongo, Express, AngularJS, Node.js)

Uno de los nuevos (pero poderosos) en el bloque, MEAN combina un marco moderno con capacidades distintas que trabajan en concierto entre sí a lo largo de la pila, demostrando ser una solución de vanguardia para muchos desarrolladores.

MEAN utiliza MongoDB como el proveedor de bases de datos principal, AngularJS como la tecnología de front-end, y una combinación de Node.js y Express.js como la tecnología de back-end.

MEAN proporciona lo mejor de ambos mundos al permitir facilidad de uso mientras permite a los desarrolladores escalar desde un producto mínimo viable hasta tecnología empresarial con facilidad.

MERN

MERN es una de las pilas de tecnología más comúnmente utilizadas para construir aplicaciones de alta calidad. Aunque muy similar a MEAN, la principal distinción entre las dos radica en el uso de React en lugar de Angular.

React es como un cubo de piezas de LEGO. Proporciona libertad ilimitada pero requiere algo de ingenio para usarse correctamente. Angular es más parecido a un set de LEGO predefinido. Es muy directo y definido pero limita la libertad del desarrollador.

Ambos están construidos sobre JavaScript (o TypeScript), y generalmente es el caso que cuando encuentras a alguien bueno en uno, son decentes en el otro. Dicho esto, la comunidad es muy apasionada por su lado particular.

Pilas de tecnología en la práctica

¿Alguna vez te has preguntado qué pilas de tecnología impulsan tus marcas favoritas? Echemos un vistazo a lo que los líderes de la industria están usando para sus pilas.

Pila de tecnología de Uber

  • Servidor web: NGINX, Apache
  • Bases de datos: MySQL, PostgreSQL, MongoDB
  • Marco del lado del servidor: Node.js
  • Lenguajes de programación: Python, Java, JavaScript, Objective-C

Pila de tecnología de Instacart

  • Servidor: NGINX
  • Bases de datos: PostgreSQL, Redis
  • Marco del lado del servidor: Rails
  • Lenguajes de programación: Ruby, Python, Objective-C

Pila de tecnología de Reddit

  • Servidor: NGINX
  • Bases de datos: PostgreSQL, Redis
  • Marco del lado del servidor: Node.js
  • Lenguajes de programación: JavaScript, Python

Consejo: Averigua si tu pila de tecnología necesita seriamente una auditoría de TI.

Elegir la pila de tecnología adecuada para el desarrollo de tu aplicación

Si bien la mayoría de los desarrolladores experimentados tienen pilas de tecnología preferidas, puede parecer desalentador para cualquier emprendedor no técnico. La mejor manera de navegar por el mundo de las pilas de tecnología es encontrar un recurso o experto en la materia que guíe tu camino. Aunque algunos expertos en la materia son parciales en su toma de decisiones, consultar a un experto puede ser el mejor dinero gastado y ahorrarte futuros dolores de cabeza. Si los recursos son escasos, comienza con estos pasos simples:

Descubre las necesidades de tus usuarios

Como con cualquier esfuerzo emprendedor, pon al usuario final primero. La actividad del usuario es un factor guía al elegir la pila de tecnología adecuada. Por ejemplo, si un gran porcentaje de tus usuarios utiliza un dispositivo móvil para interactuar con tu aplicación, seleccionar una pila que sea "primero móvil" podría ser la elección más efectiva. Si tus usuarios son "solo móviles", tu pila de tecnología podría variar mucho de otros tipos de aplicaciones.

CONSEJO: Familiarízate con los seis diferentes tipos de aplicaciones móviles para asegurarte de que tu aplicación esté un paso por encima del resto en tu categoría.

Define tus necesidades de desarrollo

Entender las necesidades de la aplicación es la clave para elegir la pila de tecnología adecuada. El tamaño, alcance y complejidad de tu aplicación pueden cambiar la dirección de tu pila de tecnología.

  • Proyectos pequeños como productos mínimos viables (MVPs) o aplicaciones de una sola página pueden ser perfectos para pilas bien definidas y con soporte comunitario como Python-Django o Node.js-React. Agregar complejidad después del hecho puede afectar tu decisión, así que mantén la escalabilidad en mente durante el proceso de desarrollo.
  • Proyectos medianos como tiendas de comercio electrónico en línea y aplicaciones de software de mercado medio requieren pilas de tecnología un poco más complejas con múltiples capas de lenguajes de programación y marcos. Al igual que con proyectos más pequeños, mantener la escalabilidad al frente de tu proceso de toma de decisiones es clave.
  • Proyectos grandes como mercados complejos o aplicaciones sociales probablemente requieran una pila de tecnología más escalada para mantener la integridad y el rendimiento de la aplicación. Estas pilas de tecnología a mayor escala generalmente emplean múltiples capas de lenguajes de programación y marcos mientras se construyen para funcionar bajo circunstancias de alto volumen.

Determina tus recursos

Es importante entender tus limitaciones de recursos al elegir una pila de tecnología para el desarrollo de tu aplicación. Una pila de tecnología increíble no significa nada sin los desarrolladores adecuados para usarla. La mayoría de los marcos, herramientas de desarrollo y bases de datos son de código abierto, lo que significa que son gratuitos y están ampliamente disponibles. La mayoría de las entidades de código abierto permiten un uso sin restricciones y proporcionan al desarrollador un gran lienzo para pintar. La mayoría de los costos de aplicación provienen directamente de servidores y obligaciones de hosting. Estos también deben considerarse al elegir tu pila de tecnología.

Consejo: ¿Cuánto cuesta hacer una aplicación? Aprende sobre 5 gastos ocultos que podrían desbordar tu presupuesto si no tienes cuidado.

Encontrar al desarrollador adecuado para el alcance de tu proyecto es otro factor a considerar al elegir tu pila de tecnología. Por ejemplo, algunos desarrolladores se especializan solo en desarrollo front-end o back-end. Encontrar un desarrollador full-stack que pueda hacer ambos podría ser la solución adecuada pero tiene una correlación directa con la asignación de recursos.

Además, considera la "fuente" de cualquier desarrollador que contrates. Los desarrolladores con títulos tradicionales en Ciencias de la Computación suelen ser contrataciones costosas pero vienen con una amplia variedad de habilidades y experiencia que apoyarán adecuadamente tu aplicación, nueva o madura. Los desarrolladores que provienen de bootcamps de codificación reciben inmersiones profundas en las pilas de tecnología más comunes y más utilizadas en la industria, pero pueden no tener el mismo nivel de experiencia requerido para escalar una aplicación a niveles empresariales.

Consejo: ¿Eres más un aficionado al bricolaje? Aprende más sobre el mejor software de diseño de aplicaciones para ver si hay una solución para ti.

Comienza tu pila

Ahora que has descubierto el mundo de las pilas de tecnología, estás un paso más cerca de construir tu aplicación y tomar el mercado por asalto. En todo lo digital, mantén al usuario primero y ofrece una experiencia que deleite.

Descubre los beneficios del desarrollo rápido de aplicaciones y su potencial para elevar tu rendimiento.

John Thomas Lang
JTL

John Thomas Lang

John is a former Content Marketing Manager at G2. He has played a key role in scaling multiple award-winning tech startups in Chicago. A proud Colorado native, you can likely find him digging through the crates for vinyl records or nerding out on SABR analytics.