Чим "хмарні обчислення" відрізняються від "клієнт-сервер"?


30

Спостерігаючи за тим, як генеральний директор нової компанії "хмарних обчислень" описує свою компанію в телевізійній програмі з фінансування сьогодні, він сказав щось на кшталт "Хмарні обчислення перевершують старомодні обчислення клієнтів і серверів".

Тепер я розгублений. Може хтось пояснить, що означає "хмарні обчислення" на відміну від клієнт-сервер?

Наскільки я розумію, хмарні обчислення - це скоріше модель мережевих служб, така що я не володію фізичним обладнанням і не підтримую його. "Хмара" - це все те, що склалося. Але у мене все ще може бути додаток, який спілкується з тим "хмарним" середовищем. І якщо я запускаю веб-сайт представляє форму, яку користувач заповнює, натискає кнопку на сторінці і повертає деякий звіт, створений веб-сервером, чи не те саме, що "хмарні" обчислення? А ви б не вважали мій веб-браузер «клієнтом»?

Зауважте, моє запитання стосується поняття "хмарні обчислення" стосовно "клієнт-сервер".

Вибачте, якщо це невідповідне питання для цього веб-сайту; це один із найближчих у Всесвіті Стек, і це вперше тут. Я старий таймер, програмую з основних днів в кінці 70-х.


Це спрощення, але я думаю, що головна відмінність полягає в тому, де зберігаються дані. На клієнтському сервері ВАША компанія зберігає власні дані. У хмарних обчисленнях ваші дані зберігаються постачальником хмарних програм. Це має переваги, оскільки користувач хмарних додатків майже не потребує обслуговування на їх кінці, а розробник хмарних додатків може оновлювати свій код і бази даних, не турбуючись про те, щоб зламати комусь 3 версії програмного забезпечення позаду. Звичайно, недоліком є ​​те, що користувач програми зберігає свої дані на чужих сховищах.
Dunk

3
Коротше кажучи, можна сказати, що клієнт-сервер був вчорашньою рекламою, тоді як Хмара - це поточний галас. :-)
JensG

Клієнт-сервер - це хмарні обчислення, так як код складання - це Excel.
mouviciel

1
Його різниця між керуванням прокатом автомобіля та керуванням вашим власним. Ніякої реальної різниці, крім того, що вам не доведеться турбуватися про обслуговування!
Джеймс Андерсон

Відповіді:


28

Строго кажучи, немає "хмари". Не в сенсі того, що цей генеральний директор розбивав. Звичайно, є Інтернет. Там розміщені послуги. Є VPS. Є системи доставки вмісту. Ми (технічні люди) адаптували цей термін до посилань на певні моделі розміщених служб. Але "Хмара" у споживчих засобах масової інформації в значній мірі є маркетинговим терміном, який невірно перекладається як "Інтернет". Частіше за все це також означає, що "я отримую плату за місяць".

Ви вірно вважаєте, що два терміни "хмара" та "клієнт-сервер" не пов'язані між собою. Наявність послуги, розміщеної "у хмарі" (я завжди хочу додати драматичну "dun-dun-daaaaaaa" після використання цієї фрази), не робить додаток клієнт-сервер менш клієнт-сервером. Наприклад, "веб" в основному використовує модель клієнт-сервер. Веб-браузер - клієнт. Веб-сервер - це сервер. Те, що веб-сервер розміщено "у хмарі", не змінює факту, що стосунки веб-браузера / веб-сервера - клієнт-сервер.

Отже, термін клієнт-сервер визначає відносини між двома сутностями в системі. Там, де суб'єкти господарювання фізично розміщуються, не має значення.

В основному, ви праві. Два не порівнянні.


Існує щонайменше два типи ключів: хмари високого рівня - куди менеджмент залишає і говорить - технічно відомий як «пара» або «дим» (звідси термін «димовий посуд»), і хмари низького рівня - там, де розташовані сервери - технічно названий "туман". Вибачте за цинізм.
Еміліо Гаравалья

21

"Хмарні обчислення" - це повсякденний термін, який повинен робити дві речі: по-перше, абстрагувати всі можливі варіанти використання клієнт-серверної моделі за одним терміном, на відміну від більш конкретних випадків використання, таких як "файлові сервери", "сервери баз даних", "веб-сервери", "сервери додатків" тощо; по-друге, абстрагувати саму архітектуру сервера з точки зору обладнання, топології, місця розташування та навіть власності.

У традиційній моделі клієнт-сервер, яка, безумовно, досі є загальноприйнятою сьогодні, клієнт підключається до сервера, який виконує певну роботу. Цей сервер може розміщувати базу даних, серію спільних файлів або веб-сторінку. Коли клієнт підключається до цього сервера, існує неявне розуміння типу зв'язку та передачі даних, що відбуватиметься між двома комп'ютерами. Також клієнт або кінцевий користувач може розуміти можливості апаратного забезпечення сервера та його обмеження. Ця відносно "щільна зв'язок" між клієнтською машиною та її сервером може створити проблеми для системного адміністратора, якому потрібно зняти сервер для обслуговування; всі програми, що залежать від ресурсів, наданих цим сервером, повинні бути спрямовані на інший сервер,

У хмарній моделі апаратне забезпечення, топологія, розподіл праці і навіть кількість реальних машин, що залучаються, резюмуються за однією кінцевою точкою. Аналогію можна зробити із сучасним "веб-додатком", на відміну від старших поколінь "веб-сайту", які були більш статичними. Ми можемо здогадатися, що за лаштунками є сервер додатків і сервер БД, але насправді нам не потрібно піклуватися; веб-сервер, як частина своєї роботи щодо обслуговування повного додатку для користувачів за межами "краю", забезпечує єдину кінцеву точку, що дозволяє контролювати доступ до всіх даних і послуг, що надаються іншими машинами за цією вхідною дверима.

Підсумок полягає в тому, що з єдиною кінцевою точкою, яка надає функціональність додатку, це все, що клієнту цього додатка колись належить дбати, а не де отримати його дані, куди викликати такий і такий віддалений процес застосування тощо; це означає, що адміністратори та архітектори постачальника послуг у цій хмарі більш-менш вільні змінювати машини, топологію та інші конкретні деталі реалізації цієї "хмарної служби", без того, щоб клієнти були розумнішими. Facebook міг би, якби вважав це розумним, відновити всю свою систему зберігання даних з нуля, використовуючи різні СУБД і всі нові сервери, і поки сайт залишався доступним під час переходу, ніхто ніколи не стане розумнішим; насправді, Facebook робив саме це, багато разів,


2
Наскільки я ціную цинізм, що стоїть за «хмарним» маркетингом, який містить відповідь GrandmasterB, це справжня відповідь.
Ерік Кінг

Я вважав це найкращою відповіддю!
Арсал

5

Ключовою частиною "хмарних обчислень" є інструмент управління розгортанням.

У "класичних" розгортаннях один замовляв конкретну машину для конкретного додатка і робив досить фіксовану конфігурацію.

У хмарному середовищі є більш-менш стандартизоване обладнання в пулі і API, який створює і налаштовує на ньому віртуальну машину з якоїсь форми шаблонів. Тим самим несправні системи можна легко замінити, збільшити чи зменшити в залежності від потреб, а апаратне забезпечення розподілити за потребою, і це автоматично.

Звичайно, більшість цього робили і належні адміністратори, але, крім чистого маркетингу, існує основа стандартизованих API (API Aamzons AWS, який також пропонується такими інструментами, як Евкаліпт для "приватних хмар") та інструментами (тобто маріонетками).


Стільки всього цього стосується «маркетингу», а не власне технологій, як і ху-хаа про «Big Data».
BellevueBob

Ви забуваєте один великий аспект "маркетингу". Маркетинг - це не просто "реклама", це також "ціноутворення". І саме тут хмарні обчислення відрізняються від обчислень клієнт-сервер. Це також іноді Utility Computing, тому що він коштує як комунальні послуги (електрика, вода з-під крана). Зрозуміло, і ця модель не нова, саме так обчислювались обчислення на мейнфреймі.
Йорг W Міттаг

2

У «традиційній» архітектурі клієнт-сервер у вас були статично призначені ресурси (або, принаймні, вони представлені як такі - я не маю досвіду з передхмарного періоду, тому, будь ласка, виправте мене, якщо я помиляюся і залежу від помилкового маркетингу). Сервер бази даних називався db.yourcompany.com, і ваш веб-сервер спілкувався з ним. Якщо ви хочете збільшити ресурси, ви можете додати ще один виділений веб-сервер і забезпечити балансування навантаження тощо.

З іншого боку, хмарний стрес був поставлений на абстракцію нижчих рівнів і позначає, як будується "сервер". На прикладі у вас є:

  • HAAS (Hardware As A Service) - клієнт (компанія) отримує розміщений комп'ютер, на якому вони можуть встановити будь-яку ОС, яку хочуть. Різниця полягає в тому, що вони "не" отримують комп'ютер, а віртуальну машину на фермі. Оскільки це віртуалізовано, їм не потрібно дбати про деталі нижчого рівня, наприклад, обчислювальну потужність, оплачувати рахунки незалежно від того, чи використовується машина, як вона підключена тощо
  • PAAS (Platform As A Service) - рівень вищий - ви пишете заяву, яка якось десь працює. Оскільки API достатньо загальний, хмарні постачальники можуть розподіляти ресурси на вимогу, тому якщо ваша програма буде розроблена, ви заплатите за більше ресурсів, а не постраждаєте від шкідливого DDOS.
  • SAAS (Software As A Service) - ще один рівень вищий - ви не пишете заявку - ви використовуєте її. Вам байдуже, як воно реалізовано чи якими ресурсами він користується. Він доступний скрізь і в будь-який час.

Зауважте, що, хоча в більшості випадків мається на увазі, що фактична послуга передається на аутсорсинг великій компанії (скажімо, Amazon чи Google), це не обов'язково - великі компанії або університети розгортають власну внутрішню хмару, щоб дозволити легше керувати ресурсами. Це дозволяє додати ресурси до програми, а їх запуск буде доданий у міру необхідності. Якщо новий внутрішній запуск отримав успіх, їм не потрібно турбуватися, що сервери перевантажені. Однак, оскільки економія від масштабу відіграє роль, зазвичай це робиться лише тоді, коли є спеціальні вимоги (наприклад, щодо безпеки).

З точки зору користувача, він прозорий і має вигляд'''істоти архітектури клієнт-сервер. Веб-сервер може жити "в хмарі", використовуючи звичайний старий HTTP. Проблеми з ідеями та рішення дійсно відносяться до мейнфреймів 50-х років, і в даний час вони повертаються більше як контраст з товстими клієнтськими ПК.

Сказавши, що це може бути також модною фразою в даному реченні, і заявіть, що компанія є динамічною та зосередженою на своїй основній компетенції, при цьому надаючи можливість своїм працівникам.


1

Може хтось пояснить, що означає "хмарні обчислення" на відміну від клієнт-сервер?

Це залежить від вашої точки зору. Для бізнесу хмарні обчислення хороші тим, що вони (як правило) дозволяють бути більш гнучкими за кількістю машин, що підтримують ваші послуги. Така гнучкість дозволяє вам бути більш чуйними, що має заощадити гроші. Компанії також можуть скористатися тим, що дозволяють хмарному постачальнику робити резервні копії, відновлення після аварій, фізичну безпеку та всі інші інфраструктурні речі, з якими вони не хочуть мати справу. Зазвичай це призводить до економії та покращення якості.

З точки зору споживача, підвищення якості та надійності з'єднання є хорошими. Деякі хмарні постачальники також допомагають розповсюджувати свої сервери, щоб допомогти споживачам затримати.

Для програмістів ... це в значній мірі клієнтсько-серверне програмування, де до сервера боляче дістатися, і вам періодично потрібно використовувати деякі спеціалізовані API.


-1

Я думаю, що справедливо сказати, що "хмарні обчислення" та "клієнт-сервер" дуже схожі. З моєї точки зору, хмарні обчислення, здається, більше покладаються на сервер, ніж модель "клієнт-сервер". Теоретично деякі форми хмарних обчислень можуть відбуватися незалежно від з'єднання з клієнтом. Користь програми, що працює лише в хмарі, без зв'язку з клієнтом, не здається дуже корисною, тому має сенс створити певну форму спілкування клієнта з цим сервером.

По суті, я думаю, що це здебільшого покладається на те, де робиться більшість ваших обчислювальних можливостей. Сервер, як правило, має кращі технічні характеристики з точки зору апаратури та обчислювальної потужності, ніж звичайний комп'ютер користувача, щоб просто керувати багатьма клієнтськими підключеннями та одночасними операціями для обслуговування цих з'єднань. Хмарні обчислення використовують це як перевагу, переміщуючи те, що зазвичай є кодом запуску клієнта на сервер, і дозволяючи клієнту бути максимально «німим». Таким чином, потрібно менше ресурсів користувачів для обробки одного типу операцій.

Можливо, це не найкраща відповідь, але я так бачу.


2
Я не погоджуюсь. В Інтернеті використовується модель клієнт-сервер. Веб-браузер - клієнт. Веб-сервер - це сервер. Те, що веб-сервер може сидіти "в хмарі", не має значення. Два терміни не порівнянні.
GrandmasterB

Для мене вони порівнянні просто тому, що я вважаю їх по суті однаковими, за винятком випадків, коли проводиться більшість обчислень. "Хмарні обчислення" на мою думку те саме, за винятком того, що він покладається на невелику обчислювальну підтримку від клієнта.
StMotorSpark
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.