Que es el full stack development?
Bienvenido al curso de pila completa. En este video, aprenderá qué es el desarrollo de pila
completa, lo que hace un desarrollador de pila completa y por qué es un rol de gran demanda en el
mercado laboral actual. Es posible que te preguntes qué son las pilas. Son una combinación de
aplicaciones de software y componentes que utiliza para solucionar un problema o crear un
proyecto con un determinado enfoque de desarrollo. Por ejemplo, está la pila frontal que se centra
principalmente en la interfaz de usuario. Los desarrolladores usan diferentes herramientas y
lenguajes de programación como HTML, CSS y JavaScript para crear el front-end de las aplicaciones
web y móviles, y juntos forman la pila de front-end. Por otro lado, crea el back-end de una
aplicación web que es principalmente el núcleo de las aplicaciones con otro conjunto de lenguajes
de programación y herramientas que incluyen Python, Django y DRF. Y estos comprenden su pila
de back-end. La pila de back-end también incluye un sistema de gestión de datos que consta de
aplicaciones de base de datos para procesar datos. Esto generalmente se conoce como la pila de
datos y es parte de la pila de back-end. Examinemos estas tres pilas con más detalle. La pila de
back-end tiene todo lo que necesita para crear el back-end del núcleo de una aplicación que se
ocupa de la lógica comercial, los flujos de trabajo y los datos. El desarrollo de back-end incluye
lenguajes de programación como Python o marcos de JavaScript como Django y utilidades como
DRF. Y también crea herramientas, bases de datos y aplicaciones de almacenamiento en caché.
Cambiemos el enfoque al front-end, que tiene dos partes distintas, web y móvil. Esta pila incluye
todo lo que necesita para crear una interfaz de usuario funcional de una aplicación web o móvil
que pueda comunicarse con el back-end. Para crear el front-end de una aplicación web, debe
aprender HTML, CSS y marcos de trabajo CSS. También necesita saber acerca de los lenguajes de
programación del lado del cliente como JavaScript o TypeScript y los marcos de JavaScript como
reaccionar. Y, por último, también debe estar familiarizado con las herramientas de desarrollo de
iOS o Android para el desarrollo de aplicaciones móviles. Ahora, pasemos a la pila de datos. . Una
de las partes más cruciales de cada aplicación es la pila de datos o las herramientas que utiliza para
almacenar, procesar y recuperar datos con éxito. Esta pila contiene motores de base de datos SQL
o no SQL, herramientas de almacenamiento en caché y todo lo necesario para procesar datos. De
hecho, MySQL, MariaDB y PostgreSQL son algunos de los motores de bases de datos más utilizados
que puede aprender a usar para la pila de datos. Para el almacenamiento en caché, Redis es una
solución popular y ampliamente utilizada. Finalmente, analicemos la pila completa, que es la
solución integral para una aplicación. Contiene todo lo que necesita para crear el núcleo de las
aplicaciones o el proceso de back-end de los datos presentados por las API en aplicaciones web o
móviles. Un desarrollador de pila completa es igualmente hábil en las pilas de back-end, front-end
y base de datos. Dicho desarrollador debe tener algunas habilidades esenciales de DevOps para
crear e implementar una aplicación en servidores de producción, ensayo y desarrollo. Para ser un
desarrollador de pila completa, debe aprender todo lo que se requiere para crear y entregar una
aplicación que funcione. Y también debe estar familiarizado con un sistema de control de versiones
como git para el desarrollo de pila completa. Se necesita tiempo para ser un desarrollador full
stack exitoso, por lo que tendrás que ser un poco paciente contigo mismo. Pero, ¿cuáles son
exactamente las responsabilidades de los desarrolladores de full stack? Un desarrollador típico de
pila completa realiza las siguientes tareas, comprende el proyecto completo y asume la propiedad
total. Seleccione un profesional para crear herramientas para desarrollar el front-end, el back-end
y la base de datos, cree interfaces de usuario efectivas para aplicaciones web y móviles. Desarrolle
API, desarrolle el back-end de aplicaciones, almacene, procese y recupere datos de bases de datos,
cree servidores y adminístrelos para acceso de desarrollo, preparación y producción. Integre con
los flujos de trabajo de CI/Cd, garantice la capacidad de respuesta de las aplicaciones web, trabaje
junto con el equipo de gráficos para dar vida a sus ideas. Optimizar las aplicaciones para obtener el
máximo rendimiento y asegurarse de que las aplicaciones sigan las mejores prácticas de seguridad,
son muchas responsabilidades. Entonces ahora entiende por qué se necesita algo de paciencia
para aprender todas estas habilidades. Pero no te preocupes con trabajo duro y dedicación lo
lograrás. En este video, aprendió sobre diferentes pilas en el proceso de desarrollo de aplicaciones.
También aprendió sobre el desarrollo de pila completa y el rol de un desarrollador de pila
completa.
Arquitectura N-tier
Cuando desarrollas una aplicación, tiene diferentes partes. Está la interfaz de usuario, el backend,
la lógica empresarial y la base de datos. Estas partes deben comunicarse correctamente entre sí
para que una aplicación funcione. En este video, aprenderá sobre algunas arquitecturas comunes
utilizadas en el desarrollo de aplicaciones modernas. Comencemos con capas y niveles. En el
desarrollo de aplicaciones, a menudo escucha los términos capas y niveles que se usan
indistintamente, pero hay una diferencia entre ellos. Como aprendió anteriormente en el curso,
una aplicación puede tener varias partes, como la parte de presentación, el núcleo de la aplicación
donde permanece la lógica comercial y la base de datos. Cuando estas partes están en diferentes
lugares en la infraestructura de la aplicación, como en diferentes servidores, pero todavía se
comunican entre sí y funcionan correctamente, se denominan niveles. Por lo tanto, las capas son
separaciones virtuales de diferentes partes de una aplicación. Los niveles también son partes
diferentes de una aplicación, pero están separados físicamente en la infraestructura de la
aplicación. Ahora, analicemos la arquitectura de N niveles en dos tipos, la arquitectura de 3 y 4
niveles. En el desarrollo de aplicaciones modernas, puede haber cualquier número de niveles.
Cuando una arquitectura de aplicaciones se divide en varios niveles, se denomina aplicación de N
niveles. Actualmente, la arquitectura de 3 niveles es la arquitectura de N niveles más utilizada.
Algunos desarrolladores también usan una arquitectura de 4 niveles cuando es necesario.
Supongamos que desarrolló una aplicación web y la aplicación se divide en dos partes distintas: el
código con lógica comercial que procesa los datos y la base de datos para almacenar los datos.
Usted aloja el código de la aplicación en un servidor y la base de datos en otro. Dado que están
separados físicamente en dos servidores diferentes, puede llamarlos niveles. En este ejemplo, hay
dos niveles. Entonces, ¿dónde está el tercero? El tercer nivel es la computadora cliente o móvil,
que se utiliza para navegar por una aplicación web o acceder a las API. Estos clientes son máquinas
físicas completamente separadas. Juntos, la máquina cliente, su servidor de aplicaciones y el
servidor de la base de datos conforman una arquitectura de 3 niveles. En una arquitectura de 3
niveles, el nivel de cliente se denomina nivel de presentación. Las máquinas cliente también se
denominan clientes ligeros porque no ejecutan la lógica empresarial. Solo se comunican con su
aplicación y presentan los datos. El nivel que contiene el código de la aplicación o la lógica
empresarial se denomina nivel de la aplicación. Finalmente, el nivel que se ocupa de los datos se
denomina nivel de datos. Los 3 niveles son niveles de presentación, aplicación y datos. Pasemos a
la arquitectura de 4 niveles. En una aplicación web con una arquitectura de 4 niveles, se incluye un
cuarto nivel llamado nivel de entrega. Este nivel de entrega se ocupa del almacenamiento en caché
y la entrega de los activos front-end al cliente. Por ejemplo, como una red de entrega de contenido
o CDN. Los proveedores de CDN tienen muchos servidores en todo el mundo para una mejor
entrega de contenido. Almacenan sus aplicaciones web, HTML, CSS, JavaScript e imágenes, y las
entregan al cliente desde el servidor más cercano. Debido a que los servidores CDN están
físicamente separados de los niveles de aplicaciones y datos, se ven como otro nivel, el nivel de
entrega. Este es solo un ejemplo de una aplicación web de 4 niveles. Estas aplicaciones pueden ser
muy diferentes entre sí según su propósito, por ejemplo, aplicaciones financieras o empresariales
que tienen diferentes necesidades. Hay varios beneficios para una arquitectura de N niveles.
Examinemos algunos de ellos ahora. Cuando la aplicación se divide en varios niveles, resulta más
fácil protegerla y escalarla. Solucionar problemas o agregar nuevas funciones se vuelve más
manejable porque cada nivel está separado y funciona de manera independiente. Por lo tanto, el
proceso de desarrollo de aplicaciones se vuelve más eficiente cuando utiliza una arquitectura de N
niveles para su aplicación. En este video, aprendiste sobre la diferencia entre capas y niveles.
También aprendió sobre la popular arquitectura de N niveles y cómo usarla para crear una
arquitectura de 3 o 4 niveles para sus aplicaciones web.
Resumen:Lo que sabes sobre una arquitectura cliente-servidor
El desarrollo de pila completa incluye una pila de back-end y front-end. El back-end, o el núcleo de
una aplicación web o un proyecto de API, está alojado en un servidor o en una plataforma sin
servidor. A su vez, la aplicación web o API es utilizada por los clientes. Entonces, hay dos partes
distintas: un cliente y un servidor, y juntos forman la arquitectura cliente-servidor.
Introducción
En esta lectura, aprenderá más sobre la arquitectura cliente-servidor.
La arquitectura cliente-servidor
Cada sitio web que navega, los juegos móviles multijugador que juega y los electrodomésticos
modernos conectados a Internet: todas estas son aplicaciones que se ejecutan en una arquitectura
cliente-servidor.
Primero está el cliente, que es la computadora o el dispositivo móvil que se usa para comunicarse
con la aplicación de back-end. Cuando los dispositivos cliente solo se comunican con el back-end y
solo muestran o presentan los datos y no aplican la lógica empresarial, estos dispositivos se
denominan clientes ligeros. Si los dispositivos cliente consumen datos de la API y realizan un
procesamiento de datos más pesado en el lado del cliente, se denominan clientes pesados.
El segúndo es el servidor. En una arquitectura cliente-servidor, el servidor alberga el núcleo de la
aplicación que se ocupa de los datos entrantes, aplica la lógica comercial y guarda y procesa los
datos en una base de datos. El núcleo de la aplicación está alojado en unidades de computación en
la nube, en máquinas virtuales, contenedores o un servidor dedicado. Con una arquitectura de N
niveles, la aplicación puede tener diferentes capas repartidas en múltiples servidores físicos o
virtuales.
Como funciona
En una arquitectura cliente-servidor, las computadoras están conectadas a través de una red que
puede ser pública o privada. El cliente o la aplicación front-end acepta los datos del usuario, realiza
una validación básica y envía los datos a
El servidor acepta los datos entrantes y pasa por rigurosos procesos de validación y desinfección
para garantizar que la información sea válida y no contenga ningún contenido potencialmente
malicioso. La validación y el saneamiento son partes esenciales de toda arquitectura cliente-
servidor. La regla de oro es: no confíes en nadie. Como desarrollador de la aplicación, debe validar
y desinfectar los datos sin importar qué tan confiable sea la fuente de los datos.
Luego, los datos se procesan mediante la lógica comercial, se guardan o sirven desde la base de
datos y se envía una respuesta al cliente. Luego, el cliente procesa los datos de respuesta del
servidor, toma decisiones o simplemente los muestra al
Visitante.
En una arquitectura cliente-servidor, el servidor debe ser capaz de manejar simultáneamente
múltiples solicitudes de múltiples clientes. Si la capacidad del servidor es insuficiente y no puede
aceptar la cantidad de solicitudes entrantes, debe escalarse. Puede ajustar la capacidad del
servidor utilizando diferentes técnicas de escalado que aprenderá más adelante en este curso.
Y, cuando se trata de comunicación, debe seguir los protocolos de comunicación estándar como
HTTP o
Websocket para establecer comunicación entre el cliente y el servidor.
Ventajas
Uno de los beneficios más significativos de usar la arquitectura cliente-servidor es la separación de
las diferentes capas de su aplicación. La base de datos se puede instalar y administrar en una capa
totalmente separada y los datos permanecen sincronizados en una ubicación centralizada. De esta
forma permite que múltiples clientes se comuniquen y utilicen esa información al mismo tiempo.
Piense en la aplicación Little Lemon en la que ha estado trabajando a lo largo de los cursos de este
programa. Sin la arquitectura cliente-servidor, no sería posible alojar los datos del restaurante en
un servidor separado y procesarlos para que cada vez que algo cambie, cada cliente vea los datos
nuevos y actualizados.
Dado que las diferentes partes de la aplicación se almacenan en diferentes capas o niveles, es más
fácil escalar, optimizar y proteger la infraestructura y los datos. La copia de seguridad y la
recuperación de datos en caso de pérdida accidental o falla del hardware también es más fácil
porque puede tratar directamente con ese nivel o capa en lugar de causar problemas potenciales
en toda la aplicación.
Además, la arquitectura cliente-servidor es rentable porque puede alojarla en la nube con un
modelo de precios según demanda y pagar solo por lo que usa. No necesita comprar costosas
computadoras físicas para alojar su aplicación. Tampoco necesita clientes potentes para ejecutar la
lógica empresarial. Todo se hace en el servidor, y luego el resultado final se entrega al cliente, que
puede mostrarse directamente o después de un procesamiento mínimo si es necesario.
Desventajas
Como todo patrón arquitectónico, el modelo de computación cliente-servidor también tiene
algunas desventajas. El primero es la administración: debe dedicar tiempo a configurar, administrar
y mantener los servidores para que funcionen correctamente. Además, el uso abusivo o no
supervisado de la API proporcionada por su aplicación puede provocar un aumento en las facturas
mensuales. Además, la seguridad puede ser una gran preocupación. Cuando ocurre una violación
de la seguridad, los datos confidenciales del usuario pueden filtrarse y pueden producirse daños
financieros graves. Y, si el servidor se cae o deja de responder por algún motivo, las aplicaciones
cliente también dejarán de funcionar.
Conclusión
Esta lectura le enseñó sobre la arquitectura cliente-servidor muy popular que puede usar en cada
aplicación de pila completa o proyecto de API. También aprendió sobre las ventajas y desventajas
de cliente-servidor Arquitectura.