Чем «облачные вычисления» отличаются от «клиент-сервер»?


30

Наблюдая за тем, как генеральный директор новой компании «облачных вычислений» рассказывает о своей компании в финансовой телевизионной программе, он сказал что-то вроде «Облачные вычисления превосходят старомодные клиент-серверные вычисления».

Теперь я в замешательстве. Может кто-нибудь объяснить, что означает «облачные вычисления» в отличие от клиента-сервера?

Насколько я понимаю, облачные вычисления - это скорее модель сетевых сервисов, так что я не владею и не поддерживаю физическое оборудование. «Облако» - это весь бэкэнд. Но у меня все еще может быть приложение, которое взаимодействует с этой «облачной» средой. И если я запускаю веб-сайт, представляю форму, которую пользователь заполняет, нажимает кнопку на странице и возвращает отчет, сгенерированный веб-сервером, разве это не то же самое, что «облачные» вычисления? И вы не считаете мой веб-браузер "клиентом"?

Обратите внимание, что мой вопрос относится к понятию «облачные вычисления» по отношению к «клиент-сервер».

Извините, если это неуместный вопрос для этого сайта; это самый близкий во вселенной стека, и я здесь впервые. Я старый таймер, программирую с мэйнфреймов в конце 70-х.


Это упрощение, но я думаю, что главное отличие состоит в том, где хранятся данные. На клиентском сервере ВАША компания хранит свои данные. В облачных вычислениях ваши данные хранятся у поставщика облачных приложений. Это имеет свои преимущества, потому что пользователь облачного приложения практически не нуждается в техническом обслуживании, и разработчик облачного приложения может обновлять свой код и базы данных, не беспокоясь о том, чтобы кто-то сломал 3 версии программного обеспечения. Конечно, недостатком является то, что пользователь приложения хранит свои данные в чужом хранилище.
Данк

3
Короче говоря, можно сказать, что Client-Server был ажиотажем вчерашнего дня, в то время как The Cloud - это ажиотаж. :-)
JensG

Клиент-сервер предназначен для облачных вычислений, как ассемблерный код для Excel.
Mouviciel

1
Разница между вождением и арендованным автомобилем у вас есть. Никакой реальной разницы нет, за исключением того, что вам не нужно беспокоиться об обслуживании!
Джеймс Андерсон

Ответы:


28

Строго говоря, «Облака» нет. Не в том смысле, что говорил этот генеральный директор. Конечно, есть Интернет. Там размещены услуги. Есть VPS. Есть системы доставки контента. Мы (технические специалисты) адаптировали этот термин для обозначения определенных моделей размещенных сервисов. Но «Облако» в потребительских СМИ - это в значительной степени маркетинговый термин, в широком смысле переводимый как «Интернет». Чаще всего это также означает, что «я получу плату за месяц».

Вы правы в том, что два термина, «облако» и «клиент-сервер», не связаны. Наличие службы, размещенной «в облаке» (я всегда хочу добавить драматическое «dun-dun-daaaaaaa» после использования этой фразы), не делает приложение клиент-сервер менее клиент-серверным. Например, «сеть» в основном использует модель клиент-сервер. Веб-браузер является клиентом. Веб-сервер является сервером. То, что веб-сервер размещен «в облаке», не меняет того факта, что отношения веб-браузер / веб-сервер являются клиент-серверными.

Таким образом, термин клиент-сервер определяет отношения между двумя объектами в системе. Где физически размещены объекты, не имеет значения.

В принципе, вы правы. Два не сопоставимы.


Существует по крайней мере два типа ключей: облака высокого уровня - там, где управление уходит и говорит о - технически известный как «пар» или «дым» (отсюда и термин «дымовая завеса»), и облака низкого уровня - где расположены серверы - технически называется "туман". Извините за цинизм.
Эмилио Гаравалья

21

«Облачные вычисления» - это общий термин, предназначенный для обозначения двух вещей: во-первых, для абстрагирования всех возможных вариантов использования клиент-серверной модели за одним термином, в отличие от более конкретных случаев использования, таких как «файловые серверы», «серверы баз данных» «веб-серверы», «серверы приложений» и т. д .; и во-вторых, абстрагировать саму архитектуру сервера с точки зрения аппаратного обеспечения, топологии, местоположения и даже владения.

В традиционной модели клиент-сервер, которая сегодня все еще широко используется, клиент подключается к серверу, который выполняет определенную работу. На этом сервере может размещаться база данных, ряд общих файловых ресурсов или веб-страница. Когда клиент подключается к этому серверу, существует неявное понимание типа связи и передачи данных, которая будет происходить между двумя компьютерами. Также может быть понимание клиентом или конечным пользователем возможностей аппаратного обеспечения сервера и его ограничений. Эта относительно «тесная связь» между клиентским компьютером и его сервером может создать проблемы для системного администратора, которому необходимо отключить сервер для обслуживания; все приложения, зависящие от ресурсов, предоставляемых этим сервером, должны быть направлены на другой сервер,

В облачной модели аппаратное обеспечение, топология, разделение труда и даже количество задействованных машин - все это абстрагировано от одной конечной точки. Можно провести аналогию с современным «веб-приложением», в отличие от более старых поколений «веб-сайтов», которые были более статичными. Мы можем догадаться, что за кулисами есть сервер приложений и сервер БД, но нам на самом деле все равно; веб-сервер, как часть своей работы по предоставлению полного приложения пользователям за пределами «границы», предоставляет унифицированную конечную точку, позволяющую контролировать доступ ко всем данным и услугам, предоставляемым другими машинами за этой парадной дверью.

В результате, с помощью единственной конечной точки, предоставляющей функциональность приложения, это все, что нужно заботиться клиенту-клиенту приложения, а не о том, где взять его данные, где вызвать тот или иной процесс удаленного приложения. , так далее; это означает, что администраторы и архитекторы поставщика услуг в этом облаке могут более или менее свободно изменять машины, топологию и другие конкретные детали реализации этой «облачной службы», при этом клиенты не будут мудрее. Facebook мог бы, если бы посчитал это разумным, перестроить всю свою систему хранения данных с нуля, используя другую СУБД и все новые серверы, и до тех пор, пока сайт оставался доступным во время перехода, никто никогда не был бы мудрее; на самом деле, Facebook делал это много раз,


2
Как бы я ни ценил цинизм, стоящий за «облачным» маркетингом, который содержится в ответе GrandmasterB, этот ответ - настоящий ответ.
Эрик Кинг,

Я нашел это как лучший ответ!
Арсал

5

Ключевой частью «облачных вычислений» является инструмент управления развертыванием.

В «классических» развертываниях заказывали конкретную машину для конкретного приложения и делали довольно фиксированную конфигурацию.

В облачной среде в пуле имеется более или менее стандартизированное оборудование и API, который создает и настраивает на нем виртуальные машины из некоторой формы шаблонов. Таким образом, неисправные системы могут быть легко заменены, масштабированы или уменьшены в зависимости от потребностей и аппаратного обеспечения, при необходимости, автоматически.

Конечно, и правдивые администраторы делали это прежде, но помимо чистого маркетинга, существует фундамент стандартизированных API (Aamzons AWS API, который также предлагается такими инструментами, как Eucalyptus для «частных облаков») и инструментами (например, puppet).


Многое из этого связано с «маркетингом», а не с реальной технологией, во многом как ху-ха-ха о «больших данных».
BellevueBob

Вы забываете один большой аспект «маркетинга». Маркетинг - это не просто реклама, это также ценообразование. И в этом облачные вычисления отличаются от клиент-серверных вычислений. Это также иногда Utility Computing, потому что он оценивается как коммунальные услуги (электричество, водопроводная вода). Конечно, эта модель тоже не нова, это то, как оценили мэйнфреймы.
Йорг Миттаг

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.