Клиент-сервер
В огромном мире вычислений есть только два типа приложений:
Автономность просто означает, что пользовательский интерфейс, бизнес-логика, хранилище данных и все без исключения ресурсы полностью автономны в единой среде выполнения - машине конечного пользователя.
Напротив, клиент-сервер означает логическое разделение этих компонентов, служб и ресурсов. Обычно мы видим пользовательские интерфейсы в локальном исполнении [он же «клиент»], а бизнес, хранилище данных и другие ресурсы - в удаленном исполнении [он же «сервер»]. Некоторые примеры,
Теперь давайте рассмотрим облачные вычисления.
Облачные вычисления
Облачные вычисления - это абстракция традиционных решений для размещения серверов.Вместо того, чтобы покупать себе 10 серверов для работы и управления в моем собственном операционном центре обработки данных, я теперь арендую X-серверы у поставщика, где X - это переменное число, определяемое мной, когда я хочу.
Использование облака дает явное преимущество. Если я купил 10 серверов, я должен управлять и обслуживать эти 10 серверов, даже если они недостаточно загружены [скажем, только 1 сервер используется 90% времени, а все 10 закреплены 10% времени в часы пик]. Это означает, что я слишком много плачу за обслуживание в течение 90% времени, и при этом проявляю негибкость, когда мне нужно увеличить оставшиеся 10%.
Преимущество облачных вычислений состоит в том, что «кто-то другой» управляет серверной фермой за нас и готов сдавать нам в аренду переменное количество машин по запросу. Таким образом, в нашем сценарии выше я мог бы арендовать 1 машину на 90% времени в нерабочее время и масштабировать до 10 или более машин в оставшиеся 10% времени.
Microsoft делает еще один шаг вперед в этой абстракции, создав Windows Azure. Они сдают в аренду не универсальные серверы, а домены приложений. Это единственный пример [на ум], когда облачная реализация имеет реальные последствия для дизайна, но основывается на той же предпосылке эластичного хостинга.
Отношение
По большей части, поскольку клиент-сервер - это парадигма программного обеспечения, а облачные вычисления - это абстракция хостинга, они являются независимыми концепциями. Кинеры, однако, поймут, что облачные вычисления подразумевают, что бизнес, хранилища данных и другие ресурсы размещаются удаленно, что требует, чтобы любое приложение, работающее в «облаке» , было частью клиент-серверного приложения.
Облачные вычисления - это всего лишь маркетинговая формулировка архитектуры клиент-сервер.
Я думаю, что клиент-сервер обычно реализуется как необходимость для программного обеспечения / приложения, но облачные вычисления обычно выбираются для оптимизации, например, для экономии затрат и обслуживания.