Наблюдая за тем, как генеральный директор новой компании «облачных вычислений» рассказывает о своей компании в финансовой телевизионной программе, он сказал что-то вроде «Облачные вычисления превосходят старомодные клиент-серверные вычисления».
Теперь я в замешательстве. Может кто-нибудь объяснить, что означает «облачные вычисления» в отличие от клиента-сервера?
Насколько я понимаю, облачные вычисления - это скорее модель сетевых сервисов, так что я не владею и не поддерживаю физическое оборудование. «Облако» - это весь бэкэнд. Но у меня все еще может быть приложение, которое взаимодействует с этой «облачной» средой. И если я запускаю веб-сайт, представляю форму, которую пользователь заполняет, нажимает кнопку на странице и возвращает отчет, сгенерированный веб-сервером, разве это не то же самое, что «облачные» вычисления? И вы не считаете мой веб-браузер "клиентом"?
Обратите внимание, что мой вопрос относится к понятию «облачные вычисления» по отношению к «клиент-сервер».
Извините, если это неуместный вопрос для этого сайта; это самый близкий во вселенной стека, и я здесь впервые. Я старый таймер, программирую с мэйнфреймов в конце 70-х.
источник
Ответы:
Строго говоря, «Облака» нет. Не в том смысле, что говорил этот генеральный директор. Конечно, есть Интернет. Там размещены услуги. Есть VPS. Есть системы доставки контента. Мы (технические специалисты) адаптировали этот термин для обозначения определенных моделей размещенных сервисов. Но «Облако» в потребительских СМИ - это в значительной степени маркетинговый термин, в широком смысле переводимый как «Интернет». Чаще всего это также означает, что «я получу плату за месяц».
Вы правы в том, что два термина, «облако» и «клиент-сервер», не связаны. Наличие службы, размещенной «в облаке» (я всегда хочу добавить драматическое «dun-dun-daaaaaaa» после использования этой фразы), не делает приложение клиент-сервер менее клиент-серверным. Например, «сеть» в основном использует модель клиент-сервер. Веб-браузер является клиентом. Веб-сервер является сервером. То, что веб-сервер размещен «в облаке», не меняет того факта, что отношения веб-браузер / веб-сервер являются клиент-серверными.
Таким образом, термин клиент-сервер определяет отношения между двумя объектами в системе. Где физически размещены объекты, не имеет значения.
В принципе, вы правы. Два не сопоставимы.
источник
«Облачные вычисления» - это общий термин, предназначенный для обозначения двух вещей: во-первых, для абстрагирования всех возможных вариантов использования клиент-серверной модели за одним термином, в отличие от более конкретных случаев использования, таких как «файловые серверы», «серверы баз данных» «веб-серверы», «серверы приложений» и т. д .; и во-вторых, абстрагировать саму архитектуру сервера с точки зрения аппаратного обеспечения, топологии, местоположения и даже владения.
В традиционной модели клиент-сервер, которая сегодня все еще широко используется, клиент подключается к серверу, который выполняет определенную работу. На этом сервере может размещаться база данных, ряд общих файловых ресурсов или веб-страница. Когда клиент подключается к этому серверу, существует неявное понимание типа связи и передачи данных, которая будет происходить между двумя компьютерами. Также может быть понимание клиентом или конечным пользователем возможностей аппаратного обеспечения сервера и его ограничений. Эта относительно «тесная связь» между клиентским компьютером и его сервером может создать проблемы для системного администратора, которому необходимо отключить сервер для обслуживания; все приложения, зависящие от ресурсов, предоставляемых этим сервером, должны быть направлены на другой сервер,
В облачной модели аппаратное обеспечение, топология, разделение труда и даже количество задействованных машин - все это абстрагировано от одной конечной точки. Можно провести аналогию с современным «веб-приложением», в отличие от более старых поколений «веб-сайтов», которые были более статичными. Мы можем догадаться, что за кулисами есть сервер приложений и сервер БД, но нам на самом деле все равно; веб-сервер, как часть своей работы по предоставлению полного приложения пользователям за пределами «границы», предоставляет унифицированную конечную точку, позволяющую контролировать доступ ко всем данным и услугам, предоставляемым другими машинами за этой парадной дверью.
В результате, с помощью единственной конечной точки, предоставляющей функциональность приложения, это все, что нужно заботиться клиенту-клиенту приложения, а не о том, где взять его данные, где вызвать тот или иной процесс удаленного приложения. , так далее; это означает, что администраторы и архитекторы поставщика услуг в этом облаке могут более или менее свободно изменять машины, топологию и другие конкретные детали реализации этой «облачной службы», при этом клиенты не будут мудрее. Facebook мог бы, если бы посчитал это разумным, перестроить всю свою систему хранения данных с нуля, используя другую СУБД и все новые серверы, и до тех пор, пока сайт оставался доступным во время перехода, никто никогда не был бы мудрее; на самом деле, Facebook делал это много раз,
источник
Ключевой частью «облачных вычислений» является инструмент управления развертыванием.
В «классических» развертываниях заказывали конкретную машину для конкретного приложения и делали довольно фиксированную конфигурацию.
В облачной среде в пуле имеется более или менее стандартизированное оборудование и API, который создает и настраивает на нем виртуальные машины из некоторой формы шаблонов. Таким образом, неисправные системы могут быть легко заменены, масштабированы или уменьшены в зависимости от потребностей и аппаратного обеспечения, при необходимости, автоматически.
Конечно, и правдивые администраторы делали это прежде, но помимо чистого маркетинга, существует фундамент стандартизированных API (Aamzons AWS API, который также предлагается такими инструментами, как Eucalyptus для «частных облаков») и инструментами (например, puppet).
источник
В «традиционной» архитектуре клиент-сервер у вас были статически назначенные ресурсы (или, по крайней мере, они представлены как таковые - у меня нет опыта с периода до облачных вычислений, поэтому, пожалуйста, исправьте меня, если я ошибаюсь и зависите от ложного маркетинга). Сервер базы данных назывался db.yourcompany.com, и ваш веб-сервер связывался с ним. Если вы хотите увеличить ресурсы, вы можете добавить еще один выделенный веб-сервер и обеспечить балансировку нагрузки и т. Д.
С другой стороны, в облаке стресс ставится на абстрагирование более низких уровней и обозначает, как устроен «сервер». Например, у вас есть:
Обратите внимание, что, хотя в большинстве случаев подразумевается, что фактический сервис передается на аутсорсинг крупной компании (например, Amazon или Google), в этом нет необходимости - крупные компании или университеты используют собственные внутренние облака, чтобы упростить управление ресурсами. Это позволяет добавлять ресурсы в приложение и запускать их при необходимости. Если новый внутренний запуск прошел успешно, им не нужно беспокоиться о перегрузке серверов. Однако, поскольку экономия на масштабе играет роль, это обычно делается только тогда, когда существуют особые требования (например, в отношении безопасности).
С точки зрения пользователя он прозрачен и выглядит как клиент-серверная архитектура. Веб-сервер может жить «в облаке» при использовании простого старого HTTP. Идеи, проблемы и решения действительно восходят к мейнфреймам 50-х годов, и в настоящее время они возвращаются скорее в отличие от толстых клиентских ПК.
Сказав, что это может также быть модным словом в данном предложении и заявить, что компания динамична и сосредоточена на своей основной компетенции, одновременно предоставляя возможность своим сотрудникам.
источник
Это зависит от вашей точки зрения. Для бизнеса облачные вычисления хороши тем, что они (как правило) позволяют вам быть более гибкими с количеством компьютеров, поддерживающих ваши услуги. Такая гибкость позволяет вам быть более отзывчивым, что должно сэкономить ваши деньги. Предприятия также могут воспользоваться возможностью предоставления поставщику облачных услуг резервного копирования, аварийного восстановления, физической безопасности и всех других инфраструктурных вещей, с которыми они не хотят иметь дело. Это обычно приводит к экономии и улучшению качества.
С точки зрения потребителя, повышенное качество связи и надежность хороши. Некоторые облачные провайдеры также помогают распределять свои серверы, чтобы помочь задержке потребителей.
Для программистов ... это в значительной степени клиент-серверное программирование, где сервер является трудной задачей, и вам иногда нужно использовать некоторые специализированные API.
источник
Я думаю, что было бы справедливо сказать, что «облачные вычисления» и «клиент-сервер» очень похожи. С моей точки зрения, облачные вычисления больше зависят от сервера, чем от модели «клиент-сервер». Теоретически, некоторые формы облачных вычислений могут происходить независимо от соединения с клиентом. Преимущество приложения, работающего только в облаке, без взаимодействия с клиентом, не кажется очень полезным, поэтому имеет смысл создать некую форму взаимодействия с клиентом на этом сервере.
По сути, я думаю, что это в основном зависит от того, где делается большая часть ваших вычислительных мощностей. Сервер, как правило, обладает лучшими характеристиками с точки зрения аппаратного обеспечения и вычислительной мощности, чем стандартный пользовательский компьютер, чтобы просто управлять множеством клиентских подключений и одновременных операций для обслуживания этих подключений. Облачные вычисления используют это как преимущество, перемещая то, что обычно было бы кодом запуска клиента, на сервер и позволяя клиенту быть настолько «глупым», насколько это возможно. Таким образом, требуя меньше пользовательских ресурсов, для обработки одного и того же типа операций.
Возможно, это не лучший ответ, но я так вижу.
источник