Облачные вычисления над Client-сервером: различия, минусы и плюсы?

Насколько я знаю, облачные вычисления могут быть эволюцией в архитектуре программного обеспечения, и он заменит некоторые современные архитектуры, такие как клиент-сервер.

Эти две архитектуры, похоже, имеют сходство для меня (я очень мало знаю об обоих), но я не знаю различий между ними. Каковы минусы и плюсы облачных вычислений по архитектуре клиент-сервер?

Большое вам спасибо.

Ответ 1

клиент-сервер

В широком мире вычислений есть только два вида приложений,

  • автономное приложение и
  • клиент-серверное приложение

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

Напротив, клиент-сервер означает, что существует некоторая логическая сегрегация этих компонентов, сервисов и ресурсов. Как правило, мы видим пользовательские интерфейсы в локальном исполнении [aka "client" ] и бизнес и хранилище данных и другие ресурсы в удаленном исполнении [aka "server" ]. Некоторые примеры,

  • MSN Messenger [содержит приложение, которое мы запускаем на нашей локальной машине, а вспомогательная служба упрощает связь в удаленном месте]
  • Facebook [содержит тонкое приложение - наш веб-браузер - и удаленный сервис - их серверы)
  • StackOverflow [тот же самый Facebook]

С этим в руке давайте посмотрим на облачные вычисления.

Облачные вычисления

Облачные вычисления - это абстракция традиционных серверных решений для хостинга. Вместо того, чтобы покупать 10 серверов самостоятельно, чтобы запускать и управлять в моем собственном операционном центре обработки данных, теперь я арендую X-серверы у поставщика, где X - это переменное число, определенное мной, когда захочу.

Существует явное преимущество использования облака. Если я купил 10 серверов, я должен управлять и поддерживать эти 10 серверов, даже если они недоиспользуются [говорят, что только 1 сервер используется в 90% случаев, а все 10 - 10% времени в часы пик]. Это означает, что я плачу слишком много в обслуживании в 90% случаев, будучи негибким, когда мне нужно вырастить оставшиеся 10%.

Преимущество облачных вычислений заключается в том, что "кто-то еще" управляет фермой серверов для нас и готов сдавать нам в аренду переменное количество машин по запросу. Таким образом, в нашем сценарии выше, я мог бы арендовать 1 машину в течение 90% времени в нерабочее время и масштабировать до 10 или более машин в оставшиеся 10% времени.

Microsoft делает эту абстракцию еще на один шаг в Windows Azure. Они не арендуют обобщенные серверы, а области приложений. Это один из примеров [для ума], когда реализация облака имеет фактические проектные последствия, но она основана на той же предпосылке, что и у эластичного хостинга.

Связь

По большей части, поскольку клиент-сервер представляет собой программную парадигму, а облачные вычисления - абстракция хостинга, они являются независимыми концепциями. Keeners, однако, поймет, что облачные вычисления подразумевают удаленно размещен бизнес, хранилища данных и другие ресурсы, что требует, чтобы любое приложение, работающее в "облаке", было частью приложения клиент-сервер.

Ответ 2

Облачные Архитектуры - это проекты программных приложений, которые используют интернет-услуги по требованию. Приложения, построенные на облачных архитектурах, таковы, что базовая вычислительная инфраструктура используется только тогда, когда это необходимо (например, для обработки пользовательского запроса), привлекать необходимые ресурсы по требованию (например, вычислительные серверы или хранилище), выполнять определенное задание, затем отказаться от ненужных ресурсов и часто распоряжаться собой после выполнения задания. Во время работы приложение масштабируется вверх или вниз на основе потребностей ресурса.

Пример: приложение, которое в настоящее время находится в производстве, используя инфраструктуру по требованию, предоставляемую Amazon Web Services. Это приложение позволяет разработчику выполнять сопоставление образцов по миллионам веб-документов. Приложение запускает сотни виртуальных серверов по запросу, выполняет параллельные вычисления на них с использованием инфраструктуры распределенных вычислений с открытым исходным кодом под названием Hadoop, а затем отключает все виртуальные серверы, отбрасывая все свои ресурсы обратно в облако - все с небольшим усилием программирования и по очень разумной цене для вызывающего абонента.

Ответ 3

Облачные вычисления - это всего лишь маркетинговая формулировка архитектуры клиент-сервер.

Ответ 4

Я думаю, что клиентский сервер обычно реализуется как необходимость для программного обеспечения/приложения, но облачные вычисления обычно выбираются для оптимизации, например, для экономии затрат и обслуживания.