Arquitectura
Índice
Modelo Cliente-Servidor

Dentro del contexto de desarrollo web, esta arquitectura hace referencia a un modelo de comunicación que vincula a varios dispositivos con un servidor a través de internet. Cada servicio disponible a través de una red será ofrecido por un servidor (software) que está permanentemente en espera. Este es el único modo de asegurar que los clientes como el navegador web o los clientes de correo electrónico siempre tengan la posibilidad de acceder al servidor activamente y de usar el servicio en función de sus necesidades.

CLIENTESon los dispositivos que hacen peticiones de servicios o recursos a un servidor
SERVIDOREs el equipo que brinda los servicios y recursos a los que acceden los clientes
REQUEST / SOLICITUDEs la solicitud que hacemos a través del navegador (el cliente) a un servidor, en este ejemplo, la página de Facebook que está almacenada en sus servidores
RESPONSE/ RESPUESTAEl servidor recibe nuestra solicitud, la procesa, y envía como resultado una respuesta al cliente (navegador), en este ejemplo devolverá la página principal del sitio

¿Por qué es importante conocer este flujo Request-Response?
Porque dentro del mundo del desarrollo web, la mayoría de las aplicaciones tienen dos claros frentes: el frontend y el backend.

Front-EndEs todo lo que pasa del lado del cliente (en el navegador). Aquí se incluyen todos los elementos gráficos que conforman la interfaz del sitio. Los lenguajes que se manejan son HTML, para la estructura, CSS, para los estilos visuales y Javascript, para la interacción dentro del sitio.
Back-EndEs todo lo que pasa del lado del servidor. Aquí se incluye todo el funcionamiento interno y lógica del sitio. Es lo que permite que se carguen todas las peticiones solicitadas por el cliente. Algunos de los lenguajes que se manejan son MySQL, para base de datos, PHP, para sitios webs dinámicos, entre otros.

Tipos de servidores

Algunos ejemplos:

En teoría, un único dispositivo físico puede alojar diferentes tipos de servidores. Sin embargo, es habitual alojar cada uno de los servidores en un ordenador independiente o que éstos se repartan en más de un ordenador. De esta manera, se evita que la utilización del hardware de un servicio repercuta en el rendimiento de otros servicios.

Alojamiento de servidores

Los proveedores especializados ofrecen diferentes modelos de servidores de alquiler en los que los usuarios no tienen que preocuparse por el funcionamiento de la máquina física. La gama de productos abarca desde servidores dedicados cuyos componentes de hardware se ponen a disposición de los usuarios de manera exclusiva, hasta servicios de hosting compartido para alojar a varios clientes virtuales en una base de hardware común.

Datacenters

Un Data Center es un “centro de datos” o “Centro de Proceso de Datos” (CPD). Ésta definición engloba las dependencias y los sistemas asociados gracias a los cuales:

Un Datacenter físico puede alojar Datacenters virtuales, cuyo costo es menor gracias a la virtualización. Cada Centro de Datos virtual es independiente del resto y dispone de máximas garantías de seguridad, disponibilidad y flexibilidad.

Servidores externos

El modelo de Datacenter se ha replicado y mejorado con el tiempo para que las empresas clientes puedan solicitar:

Tipos de servidores web

VPS

Un servidor virtual privado (VPS, por sus siglas en inglés) es una partición virtual dentro de un servidor físico que le asigna recursos exclusivos a cada partición. Éstas otorgan acceso raíz que permite instalar un sistema operativo y trabajar con alto grado de libertad.

HOSTING COMPARTIDO

El hosting compartido es la solución para los propietarios de sitios web con menos tráfico. Es el punto de partida de la mayoría de las pequeñas empresas y bloggers. Con el hosting compartido, se divide el mismo servidor físico entre varios clientes de la empresa de hosting. No obtienes recursos dedicados para ti, ya que tu sitio se ejecuta en el mismo sistema operativo que el de los demás.

CLOUD HOSTING

Con el cloud hosting o hosting en la nube no usas un solo servidor, sino un clúster (varias computadoras interconectadas) que se ejecuta en la nube. Cada servidor en el clúster almacena una copia actualizada de tu sitio web. Cuando uno de los servidores está demasiado ocupado, el clúster redirige automáticamente el tráfico a uno que no lo esté tanto. Como resultado, el hosting en la nube no tiene tiempo de inactividad (downtime), ya que siempre hay un servidor en el clúster que puede atender las solicitudes de los visitantes de tu sitio web.

HOSTING WORDPRESS

El hosting WordPress es un servicio específicamente ofrecido para los propietarios de sitios de WordPress. Viene con varias características relacionadas con WordPress que solo puedes usar si tienes un sitio de WordPress, como instalación con un solo clic, plugins preinstalados o una interfaz de línea de comandos de WP. Los servidores están configurados para las necesidades de WordPress. Por lo tanto, los proveedores de hosting ofrecen hosting para WordPress como parte de su servicio de hosting compartido.

HOSTING DEDICADO

Con hosting dedicado, alquilas un servidor físico completo para tu negocio. Si tienes un sitio web de alto tráfico, el hosting dedicado puede ser la mejor solución para ti, ya que los servidores dedicados son rápidos, flexibles y totalmente personalizables. Sin embargo, el servicio también viene con un precio, por eso no es la mejor solución para todos, especialmente si tienes un sitio web pequeño o mediano.

Servidor web

Un servidor es un dispositivo virtual que le brinda espacio y estructura a los sitios web para que almacenen sus datos y manejen sus páginas. Con la transformación digital y el creciente uso de Internet era más que necesario crear servidores que fueran capaces de almacenar y emitir la biblioteca de información (casi infinita) que encontramos en la web.

Los servidores web (web server) son un componente de los servidores que tienen como principal función almacenar, en web hosting, todos los archivos propios de una página web (imágenes, textos, videos, etc.) y transmitirlos a los usuarios a través de los navegadores mediante el protocolo HTTP (Hipertext Transfer Protocol).

Características de un servidor web

Como características necesarias de un servidor web a nivel de software y hardware, podemos encontrar:

Servidores más usados en la actualidad

Arquitectura de servidores

Modelo cliente-servidor

Cliente-servidor es una relación en la cual un programa (el cliente) solicita un servicio o recurso de otro programa (el servidor).
A principios del siglo pasado, la etiqueta cliente-servidor se usó para distinguir la computación distribuida por computadoras personales (PC) del modelo de computación monolítico y centralizado utilizado por los mainframes. Hoy en día, las transacciones informáticas en las que el servidor cumple una solicitud realizada por un cliente son muy comunes y el modelo cliente-servidor se ha convertido en una de las ideas centrales de la informática en red.

Una ventaja importante del modelo cliente-servidor es que su arquitectura centralizada ayuda a facilitar la protección de los datos con controles de acceso impuestos por las políticas de seguridad. Además, no importa si los clientes y el servidor se basan en el mismo sistema operativo porque los datos se transfieren a través de protocolos cliente-servidor que son independientes de la plataforma.

Una desventaja importante del modelo cliente-servidor es que si demasiados clientes solicitan simultáneamente datos del servidor, pueden sobrecargarse. Además de causar congestión en la red, demasiadas solicitudes pueden resultar en una denegación de servicio.

Protocolos cliente-servidor

Los clientes generalmente se comunican con los servidores mediante el conjunto de protocolos TCP / IP.

TCP es un protocolo orientado a la conexión, lo que significa que se establece y mantiene una conexión hasta que los programas de aplicación en cada extremo hayan terminado de intercambiar mensajes. Determina cómo dividir los datos de la aplicación en paquetes que las redes pueden entregar, envía paquetes y acepta paquetes de la capa de red, gestiona el control de flujo y maneja la retransmisión de paquetes descartados o confusos, así como el reconocimiento de todos los paquetes que llegan. En el modelo de comunicación de interconexión de sistemas abiertos (OSI), TCP cubre partes de la capa 4, la capa de transporte y partes de la capa 5, la capa de sesión.

Por el contrario, IP es un protocolo sin conexión, lo que significa que no hay una conexión continua entre los puntos finales que se están comunicando. Cada paquete que viaja a través de Internet se trata como una unidad de datos independiente sin ninguna relación con ninguna otra unidad de datos. (La razón por la que los paquetes se colocan en el orden correcto es debido a TCP). En el modelo de comunicación de Interconexión de Sistemas Abiertos (OSI), IP está en la capa 3, la Capa de Redes.

Modelo multi capa

Cuando hablamos del modelo multicapa, hablamos del modelo OSI que significa interconexión de sistemas abiertos. Ha sido desarrollado por ISO (Organización Internacional de Normalización), en el año 1974. Es una arquitectura de 7 capas, cada una tiene una funcionalidad específica para realizar. Todas estas 7 capas trabajan en colaboración para transmitir los datos de una persona a otra en todo el mundo. Te las explicamos a continuación:

Capa 1 o Capa Física La capa más baja del modelo de referencia OSI es la capa física. Es responsable de la conexión física real entre los dispositivos. La capa física contiene información en forma de bits. Es responsable de la conexión física real entre los dispositivos. Al recibir datos, esta capa obtendrá la señal recibida y la convertirá en 0 y 1 y los enviará a la capa de enlace de datos, que volverá a unir el marco. Las funciones de la capa física son:
  • Sincronización de bits: la capa física proporciona la sincronización de los bits al proporcionar un reloj. Este reloj controla tanto el emisor como el receptor, proporcionando así la sincronización a nivel de bit.
  • Control de velocidad de bits: la capa física también define la velocidad de transmisión, es decir, el número de bits enviados por segundo.
  • Topologías físicas: la capa física especifica la forma en que los diferentes dispositivos / nodos se organizan en una red, es decir, topología de bus, estrella o malla.
  • Modo de transmisión: la capa física también define la forma en que los datos fluyen entre los dos dispositivos conectados. Los diversos modos de transmisión posibles son: Simplex, half-duplex y full-duplex.
Capa 2 o Capa de enlace de datos La capa de enlace de datos es responsable de la entrega nodo a nodo del mensaje. La función principal de esta capa es asegurarse de que la transferencia de datos esté libre de errores de un nodo a otro, sobre la capa física. Cuando un paquete llega a una red, es responsabilidad de DLL transmitirlo al Host utilizando tu dirección MAC. Las funciones de la capa de enlace de datos son:
  • Enmarcado: el enmarcado es una función de la capa de enlace de datos. Proporciona una manera para que un remitente transmita un conjunto de bits que son significativos para el receptor. Esto se puede lograr adjuntando patrones de bits especiales al principio y al final del cuadro.
  • Direccionamiento físico: después de crear tramas, la capa de enlace de datos agrega direcciones físicas (dirección MAC) del remitente y / o receptor en el encabezado de cada trama.
  • Control de errores: la capa de enlace de datos proporciona el mecanismo de control de errores en el que detecta y retransmite tramas dañadas o perdidas.
  • Control de flujo: la velocidad de datos debe ser constante en ambos lados; de lo contrario, los datos pueden corromperse, por lo tanto, el control de flujo coordina esa cantidad de datos que se pueden enviar antes de recibir el acuse de recibo.
  • Control de acceso: cuando varios dispositivos comparten un único canal de comunicación, la subcapa MAC de la capa de enlace de datos ayuda a determinar qué dispositivo tiene control sobre el canal en un momento dado.
Capa 3 o Capa de Red La capa de red funciona para la transmisión de datos de un host a otro ubicado en diferentes redes. También se encarga del enrutamiento de paquetes, es decir, la selección de la ruta más corta para transmitir el paquete, a partir del número de rutas disponibles. La dirección IP del remitente y el receptor se colocan en el encabezado por capa de red. Las funciones de la capa de red son:
  • Enrutamiento: los protocolos de la capa de red determinan qué ruta es adecuada desde el origen hasta el destino. Esta función de la capa de red se conoce como enrutamiento.
  • Direccionamiento lógico: para identificar cada dispositivo en la red interna de manera única, la capa de red define un esquema de direccionamiento. La dirección IP del remitente y el receptor se colocan en el encabezado por capa de red. Tal dirección distingue cada dispositivo de manera única y universal.
Capa 4 o Capa Transporte La capa de transporte proporciona servicios a la capa de aplicación y toma ayuda de la capa de red. Los datos en la capa de transporte se denominan segmentos. Es responsable de la entrega de extremo a extremo del mensaje completo. La capa de transporte también proporciona el reconocimiento de la transmisión exitosa de datos y retransmite los datos si se encuentra un error.
En el lado del remitente: la capa de transporte recibe los datos formateados de las capas superiores, realiza la segmentación y también implementa el control de flujo y error para garantizar una transmisión de datos adecuada. También agrega el número de puerto de origen y destino en su encabezado y reenvía los datos segmentados a la capa de red.
En el lado del receptor: la capa de transporte lee el número de puerto de su encabezado y reenvía los datos que ha recibido a la aplicación correspondiente. También realiza la secuenciación y el reensamblaje de los datos segmentados.
Las funciones de la capa de transporte son:
  • Segmentación y reensamblaje: esta capa acepta el mensaje de la capa (sesión), divide el mensaje en unidades más pequeñas. Cada uno de los segmentos producidos tiene un encabezado asociado. La capa de transporte en la estación de destino vuelve a ensamblar el mensaje.
  • Direccionamiento de punto de servicio: para entregar el mensaje al proceso correcto, el encabezado de la capa de transporte incluye un tipo de dirección llamada dirección de punto de servicio o dirección de puerto. Por lo tanto, al especificar esta dirección, la capa de transporte se asegura de que el mensaje se entregue al proceso correcto.
Capa 5 o Capa de sesión Esta capa es responsable del establecimiento de la conexión, el mantenimiento de las sesiones, la autenticación y también garantiza la seguridad. Las funciones de la capa de sesión son:
  • Establecimiento, mantenimiento y finalización de la sesión: la capa permite que los dos procesos establezcan, usen y finalicen una conexión.
  • Sincronización: esta capa permite que un proceso agregue puntos de verificación que se consideran puntos de sincronización en los datos. Estos puntos de sincronización ayudan a identificar el error para que los datos se vuelvan a sincronizar correctamente y los extremos de los mensajes no se corten prematuramente y se evite la pérdida de datos.
  • Controlador de diálogo: la capa de sesión permite que dos sistemas inicien la comunicación entre sí en half-duplex o full-duplex.
Capa 6 o Capa de presentación La capa de presentación también se llama capa de traducción. Los datos de la capa de aplicación se extraen aquí y se manipulan según el formato requerido para transmitir a través de la red. Las funciones de la capa de presentación son:
  • Traducción: por ejemplo, ASCII a EBCDIC.
  • Cifrado / descifrado: el cifrado de datos traduce los datos a otra forma o código. Los datos cifrados se conocen como texto cifrado y los datos descifrados se conocen como texto sin formato. Se utiliza un valor clave para cifrar y descifrar datos.
  • Compresión: reduce la cantidad de bits que deben transmitirse en la red.
Capa 7 o Capa de Aplicación En la parte superior de la pila de capas del modelo de referencia OSI, encontramos la capa de aplicación que implementan las aplicaciones de red.
Estas aplicaciones producen los datos, que deben transferirse a través de la red. Esta capa también sirve como una ventana para que los servicios de la aplicación accedan a la red y para mostrar la información recibida al usuario.
Las funciones de la capa de aplicación son:
  • Terminal virtual de red
  • Acceso y gestión de transferencia de archivos FTAM
  • Servicios de correo
  • Directorio de Servicios

Elementos que forman parte de una arquitectura cliente-servidor

Un sistema Cliente/Servidor es un Sistema de Información distribuído basado en las siguientes características:

Recursos compartidos:Muchos clientes utilizan los mismos servidores y, a través de ellos, comparten tanto recursos lógicos como físicos.
Protocolos asimétricos:Los clientes inician "conversaciones". Los servidores esperan su establecimiento pasivamente.
Transparencia de localización física de los servidores y clientes:El cliente no tiene por qué saber dónde se encuentra situado el recurso que desea utilizar.
Independencia de la plataforma hardware y/o software que se emplee.
Sistemas débilmente acoplados:Interacción basada en envío de mensajes.
Encapsulamiento de servicios:Los detalles de la implementación de un servicio son transparentes al cliente.
Escalabilidad horizontal (añadir clientes) y vertical (ampliar potencia de los servidores).
Integridad:Datos y programas centralizados en servidores facilitan su integridad y mantenimiento.

Componentes de la arquitectura cliente-servidor

El modelo Cliente/Servidor es un modelo basado en la idea del servicio, en el que el cliente es un proceso consumidor de servicios y el servidor es un proceso proveedor de servicios. Además esta relación está establecida en función del intercambio de mensajes que es el único elemento de acoplamiento entre ambos.

Esta descomposición principalmente consiste en separar los elementos estructurales de esta tecnología en función de aspectos más funcionales de la misma:

Nivel de Presentación:Agrupa a todos los elementos asociados al componente Cliente.
Nivel de Aplicación:Agrupa a todos los elementos asociados al componente Servidor.
Nivel de comunicación:Agrupa a todos los elementos que hacen posible la comunicación entre los componentes Cliente y servidor.
Nivel de base de datos:Agrupa a todas las actividades asociadas al acceso de los datos.

Plataformas en la Nube

Al momento de elegir qué plataforma usar para desarrollar nuestros proyectos digitales es necesario estar bien educado sobre todos los esfuerzos necesarios que representan desplegar proyectos que requieren poder de cómputo. Normalmente nos encontramos con diferentes preguntas como: ¿es mejor una infraestructura física o en la nube? ¿Cual es la mejor opción en la nube? ¿Cual opción es más barata? ¿que beneficios tienen cada una?.

Amazon Aws vs Microsoft Azure vs Google Cloud
AWS AZURE GOOGLE
Link: https://aws.amazon.com/ https://azure.microsoft.com/ https://cloud.google.com/
Precios: La novedosa tendencia del PAYG hace que los precios se ajusten a las necesidades del proyecto, no es necesario comprar costosas soluciones de nube privada que se vuelven obsoleta en poco tiempo. Con Amazon Web Services solo necesita ajustar su máquina virtual y la nube de AWS se adaptará según los requerimientos, para solo pagar por el poder de cómputo usado. Al igual que AWS, esta herramienta de Microsoft tiene muchos elementos convincentes, como el desglose de precios dependiendo de las necesidades del proyecto, sin embargo sus costos son mas agresivos que GCP y AWS. Esta forma agresiva de marcar costos es con la finalidad de liderar los monopolios Cloud, como es el segmento de mover aplicaciones a la nube donde compite de manera agresiva por esta cuota de mercado. Para Azure, la calculadora de costo total de la propiedad hace las siguientes preguntas: ¿Desea reducir el costo total de propiedad de su infraestructura local? ¿Cuáles son los ahorros de costos estimados de migrar cargas de trabajo de aplicaciones a Microsoft Azure? La división de negocios del gigante de los buscadores, busca posicionarse cara a cara con sus competidores más cercanos, al tiempo que enfatiza su facturación solo por el costo exacto de uso en potencia de cómputo.
Características:
  • Productos específicos con alto grado de categorización
  • Parece ser el más progresivo en análisis y visualización
  • Capacidades basadas en usuarios
  • Facturación flexible
  • Precios competitivos
  • Afirman cumplir con todos los estándares internacionales
  • Infraestructura a prueba de futuro
  • Datos y análisis serios y potentes
  • Sin servidor, solo código
Implementación: Página de implementación fácil de usar. Microsoft proporciona beneficios en la implementación con guías muy detalladas en profundidad bien sea para los departamentos más relevantes.
  • Azure Developer Guide
  • Azure Operations Guide
Con estas dos guías y otros recursos como videos instructivos es posible hacer la implementación según nuestros intereses.
Google siempre se ha caracterizado por tener productos enfocados en el usuario, en este caso llaman “Cloud Launcher” a su proceso de implementación, el cual proporciona documentos de inicio en su nube y diversos beneficios de sus servicios.