Краткий обзор Виртуализация Эталонная модель Выводы Краткий обзор История развития Виртуализация Ключевые технологии Эталонная модель Спрос порождает предложение Выводы Определение “Cloud Computing” Эволюция технологии распределенных вычислений, 1950-2010-х годов. 5 ключевых технологий, сыгравших важную роль в реализации Cloud computing: Распределенные системы Web 2.0 Виртуализация Utility computing Сервисориентированность Распределенная система - это набор независимых компьютеров, представляющийся пользователям единой системой. Три основные вехи привели к облачным вычислениям: мэйнфреймы, кластеры и грид. Распределенная система cloud computing Виртуализация – это процесс запуска специализированного программного обеспечения под операционной системой, называемой хостом, дающего возможность создавать виртуальные машины, обладающие заданными характеристиками реальных компьютеров, и запускать на них независимо друг от друга различные гостевые операционные системы. Web 2.0 - этот термин отражает новый способ разработки приложений и предоставления их через Интернет. Web 2.0 делает веб-страницы интерактивными и гибкими, обеспечивая увеличение пользовательского опыта, путем получения веб-доступа ко всем функциям, которые обычно присущи приложениям для настольных ПК. Это возможно благодаря внедрению стандартов и технологий, таких как XML, асинхронный JavaScript и XML (AJAX), Web Services и другие. Эти технологии позволяют создавать приложения с возможностью вклада пользователей, которые теперь стали поставщиками контента. Сервис-ориентированная архитектура (SOA) - модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам. SOA представляет собой стиль создания архитектуры ИТ, направленный на превращение программы в ряд связанных сервисов - стандартных бизнес-задач, которые можно при необходимости вызывать через сеть. Это может быть Интернет, локальная сеть, объединяющая различные технологии и сочетающая сервисы из НьюЙорка, Лондона и Гонконга так, как если бы они были установлены на локальной машине. Для выполнения определенной бизнес-задачи можно объединять множество таких сервисов. SOA вводит 2 важных концепций, которые также имеют основополагающее значение для облачных вычислений: качество обслуживания (QoS) и Software-as-a-Service (SaaS). QoS определяет набор функциональных и нефункциональных атрибутов, которые могут использоваться для оценки поведения службы с разных точек зрения. Это могут быть метрики производительности, такие как время отклика, или атрибуты безопасности, целостность, надежность, масштабируемость и доступность. Идея Utility computing состоит в предоставлении компьютерных ресурсов для обработки и хранения данных в качестве сервиса, оплачиваемого в зависимости от объема потребляемых ресурсов. Здесь можно провести аналогию с коммунальными платежами (оплатой газа, электричества или воды). Cloud computing – это программно-аппаратное обеспечение, доступное пользователю через Интернет или локальную сеть в виде сервиса, позволяющего использовать удобный интерфейс для удаленного доступа к выделенным ресурсам (вычислительным ресурсам, программам и данным). Краткий обзор Определение виртуализации Виртуализация Преимущества и недостатки Эталонная модель Основные разновидности Выводы Под термином «виртуализация» обычно понимается абстракция вычислительных ресурсов и предоставление пользователю системы, которая «инкапсулирует» собственную реализацию. Преимущества виртуализации: Эффективное использование вычислительных ресурсов. Сокращение расходов на инфраструктуру. Снижение затрат на программное обеспечение. Повышение гибкости и скорости реагирования системы. Несовместимые приложения могут работать на одном компьютере. o Повышение доступности приложений и обеспечение. непрерывности работы предприятия. o Возможности легкой архивации. o Повышение управляемости инфраструктуры. o o o o o Недостатки использования виртуальных машин: o Обеспечение единовременной работы нескольких виртуальных машин потребует достаточного количества аппаратных мощностей. o В зависимости от используемого решения, операционная система виртуальной машины может работать медленнее, чем на "чистом" аналогичном аппаратном обеспечении. Рассмотрим основные разновидности виртуализации, такие как: o виртуализация серверов (полная виртуализация и паравиртуализация). o виртуализация на уровне операционных систем. o виртуализация приложений. o виртуализация представлений. Виртуализация серверов подразумевает запуск на одном физическом сервере нескольких виртуальных серверов. Виртуальные машины или сервера представляют собой приложения, запущенные на хостовой операционной системе, которые эмулируют физические устройства сервера. В данном типе виртуализации сформировалось 2 направления: o Поддержка неоднородных операционных сред. (Технически проблема решается путем одновременной работы на одном компьютере нескольких виртуальных машин, каждая из которых включает экземпляр операционной системы. Но реализация этого режима выполнялась с помощью двух принципиально разных подходов: полной виртуализации и паравиртуализации) o Поддержка однородных вычислительных сред. (Подразумевает изоляцию служб в рамках одного экземпляра ядра операционной системы (виртуализация на уровне ОС), что наиболее характерно для хостинга приложений провайдерами услуг. Конечно, тут можно использовать и вариант виртуальных машин, но гораздо эффективнее создание изолированных контейнеров на базе одного ядра одной ОС) Полная виртуализация (Full, Native Virtualization). Используются не модифицированные экземпляры гостевых операционных систем, а для поддержки работы этих ОС служит общий слой эмуляции их исполнения поверх хостовой ОС, в роли которой выступает обычная операционная система. Паравиртуализация (paravirtualization). Модификация ядра гостевой ОС выполняется таким образом, что в нее включается новый набор API, через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами. При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО. Виртуализация на уровне ядра ОС (operating system-level virtualization). Этот вариант подразумевает использование одного ядра хостовой ОС для создания независимых параллельно работающих операционных сред. Для гостевого ПО создается только собственное сетевое и аппаратное окружение (Virtuozzo, OpenVZ и Solaris Containers). Виртуализация приложений подразумевает применение модели сильной изоляции прикладных программ с управляемым взаимодействием с ОС, при которой виртуализируется каждый экземпляр приложений, все его основные компоненты: файлы (включая системные), реестр, шрифты, INI-файлы, COM-объекты, службы. Приложение исполняется без процедуры инсталляции в традиционном ее понимании и может запускаться прямо с внешних носителей (например, с флэш-карт или из сетевых папок). Виртуализация представлений (рабочих мест). Виртуализация представлений подразумевает эмуляцию интерфейса пользователя. Т.е. пользователь видит приложение и работает с ним на своём терминале, хотя на самом деле приложение выполняется на удалённом сервере, а пользователю передаётся лишь картинка удалённого приложения. В зависимости от режима работы пользователь может видеть удалённый рабочий стол и запущенное на нём приложение, либо только само окно приложения. Краткий обзор Эталонная модель облачных вычислений Основная часть Модели обслуживания Эталонная модель Модели развёртывания Выводы Эталонная модель Cloud computing Инфраструктура-как-услуга (IaaS) решения являются самыми популярными. Они предоставляют настраиваемую инфраструктуру по требованию. Доступные опции в рамках IaaS, варьируются от одиночных серверов до всей инфраструктуры, в том числе сетевых устройств, балансировки нагрузки, баз данных и веб-серверов. Платформа-как-услуга (PaaS) решения обеспечивают разработку и платформы развертывания для запуска приложений в облаке. SaaS (software as a service — программное обеспечение как услуга) модель использования ПО, при которой поставщик разрабатывает веб-приложение и самостоятельно управляет им, предоставляя доступ к ПО через Интернет. В модели SaaS: o приложение приспособлено для удаленного использования; o одним приложением пользуется несколько клиентов (мильтитенантность); o оплата взимается либо в виде ежемесячной абонентской платы, либо на основе объёма операций; o техническая поддержка приложения включена в оплату; o модернизация и обновление приложения происходит оперативно и прозрачно для клиентов. Мультитенантность — это возможность изолированно обслуживать пользователей из разных организацией (т.е. независимых подписчиков SaaS) в рамках одного сервиса (одной инсталляции или развертывания). Основным здесь является соблюдение изолированности подписчиков друг от друга. Структура для развертывания нового SaaS-приложения в облаке Public, Private, Hybrid Краткий обзор Преимущества Cloud Основная часть Недостатки Cloud Эталонная модель Пример Выводы Преимущества: Доступность и отказоустойчивость Всем пользователям, из любой точки где есть Интернет, с любого компьютера, где есть браузер. Экономичность и эффективность Плати столько, сколько используешь. Простота Не требуется покупка и настройка программ и оборудования, их обновление. Гибкость и масштабируемость Неограниченность вычислительных ресурсов (память, процессор, диски). Недостатки: Постоянное соединение с сетью Если нет доступа в сеть - нет работы, программ, документов. Безопасность Не все данные можно доверить стороннему провайдеру в интернете. Зависимость от "облачного" провайдера Всегда остаётся риск, что провайдер однажды не сделает резервную копию данных. ПРИМЕР