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.
CLIENTE | Son los dispositivos que hacen peticiones de servicios o recursos a un servidor |
---|---|
SERVIDOR | Es el equipo que brinda los servicios y recursos a los que acceden los clientes |
REQUEST / SOLICITUD | Es 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/ RESPUESTA | El 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-End | Es 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-End | Es 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. |
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.
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.
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.
El modelo de Datacenter se ha replicado y mejorado con el tiempo para que las empresas clientes puedan solicitar:
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.
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
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:
|
---|---|---|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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. |
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 | ||
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: |
|
|
|
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.
|
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. |