¿Cómo es la "computación en la nube" diferente de "cliente-servidor"?


30

Al ver a un CEO de una nueva compañía de "computación en la nube" describir su compañía en un programa de televisión financiera hoy, dijo algo así como "la computación en la nube es superior a la computación cliente-servidor pasada de moda".

Ahora estoy confundido. ¿Alguien puede explicar qué significa "computación en la nube" en contraste con cliente-servidor?

Hasta donde yo entiendo, la computación en la nube es más un modelo de servicios de red, de modo que no poseo ni mantengo el hardware físico. La "nube" es todo el material de fondo. Pero aún podría tener una aplicación que se comunica con ese entorno "en la nube". Y si ejecuto un sitio web presenta un formulario que un usuario completa, presiona un botón en la página y devuelve algún informe generado por el servidor web, ¿no es eso lo mismo que la computación "en la nube"? ¿Y no consideraría mi navegador web como el "cliente"?

Tenga en cuenta que mi pregunta es específica del concepto de "computación en la nube" con respecto a "cliente-servidor".

Lo sentimos si esta es una pregunta inapropiada para este sitio; es el más cercano en el universo de Stack y esta es mi primera vez aquí. Soy un viejo temporizador, programando desde los días de mainframe a finales de los 70.


Esta es una simplificación, pero creo que la principal diferencia es dónde se almacenan los datos. En el servidor del cliente, SU empresa almacena sus propios datos. En Cloud Computing, el proveedor de la aplicación en la nube almacena sus datos. Esto tiene ventajas porque el usuario de la aplicación en la nube tiene poco o ningún mantenimiento en su extremo y el desarrollador de la aplicación en la nube puede actualizar su código y sus bases de datos sin tener que preocuparse por romper las revisiones de software de alguien. Por supuesto, la desventaja es que el usuario de la aplicación almacena sus datos en el almacenamiento de otra persona.
Dunk

3
En resumen, se podría decir que Cliente-Servidor fue un bombo de ayer, mientras que The Cloud es el bombo actual. :-)
JensG

Cliente-servidor es para computación en la nube como el código de ensamblaje es para Excel.
Mouviciel

1
Es la diferencia entre conducir un auto alquilado y conducir uno que usted posee. ¡No hay ninguna diferencia real, excepto que no tiene que preocuparse por el servicio!
James Anderson

Respuestas:


28

Estrictamente hablando, no hay 'Nube'. No en el sentido de lo que estaba diciendo ese CEO. Hay internet, por supuesto. Hay servicios alojados. Hay VPS's. Hay sistemas de entrega de contenido. Nosotros (técnicos) nos hemos adaptado al término para hacer referencia a ciertos modelos de servicios alojados. Pero 'Nube' en los medios de consumo es en gran medida un término de marketing traducido libremente como 'internet'. La mayoría de las veces, también significa 'puedo cobrarle por mes'.

Tiene razón al pensar que los dos términos, 'nube' y 'cliente-servidor' no están relacionados. Tener un servicio alojado 'en la nube' (siempre quiero agregar un dramático 'dun-dun-daaaaaaa' después de usar esa frase) no hace que una aplicación cliente-servidor sea menos cliente-servidor-y. Por ejemplo, la 'web' usa principalmente un modelo cliente-servidor. El navegador web es el cliente. El servidor web es el servidor. Que un servidor web esté alojado 'en la nube' no cambia el hecho de que la relación navegador web / servidor web es cliente-servidor.

Entonces, el término cliente-servidor define la relación entre dos entidades en un sistema. Donde las entidades están alojadas físicamente es irrelevante.

Básicamente, tienes razón. Los dos no son comparables.


Hay al menos dos tipos de clud: nubes de alto nivel, donde la administración se va y habla, técnicamente conocido como "vapor" o "humo" (de ahí el término "humo"), y nubes de bajo nivel, donde se encuentran los servidores, técnicamente llamado "niebla". Perdón por el cinismo.
Emilio Garavaglia

21

"Computación en la nube" es un término general destinado a hacer dos cosas: primero, abstraer todos los usos posibles de un modelo cliente-servidor detrás de un solo término, en oposición a casos de uso más específicos como "servidores de archivos", "servidores de bases de datos", "servidores web", "servidores de aplicaciones", etc .; y segundo, abstraer la arquitectura del servidor en sí, en términos de hardware, topología, ubicación e incluso propiedad.

En un modelo tradicional de cliente-servidor, que definitivamente todavía es de uso común en la actualidad, un cliente se conecta a un servidor que realiza un trabajo en particular. Este servidor puede alojar una base de datos, o una serie de archivos compartidos, o una página web. Cuando el cliente se conecta a ese servidor, existe una comprensión implícita del tipo de comunicación y transmisión de datos que se producirá entre las dos computadoras. También puede haber una comprensión por parte del cliente, o del usuario final, de las capacidades del hardware del servidor y sus limitaciones. Este relativamente "acoplamiento estrecho" entre la máquina del cliente y su servidor puede plantear problemas a un administrador de sistemas que necesita eliminar un servidor para su mantenimiento; todas las aplicaciones que dependen de los recursos proporcionados por este servidor deben apuntar a otro servidor,

En un modelo de nube, el hardware, la topología, la división del trabajo e incluso el número de máquinas reales involucradas se abstraen detrás de un único punto final. La analogía podría extraerse de una "aplicación web" moderna, a diferencia de las generaciones anteriores de "sitio web" que eran más estáticas. Podríamos adivinar que hay un servidor de aplicaciones y un servidor de base de datos detrás de escena, pero realmente no tenemos que preocuparnos; El servidor web, como parte de su trabajo para servir la aplicación completa a los usuarios más allá del "borde", proporciona un punto final unificado que permite el acceso controlado a todos los datos y servicios proporcionados por otras máquinas detrás de esta puerta principal.

El resultado es que, con un único punto final expuesto para proporcionar la funcionalidad de la aplicación, eso es todo lo que un cliente consumidor de la aplicación tiene que preocuparse, en lugar de dónde obtener sus datos, dónde llamar a tal o cual proceso de aplicación remota etc. eso significa que los administradores y arquitectos del proveedor de servicios dentro de esta nube son más o menos libres de cambiar las máquinas, la topología y otros detalles de implementación específicos de este "servicio en la nube" sin que los clientes sean más sabios. Facebook podría, si lo considerara conveniente, reconstruir todo su sistema de almacenamiento de datos desde cero utilizando un DBMS diferente y todos los servidores nuevos, y mientras el sitio permaneciera disponible durante la transición, nadie sería más sabio; de hecho, Facebook hizo exactamente eso, muchas veces,


2
Por mucho que aprecie el cinismo detrás del marketing 'en la nube' que contiene la respuesta de GrandmasterB, esta es la respuesta real.
Eric King

¡Encontré esto como la mejor respuesta!
Arsal

5

Una parte clave de la "computación en la nube" son las herramientas de administración de implementación.

En implementaciones "clásicas", se ordenó una máquina específica para una aplicación específica y se realizó una configuración bastante fija.

En un entorno de nube, hay un hardware más o menos estandarizado en un grupo y una API que crea y configura máquinas virtuales en él a partir de algún tipo de plantillas. De este modo, los sistemas defectuosos pueden reemplazarse, ampliarse o reducirse fácilmente según las necesidades y el hardware puede asignarse según sea necesario, incluso de forma automatizada.

Por supuesto, los administradores adecuados también hicieron la mayor parte de eso antes, pero además del marketing puro, existe una base de API estandarizadas (API Aamzons AWS que también ofrecen herramientas como Eucalyptus para "nubes privadas") y herramientas (es decir, títeres) emergentes.


Gran parte de esto tiene que ver con el "marketing" en lugar de la tecnología real, al igual que el hoo-haa sobre "Big Data".
BellevueBob

Estás olvidando un gran aspecto del "marketing". El marketing no es solo "publicidad", también es "fijación de precios". Y ahí es donde Cloud Computing es diferente de Client-Server Computing. A veces también es informática de servicios públicos, porque tiene un precio similar a los servicios públicos (electricidad, agua del grifo). Por supuesto, ese modelo tampoco es nuevo, es el precio de la informática mainframe.
Jörg W Mittag

2

En la arquitectura cliente-servidor 'tradicional', usted tenía recursos asignados estáticamente (o al menos se presenta como tal; no tengo experiencia en el período anterior a la nube, así que corríjame si me equivoco y confío en un marketing falso). El servidor de la base de datos se llamó db.yourcompany.com y su servidor web se comunicó con él. Si desea aumentar los recursos, puede agregar otro servidor web dedicado y proporcionar equilibrio de carga, etc.

Por otro lado, en el estrés de la nube se han puesto en abstracción de niveles inferiores y denotan cómo se construye el 'servidor'. En Por ejemplo, tienes:

  • HAAS (Hardware como servicio): el cliente (empresa) obtiene una computadora alojada en la que puede instalar cualquier sistema operativo que desee. La diferencia es que no "realmente" obtienen una computadora sino una máquina virtual en una granja. Debido a que está virtualizado, no necesitan preocuparse por los detalles de nivel inferior, como la cantidad de potencia computacional, pagar las facturas independientemente de si se usa la máquina, cómo está conectada, etc.
  • PAAS (Platform As A Service) - un nivel más alto - usted escribe una aplicación que de alguna manera se ejecuta en algún lugar. Como la API es lo suficientemente general, los proveedores de la nube pueden asignar recursos a pedido, por lo que si su aplicación se redujo, pagará por más recursos en lugar de sufrir DDOS no maliciosos.
  • SAAS (Software As A Service) - otro nivel más alto - no escribes una aplicación - usas una. No le importa cómo se implementa o qué recursos utiliza. Está disponible en todas partes y en cualquier momento.

Tenga en cuenta que, si bien en la mayoría de los casos está implícito que el servicio real se subcontrata a una gran empresa (por ejemplo, Amazon o Google), no es necesariamente el caso: las grandes empresas o universidades implementan sus propias nubes internas para permitir una gestión más fácil de los recursos. Esto permite agregar los recursos a la aplicación de su ejecución para agregarlos según sea necesario. Si el nuevo inicio interno tuvo éxito, no tienen que preocuparse de que los servidores se hayan sobrecargado. Sin embargo, como papel de la economía de escala, generalmente se hace solo cuando hay requisitos especiales (por ejemplo, con respecto a la seguridad).

Desde la perspectiva del usuario, es transparente y tiene un aspecto de la arquitectura cliente-servidor. El servidor web podría vivir 'en la nube' mientras usa HTTP antiguo. Los problemas y las soluciones de las ideas se remontan a los mainframes de los años 50 y actualmente vuelven más como un contraste con las PC de clientes gruesos.

Habiendo dicho eso, también podría ser una palabra de moda en una oración dada y afirmar que la compañía es dinámica y se enfoca en su competencia central al tiempo que permite a sus empleados.


1

¿Alguien puede explicar qué significa "computación en la nube" en contraste con cliente-servidor?

Eso depende de tu perspectiva. Para las empresas, la computación en la nube es buena porque (por lo general) le permite ser más flexible con la cantidad de máquinas que admiten sus servicios. Esa flexibilidad le permite ser más receptivo, lo que debería ahorrarle dinero. Las empresas también pueden aprovechar el hecho de permitir que el proveedor de la nube haga copias de seguridad, recuperación ante desastres, seguridad física y todas las demás cosas de infraestructura con las que no quieren lidiar. Esto generalmente conduce a ahorros y una mejor calidad.

Desde la perspectiva del consumidor, la mayor calidad y fiabilidad de la conexión son buenas. Algunos proveedores de la nube también ayudan a distribuir sus servidores para ayudar a la latencia del consumidor.

Para los programadores ... es más o menos la programación cliente-servidor donde el servidor es difícil de encontrar y ocasionalmente necesitas usar algunas API especializadas.


-1

Creo que es justo decir que "cloud computing" y "cliente-servidor" son muy similares. Desde mi perspectiva, la computación en la nube parece confiar más en el servidor que en el modelo "cliente-servidor". En teoría, algunas formas de computación en la nube pueden ocurrir independientemente de la conexión de un cliente. El beneficio de una aplicación que solo se ejecuta en la nube sin comunicación del cliente no parece muy útil, por lo que tiene sentido crear alguna forma de comunicación del cliente con ese servidor.

Esencialmente, creo que se basa principalmente en dónde se está haciendo la mayor parte de su potencia informática. Un servidor generalmente tiene mejores especificaciones, en términos de hardware y potencia informática, que una computadora de usuario estándar con el fin de administrar simplemente muchas conexiones de clientes y operaciones concurrentes para servir esas conexiones. La computación en la nube utiliza esto como una ventaja al mover lo que normalmente sería el código de ejecución del cliente al servidor y permitir que el cliente sea lo más "tonto" posible. Por lo tanto, requiere menos recursos de usuario para manejar el mismo tipo de operaciones.

Puede que no sea la mejor respuesta, pero así es como lo veo.


2
Estoy en desacuerdo. La web usa un modelo cliente-servidor. El navegador web es el cliente. El servidor web es el servidor. Que un servidor web esté sentado 'en la nube' es irrelevante. Los dos términos no son comparables.
GrandmasterB

Para mí, son comparables simplemente porque los veo esencialmente iguales, excepto donde se realiza la mayor parte de la informática. En mi opinión, "Cloud Computing" es el mismo, excepto que depende de poco soporte computacional del cliente.
StMotorSpark
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.