Descripción general de los sistemas backend
Obtén un mapa de alto nivel de los componentes del sistema backend y de cómo trabajan juntos para servir a las aplicaciones.
¿Qué es un sistema backend
Un sistema backend procesa solicitudes de los clientes, ejecuta la lógica de la aplicación, interactúa con el almacenamiento de datos y devuelve una respuesta.
- Los sistemas backend reciben solicitudes de clientes como navegadores, aplicaciones móviles u otros servicios.
- Ejecutan la lógica de la aplicación que determina cómo debe comportarse el sistema.
- Leen y escriben en almacenes de datos persistentes como bases de datos.
Detalles
Cuando un usuario interactúa con una aplicación, normalmente se está comunicando con una interfaz de cliente como un navegador web o una aplicación móvil. Ese cliente normalmente no contiene la lógica principal del sistema. En su lugar, envía una solicitud a un sistema backend que realiza el trabajo pesado.
Un sistema backend se sitúa entre el cliente y la capa de datos. Su trabajo es recibir solicitudes, procesarlas según las reglas de la aplicación y devolver un resultado. Este proceso normalmente incluye validar entradas, ejecutar la lógica de negocio y recuperar o modificar datos almacenados en bases de datos u otros sistemas de almacenamiento.
Por ejemplo, cuando un usuario inicia sesión en un sitio web, el cliente envía las credenciales de acceso al backend. El backend verifica esas credenciales, consulta la base de datos en busca de registros de usuario y devuelve una respuesta que indica si la autenticación fue exitosa.
En esencia, el backend actúa como el motor de toma de decisiones de una aplicación. Transforma las solicitudes entrantes en respuestas significativas aplicando lógica y coordinándose con sistemas subyacentes como bases de datos, cachés o servicios externos.
Arquitectura de Backend y Componentes Principales
Los sistemas backend se organizan en capas para que el manejo de solicitudes, la lógica de la aplicación y la gestión de datos permanezcan separados y sean manejables.
- La capa de API recibe solicitudes de los clientes y envía respuestas de vuelta.
- La capa de aplicación ejecuta la lógica de negocio y coordina el comportamiento del sistema.
- La capa de datos almacena y recupera información persistente de las bases de datos.
Detalles
La mayoría de los sistemas backend siguen una estructura por capas que separa las responsabilidades entre distintas partes del sistema. En lugar de colocar toda la funcionalidad en una sola base de código grande, cada capa se enfoca en resolver un problema específico.
La capa de API actúa como el punto de entrada al backend. Recibe solicitudes de clientes como navegadores o aplicaciones móviles, valida las entradas y formatea la respuesta que se devuelve al cliente.
La capa de aplicación contiene la lógica de negocio del sistema. Aquí es donde se implementan las reglas, los flujos de trabajo y los procesos de toma de decisiones. Por ejemplo, la capa de aplicación podría determinar cómo se procesan los pedidos o si un usuario tiene permiso para realizar una acción.
La capa de datos maneja el almacenamiento persistente. Se comunica con bases de datos o sistemas de almacenamiento para leer y escribir la información que la aplicación necesita para funcionar.
Debajo de estos componentes está la capa de infraestructura, que proporciona el entorno de ejecución para el sistema. Esto incluye servidores, contenedores, sistemas operativos y servicios en la nube que alojan el backend.
Esta estructura por capas ayuda a los ingenieros a mantener los sistemas modulares, lo que facilita su mantenimiento, extensión y escalado a medida que las aplicaciones crecen.
La canalización de solicitudes del backend
Dentro del backend, las solicitudes entrantes pasan por una canalización estructurada donde diferentes componentes procesan la solicitud paso a paso.
- Las solicitudes llegan como solicitudes HTTP y se dirigen al controlador correcto mediante el enrutamiento.
- El middleware puede inspeccionar, modificar o bloquear solicitudes antes de que se ejecute la lógica principal de la aplicación.
- La aplicación ejecuta la lógica de negocio, interactúa con la base de datos y devuelve una respuesta.
Detalles
Cuando un cliente envía una solicitud a un sistema backend, esta pasa por varios pasos de procesamiento en lugar de ir directamente a la base de datos o a la lógica de la aplicación.
La solicitud primero llega al servidor como una solicitud HTTP, donde un router determina qué parte de la aplicación debe manejarla. Antes de llegar a la lógica principal, la solicitud puede pasar por middleware que realiza tareas como comprobaciones de autenticación, registro o validación.
Una vez que llega al handler, el backend ejecuta la lógica de negocio, a menudo organizada en controllers y services. Estos componentes procesan la solicitud y pueden realizar consultas a la base de datos para leer o actualizar los datos almacenados.
Después de completar el procesamiento, el backend construye una respuesta y la envía de vuelta al cliente.
Responsabilidades y restricciones de la ingeniería backend
Los ingenieros backend diseñan y operan los sistemas que procesan solicitudes y gestionan los datos de la aplicación.
- Diseñar APIs que permitan a clientes y servicios interactuar con el sistema.
- Implementar la lógica de la aplicación que determina cómo se comporta el sistema.
- Gestionar datos persistentes y garantizar que los sistemas sigan siendo confiables a medida que crece el uso.
Detalles
Los ingenieros backend son responsables de los sistemas internos que hacen que las aplicaciones funcionen. Su trabajo incluye construir APIs, implementar la lógica de negocio, gestionar el almacenamiento de datos y mantener los servicios backend.
Al mismo tiempo, los ingenieros deben diseñar sistemas bajo restricciones del mundo real. Las aplicaciones deben responder rápidamente (rendimiento), manejar una demanda creciente (escalabilidad) y seguir disponibles cuando fallan componentes (confiabilidad).
Los sistemas también deben proteger la información sensible (seguridad) y, al mismo tiempo, seguir siendo comprensibles y adaptables para el desarrollo futuro (mantenibilidad).
Como estos objetivos a menudo compiten entre sí, la ingeniería backend implica equilibrar compromisos mientras se mantienen los sistemas estables y eficientes.
Monolito vs Microservicios
Los sistemas backend suelen organizarse como una sola aplicación (monolito) o como múltiples servicios independientes (microservicios).
- Un monolito es un sistema desplegable único en el que todos los componentes de la aplicación se ejecutan juntos.
- Los microservicios dividen el sistema en servicios más pequeños e independientes.
- Estos servicios se comunican entre sí mediante APIs o llamadas de red.
Detalles
Una arquitectura monolítica coloca todos los componentes de la aplicación en un único sistema desplegable. La capa de API, la lógica de la aplicación y las interacciones con la base de datos suelen existir dentro de una sola base de código y ejecutarse como un solo servicio. Muchas aplicaciones en etapas tempranas empiezan así porque el desarrollo y el despliegue son más sencillos.
En un monolito, los componentes a menudo comparten la misma base de datos y se despliegan juntos como una sola unidad. Aunque este enfoque puede ser más fácil de construir y mantener al principio, el sistema puede volverse más difícil de escalar o modificar a medida que crece.
Una arquitectura de microservicios adopta un enfoque diferente. En lugar de un sistema grande, la aplicación se divide en múltiples servicios más pequeños. Cada servicio se centra en una responsabilidad específica y puede desarrollarse, desplegarse y escalarse de forma independiente.
Estos servicios se comunican entre sí mediante comunicación entre servicios, normalmente usando APIs o sistemas de mensajería. Esto permite que los sistemas grandes escalen y evolucionen con más flexibilidad, pero también introduce complejidad adicional en la red, el despliegue y la coordinación del sistema.
Sistemas backend como la capa de coordinación
Un sistema backend actúa como la capa de coordinación que conecta clientes, almacenamiento de datos y servicios externos.
Aplicación cliente
Acción del usuario
API de backend
Lógica central
Caché
Datos rápidos
Base de datos
Persistencia
Cola de mensajes
Tareas asíncronas
API externa
Integración
- Los backends coordinan la comunicación entre clientes, bases de datos y servicios externos.
- Aplican reglas, validan solicitudes y controlan cómo fluye la información a través del sistema.
- La mayoría de los sistemas reales integran múltiples componentes de infraestructura detrás de una sola API.
Detalles
En aplicaciones del mundo real, los sistemas backend rara vez operan de forma aislada. En su lugar, coordinan múltiples sistemas subyacentes que trabajan juntos para ofrecer un servicio.
Un backend típico puede comunicarse con bases de datos para almacenamiento persistente, cachés para lecturas más rápidas, colas de mensajes para procesamiento en segundo plano y APIs externas para integraciones de terceros. El backend decide cuándo y cómo deben usarse estos componentes.
Esta capa de coordinación también aplica reglas importantes. Valida las solicitudes entrantes, garantiza que los usuarios estén autorizados para realizar acciones y mantiene la consistencia cuando los datos cambian en todo el sistema.
Desde la perspectiva del diseño de sistemas, el backend actúa como el centro de control de la aplicación. Gestiona cómo fluye la información entre los componentes de infraestructura mientras expone una interfaz limpia con la que los clientes pueden interactuar de forma segura.
Sección de preguntas
1 / 5
Esta lección forma parte del contenido premium
Pásate al plan premium para eliminar el desenfoque y desbloquear la lectura completa.