El backend y el frontend son dos co­m­po­ne­n­tes ese­n­cia­les de un software, operan de manera in­de­pe­n­die­n­te y se co­m­ple­me­n­tan mu­tua­me­n­te. Si nos ima­gi­na­mos que un software es un automóvil, el backend abarcaría el chasis, la tra­n­s­mi­sión, el sistema eléctrico, los frenos y otros co­m­po­ne­n­tes mecánicos. Por otro lado, el frontend en esta analogía sería equi­va­le­n­te al interior del vehículo, que incluye elementos como el volante, el sa­l­pi­ca­de­ro y otras funciones de control y confort.

De­fi­ni­ción

El backend se refiere a la parte de una página web o una apli­ca­ción que opera en segundo plano y que no está accesible para los usuarios. En el backend es donde se lleva a cabo el al­ma­ce­na­mie­n­to y pro­ce­sa­mie­n­to de datos.

¿En qué consiste un backend?

El término “back-end” proviene del inglés y significa algo así como “parte de atrás” o “su­b­e­s­tru­c­tu­ra”. Aquí es donde tiene lugar todo lo que ocurre detrás del escenario.

El término backend se utiliza en el lenguaje cotidiano para describir dos cosas di­fe­re­n­tes:

  1. La capa de software en la que tiene lugar el pro­ce­sa­mie­n­to de datos.
  2. Una zona de ad­mi­ni­s­tra­ción protegida a la que los usuarios regulares no tienen acceso.

Un software se puede comparar a una máquina de pro­ce­sa­mie­n­to de datos, ya que ejecuta cálculos cuyos re­su­l­ta­dos de­te­r­mi­nan el fu­n­cio­na­mie­n­to del software. Los datos se generan y almacenan, a menudo uti­li­za­n­do bases de datos como MongoDB y MySQL. Todo esto sucede en segundo plano.

A di­fe­re­n­cia del frontend, que se adapta al usuario humano, el backend está orientado a los re­qui­si­tos técnicos. Prioriza la efi­cie­n­cia, el re­n­di­mie­n­to, la es­ca­la­bi­li­dad y la seguridad.

Siguiendo el principio de “Se­pa­ra­tion of concerns”, en español “Se­pa­ra­ción de re­s­po­n­sa­bi­li­da­des”, el backend y el frontend se de­sa­rro­llan como capas in­de­pe­n­die­n­tes pero co­m­ple­me­n­ta­rias. Ambas capas siempre son ne­ce­sa­rias para crear un software ple­na­me­n­te funcional. Un backend sin el frontend es como una máquina sin botones.

Nota

Para obtener más in­fo­r­ma­ción sobre la di­fe­re­n­cia entre el backend y el frontend, puedes consultar nuestro artículo.

¿Quién trabaja en el backend?

Existen dos grupos de usuarios di­fe­re­n­tes que trabajan en el backend:

  1. Ad­mi­ni­s­tra­do­res que inician sesión en el backend y gestionan el sistema.
  2. De­sa­rro­lla­do­res de backend que crean, mantienen y de­sa­rro­llan el backend.

Veamos en detalle cómo trabajan ambos grupos en el backend.

¿Cómo trabajan los ad­mi­ni­s­tra­do­res en el backend?

Para entender cómo los ad­mi­ni­s­tra­do­res trabajan en el backend, podemos tomar el popular CMS WordPress como ejemplo. A través del acceso al WordPress-Admin-Login, los ad­mi­ni­s­tra­do­res pueden acceder al backend del CMS (también conocido como el WordPress dashboard), desde donde tienen su propia interfaz para crear, editar y eliminar contenido.

Además de estas ope­ra­cio­nes CRUD clásicas (crear, leer, ac­tua­li­zar y eliminar), los ad­mi­ni­s­tra­do­res de WordPress en el backend también gestionan los roles de usuarios de WordPress y utilizan plugins de WordPress para la seguridad de páginas web y para otras tareas ad­mi­ni­s­tra­ti­vas.

Nota

A pesar de llamarse “backend”, el dashboard de WordPress es una interfaz gráfica de usuario. La línea que separa el backend del frontend es, por tanto, dinámica en este caso.

¿Cómo trabajan los de­sa­rro­lla­do­res en el backend?

A di­fe­re­n­cia de los ad­mi­ni­s­tra­do­res, los de­sa­rro­lla­do­res de backend no inician sesión en el backend para realizar su trabajo. Más bien, trabajan en un entorno de de­sa­rro­llo local, donde escriben código fuente para luego eje­cu­tar­lo en el servidor o co­n­te­ne­dor de backend.

Después de realizar pruebas, en su mayoría au­to­ma­ti­za­das, utilizan he­rra­mie­n­tas de in­te­gra­ción continua para cargar el código en el servidor. Otra opción es utilizar so­lu­cio­nes de co­m­ple­me­n­tos para crear plugins de WordPress que se ejecutan en el backend pero son ge­s­tio­na­dos por los ad­mi­ni­s­tra­do­res.

A di­fe­re­n­cia del frontend, que se ejecuta en el cliente, el backend se ejecuta en el servidor. Por regla general, se utiliza un web stack” de te­c­no­lo­gías para el de­sa­rro­llo y la ejecución. Los web stacks más conocidos son LAMP y MEAN, aunque existen muchos otros.

Un web stack consta de un sistema operativo o co­n­te­ne­dor como entorno de ejecución, dentro del cual se ejecuta un programa servidor que recibe y responde co­n­ti­nua­me­n­te a las so­li­ci­tu­des. Para ello, se ejecutan scripts en un lenguaje de pro­gra­ma­ción web, que actúa como in­te­r­me­dia­rio entre el servidor y la base de datos:

Web stack Entorno de ejecución Servidor Base de datos Lenguaje
LAMP Linux Apache MySQL PHP
MEAN Node.js Express.js MongoDB Angular (Ja­va­S­cri­pt)

Los de­sa­rro­lla­do­res de backend a menudo utilizan fra­me­wo­r­ks web para si­m­pli­fi­car la re­cu­pe­ra­ción, el pro­ce­sa­mie­n­to y el al­ma­ce­na­mie­n­to de datos. A co­n­ti­nua­ción, te mostramos un resumen de los fra­me­wo­r­ks de backend más im­po­r­ta­n­tes.

Nota

¿Sabías que los pro­gra­ma­do­res pro­fe­sio­na­les que trabajan en el de­sa­rro­llo tanto de backends como de frontends se llaman “full stack de­ve­lo­pe­rs”?

¿Cuáles son los pri­n­ci­pa­les fra­me­wo­r­ks de backend?

Los fra­me­wo­r­ks si­m­pli­fi­can el proceso de de­sa­rro­llo en el backend, evitando la necesidad de escribir desde cero procesos re­cu­rre­n­tes como la au­te­n­ti­ca­ción de usuarios o la conexión a una base de datos. Los fra­me­wo­r­ks de backend suelen incluir ca­ra­c­te­rí­s­ti­cas como el mu­l­ti­li­n­güi­s­mo y un lenguaje de pla­n­ti­llas para generar el código HTML que se pro­po­r­cio­na al frontend.

El framework de backend es­pe­cí­fi­co a utilizar depende en gran medida del entorno de pro­gra­ma­ción o el lenguaje de pro­gra­ma­ción que se esté uti­li­za­n­do. Los lenguajes más uti­li­za­dos son PHP o Python, Ruby, Ja­va­S­cri­pt y Java. A co­n­ti­nua­ción, se presentan los fra­me­wo­r­ks de backend más populares para cada uno de ellos.

Symfony y Laravel: los mejores fra­me­wo­r­ks de backend en PHP

Symfony y Laravel son dos de los fra­me­wo­r­ks de backend más uti­li­za­dos. Ambos permiten crear apli­ca­cio­nes web so­fi­s­ti­ca­das sin tener que empezar desde cero. Laravel es más fácil y rápido de aprender, mientras que Symfony es más potente y flexible.

Ambos sistemas destacan por su diseño modular. Por ejemplo, del framework PHP de Symfony han surgido muchas te­c­no­lo­gías web útiles. Laravel, por otro lado, también ha co­n­tri­bui­do al de­sa­rro­llo con sus pla­n­ti­llas Laravel Blade.

Consejo

Aprende a programar tus propias apli­ca­cio­nes web con PHP con nuestro magnífico tutorial de PHP.

Ruby on Rails: el clásico entre los fra­me­wo­r­ks de backend en MVC

Ruby on Rails (RoR) es un framework de backend que se consideró un pionero en su la­n­za­mie­n­to, puesto que co­n­tri­bu­yó al éxito inicial del lenguaje de pro­gra­ma­ción Ruby. Pro­ba­ble­me­n­te ningún otro framework se ha centrado tanto en la pro­du­c­ti­vi­dad y la sa­ti­s­fa­c­ción del de­sa­rro­lla­dor como lo hizo Ruby. RoR po­pu­la­ri­zó el enfoque Modelo-Vista-Co­n­tro­la­dor (MVC) y allanó el camino para muchos fra­me­wo­r­ks de backend po­s­te­rio­res.

Consejo

De­sa­rro­llo de apli­ca­cio­nes web en Python con el framework Django

Python es uno de los lenguajes de scripting clásicos de Internet. Django es un potente framework de backend que permite de­sa­rro­llar rá­pi­da­me­n­te nuevas apli­ca­cio­nes web. Django utiliza el patrón de ar­qui­te­c­tu­ra Model-View-Co­n­tro­ller (MVC) y cuenta con su propio template engine (motor de pla­n­ti­llas).

Consejo

Aprende los conceptos básicos del lenguaje de scripting con nuestro tutorial de Python.

Crear apli­ca­cio­nes web en Ja­va­S­cri­pt con Express y Node.js

Tra­di­cio­na­l­me­n­te, los lenguajes de pro­gra­ma­ción se dividían entre aquellos uti­li­za­dos en el frontend y los que se usaban en el backend. HTML, Ja­va­S­cri­pt y CSS se asociaban al frontend, mientras que PHP, Python, Perl y Ruby se asociaban al backend. Con la llegada de Node.js, un entorno de ejecución de Ja­va­S­cri­pt, cambió esta dinámica al permitir el uso de Ja­va­S­cri­pt tanto en el frontend como en el backend.

Node.js pro­po­r­cio­na una base para de­sa­rro­llar apli­ca­cio­nes web en Ja­va­S­cri­pt, a menudo uti­li­za­n­do un framework web como Express. Esta co­m­bi­na­ción se hizo famosa como parte del stack MEAN, que también incluye MongoDB y el framework de frontend Angular.

Crear apli­ca­cio­nes web en Java con el framework Spring

Aunque Java no se considera un lenguaje para crear apli­ca­cio­nes web modernas, el framework Spring pro­po­r­cio­na una base sólida para de­sa­rro­llar apli­ca­cio­nes Java complejas. Avances más recientes, como Quarkus, permiten una ejecución eficiente en co­n­te­ne­do­res.

Consejo

Aprende a crear tus propias apli­ca­cio­nes Java con el framework Spring con nuestro tutorial de Spring Boot.

Ir al menú principal