Los Mejores Stacks Para Backend

Los Mejores Stacks Para Backend
Photo by Fotis Fotopoulos / Unsplash

¿Pensando en construir una aplicación web/móvil con un servicio?, pues necesitarás tener un backend, esto en caso de que requieras tu aplicación sea totalmente escalable y mantenible, personalizada y a medida. De lo contrario, puedes optar por alguna solución sin backend.

El día de hoy te mostraré algunos de los mejores Stacks para realizar desarrollo en backend, estos Stacks son exclusivos para backend pero, con muchos de ellos sino es que con casi todos, puedes realizar una aplicación full-stack, ya que permiten hacer render de templates HTML.

Cabe mencionar que esta lista es con base a experiencia propia en el uso de las tecnologías y, a una investigación.

¿Qué es un Stack/Tech Stack?

Un stack tecnológico no es más que un conjunto de herramientas y tecnologías las cuales, trabajan de manera unida para construir un producto y/o solucionar un problema o necesidad.

Dichas herramientas y tecnologías pueden ser por ejemplo: lenguajes de programación, motores de bases de datos, servidores web y frameworks. Esto sería el stack principal y más importante, ya que muchas personas añaden más cosas como Cache, motores de búsqueda, etc.

Existen diferentes stacks, por ejemplo, para hacer front-end y mobile dev, en este caso nos contraremos unicamente en Backend.

PDPN

Aunque tal vez no sea tan conocido por las siglas, pero si por los nombres completos de las tecnologías, es uno de los Stacks para backend más famosos, utilizados y poderosos.

La razón de tal uso y poder, radica en la combinación del lenguaje de programación (Python), su framework (Django) y el motor de base de datos (PSQL), los cuales hacen un perfecto match.

PDPN es ampliamente usado, no sólo por empresas insignias de tecnología como Instagram, Pinterest o Disqus, sino también por Start-Ups, entre las cuales, se ha destacado su uso por ser fácil de aprender, sencillo de utilizar, simple y mantenible.

💡
Si quieres tener un buen trabajo hoy en día, Python + Django son de los skills más buscados por Start-Ups en estos tiempos.

Ventajas

  • Fácil de aprender (Tanto Python como Django)
  • Fácil de mantener
  • PostgreSQL es una base de datos mega poderosa que puede fungir como relacional, pero también en parte como no-relacional.
  • Existe mucha documentación sobre todas las tecnologías
  • NGINX ha demostrado encajar perfectamente con las demás tecnologías y, mejor en rendimiento que Apache.

Desventajas

  • Es fácil hacer código muy poco escalable
  • Tiene un alto consumo de recursos (memoria y CPU) en largos sistemas
  • Django puede no ser una buena opción si lo que buscas es crear algo pequeño o un MVP.
  • Python por ser un lenguaje interpretado, puede ser un poco lento.

LAMP

Aunque no estoy tomando en cuenta el sistema operativo a la hora del despliegue de los Stacks, ya que casi todos son en Linux pero, así es como se conoce este.

  • Linux (Sistema Operativo)
  • Apache (Servidor Web)
  • MySQL (Motor de Base de Datos)
  • PHP (Lenguaje de Programación)

Un Stack ampliamente conocido por varios, desde la universidad, en cursos, en el ambiente laboral, etc. Es uno de los stacks más usados (recordemos que cantidad != calidad) y sobre el cual están hechas una gran cantidad de empresas, sitios, aplicaciones, etc.

LAMP fue muy popular hace algunos años, no había proyecto o empresa que cuando iniciaba, que no lo utilizara para crecer. Lamentablemente en los últimos años su popularidad fue cayendo muy rápido, aún así, existen aún muchas empresas que lo utilizan como: Wordpress, Facebook, Wikipedia o Tumblr.

Ventajas

  • Muy fácil de aprender
  • Existen una cantidad enorme de recursos, tutoriales, cursos, libros sobre las tecnologías y el Stack completo
  • Es casi un Standard en el desarrollo web

Desventajas

  • PHP es muy propenso a crear código spaghetti (aunque en los últimos años sus frameworks han combatido mucho esto)
  • Apache no es tan velóz y eficiente como NGINX
  • MySQL aunque es la base de datos más utilizada, han salido a la luz mejores competidores en rendimiento y funcionalidad como MariaDB o PostgreSQL.
  • Está siendo remplazado por stacks más modernos (como MERN)

💡
Si te ha servido o gustado el contenido, puedes ayudarme a comprar un libro o para mantener el blog, me sería de mucha ayuda para seguir trayendo contenido como este ❤️.

MERN

Uno de los stacks tecnológicos que sin duda alguna han sido muy famosos en los últimos años debido a su simplicidad, su fácilidad para realizar servicios y frontend (En esta ocasión omitiremos la R de React, ya que es solo de Backend).

  • MongoDB (Base de Datos No-Relacional)
  • ExpressJS (Framework Web para Backend)
  • ReactJS (Framework Web para Frontend)
  • NodeJS (Entorno de Ejecución / JavaScript)

MERN es una de las opciones populares cuando se pretenden realizar una aplicación y/o servicio de manera rápida y en algunos casos, con pocos recursos. ¿Por qué con pocos recursos?, porque con este Stack puedes no sólo construir Backend, sino también muy fácil una aplicación Full-Stack (Agregando la R de React).

Ya que tanto el backend como el frontend, estarían construidos sobre el mismo lenguaje, que en este caso es Javascript. Y al ser un stack más moderno y de alto impacto, muchas empresas lo utilizan hoy en día, en especial las Start-Ups.

Ventajas

  • Utiliza una base de datos No-Relacional, lo cual le da una velocidad de lectura increíblemente rápida a tu aplicación.
  • El Framework, es uno de los más rápidos y poderosos que tiene Javascript, así como también de seguro y ha demostrado ser apto para construir aplicaciones desde cero.
  • NodeJS es el entorno de ejecución de JS para el backend por defecto y el standard, aunque ya le salió competencia (DENO - el cual aún no he probado)
  • Puedes tener tanto backend como frontend en un solo lenguaje de programación

Desventajas

  • Muchas veces el optar por una base de datos No-Relacional no siempre es la mejor opción, dependiendo del tipo de servicio/aplicación estés desarrollando, a pesar de ser más lenta, es más poderoso y se adapta mejor SQL.
  • JavaScript no deja de ser un lenguaje interpretado para el lado del backend también, por esta razón puede ser más lento que otros lenguajes, en especial contra los compilados.
  • Puede resultar poco eficiente a la hora de escalar el servicio, ya que muchas veces se queda como un gran servicio monolítico todo en uno, que contiene Frontend + Backend todo junto.

DigitalOcean Referral Badge

GGPN

Este no es un stack que sea tan o casi nada conocido, ya que es un Tech Stack que recién comencé a utilizar y ha demostrado tener un enorme poder, simplicidad, velocidad y poco consumo de recursos.

Esto es tal vez algo que no se esperaban, pude haber metido ASP.NET en este punto, pero la verdad es que cada día que pasa, Golango está ganando terreno en una manera increíble.

Es así que me he puesto manos a la obra a hacer uso de el y a realizar pruebas, y la comparación con sus competidores en esta lista es impresionante, siendo muy velóz por mucho.

Tal vez no sea el uso de las tecnologías completas aquí mencionadas pero, si las principales como Lenguaje y Base de Datos, lo que las grandes empresas utilizan, como Google principalmente, Uber, MercadoLibre y más.

Si aún no has utilizado o no conocías este Stack, te invito a que lo revises, tal vez te puedas llevar una gran sorpresa.

Ventajas

  • Golang es un lenguaje moderno, creado para combatir problemas modernos y, es compilado directamente a binario (sin necesidad de una maquina virtual coff coff Java).
  • Gin es el framework de desarrollo web más rápido para Golang, y no solamente porque yo lo digo, en su repositorio puedes encontrar más información, incluso en benchmarks, ha demostrado ser muy superior a los demás.
  • Postgres encaja perfectamente con Go, con su concurrencia y por lo altamente tolerable a fallos y escalable que es.
  • Bajísimo consumo de memoria y CPU.

Desventajas

  • No es un lenguaje del cual puedas obtener una documentación muy amplia en español (aparte de la oficial).
  • Gin tiene una documentación algo decepcionante a mi parecer, me costó mucho poder encontrar cosas, tenía que meterme directamente al código fuente o, buscar como loco en Google.
  • Puedes hacer o cosas muy muy buenas, o muy malas con Go, aunque fue diseñado para ser concurrente y velóz, sino lo usas bien, puede tener el mismo rendimiento que un lenguaje interpretado o peor.

Y por último pero no por eso menos importante...

RRPN

Uno de los Tech Stacks también muy conocidos, aunque no tan utilizado hoy en día, pero no por eso quiere decir que no sea prometedor y de gran capacidad.

Esta fue una de las mejores combinaciones que pude encontrar, ya que existen otras variantes a esta que no están tan completas ni son tan utilizadas.

Ruby a pesar de que ya tiene sus años, sigue siendo uno de los lenguajes TOP en el mercado, y no por nada, esto se debe a su simplicidad, fácil curva de aprendizaje (semejante a Python) y por su framework (Ruby-On-Rails) tan potente para realizar aplicaciones web.

💡
Hoy en día existen muchas empresas con servicios viejos en Ruby, que están pagando una enorme cantidad de dinero por actualizarlos y/o cambiarlos de tecnología. Te lo dejo para que lo pienses...

Ventajas

  • Es fácil de usar
  • Existe una basta cantidad de documentación
  • Ruby + PSQL es un match perfecto, mejor que tu match en Tinder.
  • Ruby, con sus gems, puedes instalar múltiples librerías de ayuda para extener tu proyecto y llevarlo a otro nivel

Desventajas

  • No deja de ser un lenguaje interpretado
  • Ya no es tan usado como antes
  • Es muy común que con Ruby los servicios de backend se conviertan rápidamente en molitos poco escalables.

Conclusión

Y como dice el dicho, para gustos, colores. Es así que dependiendo de la situación, tamaño, urgencia y presupuesto, es que puedes optar por un Stack u otro. El stack de Python es muy fácil de mantener y desarrollar, pero cada vez es más díficil encontrar desarrolladores Python, aparte de que mientras más grande sea tu aplicación, mas cara te saldrá la factura de AWS/GCP/Azure.

Y, así mismo con cada Stack, tiene sus ventajas y desventajas, es por ello que la mejor opción es analizar todas las opciones y optar por la que mejor se adapte para un plazo corto y mediano.

Recuerda que también puedes seguirme en mis redes sociales, para estar en contacto y enterarte de primera mano de las novedades que se vienen.