Автор: Пользователь скрыл имя, 19 Декабря 2011 в 10:16, курсовая работа
На протяжении многих лет компьютерная индустрия следовала по пути постоянного наращивания вычислительной мощности. Программное обеспечение приходящее на смену старому, требовало все более мощных процессоров и больших объемов памяти. Затраты на дата-центры растут с той же скоростью.
С появлением подхода web 2.0, ориентированного на социальную составляющую информационной среды, начала бурно развиваться «философия» софта по запросу. Она основывается на том, что пользователь или компания платит только за те ресурсы, которые потребляет. Причем количество доступных ресурсов зависит от нагрузки, это достигается путем масштабирования платформы.
Целью данной работы является изучения перспектив развития облачных вычислений, выделение видов и подходов при их разработке. Изучение особенностей разработки облачного программного обеспечения, анализ рисков связанных с безопасностью информации и надежностью технологии, а так же рациональная составляющая такой технологии.
Введение 6
1 Теоретические основы 7
1.1 Основные виды 7
1.2 Терминология 7
1.3 История развития 8
1.4 Распределенный подход и облака 9
1.5 Коммунальный подход и облака 10
1.6 Самоуправляемые системы 11
2 Достоинства и недостатки 12
2.1 Достоинства. 12
2.2 Недостатки. 13
3 Безопасность 15
3.1 In-the cloud-безопасность 15
3.2 Вопрос необходимости 15
3.3 Преимущества безопасности in-the-cloud 16
3.4 Двусторонняя связь 17
3.5 Недостатки in-the-cloud-безопасности 17
4 Обзор популярных облаков 19
5 Разработка облачного приложения 21
Заключение 23
Список использованных источников 24
На протяжении многих лет компьютерная индустрия следовала по пути постоянного наращивания вычислительной мощности. Программное обеспечение приходящее на смену старому, требовало все более мощных процессоров и больших объемов памяти. Затраты на дата-центры растут с той же скоростью.
С появлением подхода web 2.0, ориентированного на социальную составляющую информационной среды, начала бурно развиваться «философия» софта по запросу. Она основывается на том, что пользователь или компания платит только за те ресурсы, которые потребляет. Причем количество доступных ресурсов зависит от нагрузки, это достигается путем масштабирования платформы.
Целью данной работы является изучения перспектив развития облачных вычислений, выделение видов и подходов при их разработке. Изучение особенностей разработки облачного программного обеспечения, анализ рисков связанных с безопасностью информации и надежностью технологии, а так же рациональная составляющая такой технологии.
Облачные вычисления это технология, которая использует Интернет и удаленный центр обработки данных для предоставления данных и запуска приложений. Облачные вычисления позволяет потребителям и предприятиям использовать приложения без установки и иметь доступ к их личным файлам на любом компьютере с доступом в Интернет. Эта технология позволяет получить гораздо более эффективные вычислительные возможности путем балансирования объемов хранилищ, памяти, процессорного времени и пропускной способности в зависимости от загруженности и задач.
Простой пример облачных вычислений электронная почта Gmail. Пользователю не нужно программное обеспечение или сервер для использования сервиса. Всем потребителям необходимо только подключение к Интернету. Сервер электронной почты и управления программным обеспечением, все построено на облачных сервисах и полностью управляется поставщиком службы Google.
Облачные вычисления разбиваются на три сегмента: "приложения", "платформ" и "инфраструктура". Каждый сегмент служит своей цели, и предлагает различные продукты для юридических и физических лиц по всему миру. В июне 2009 года исследования, проведенного VersionOne, обнаружили, что 41% старших ИТ-специалистов на самом деле не знают об облачных вычислениях и две трети профессионалов финансовой структуры сомневаются в этой концепции, выделяя то, что технология еще не сформировалась. В сентябре 2009 года, группа исследования Aberdeen обнаружила, что компании перешедшие на облачные сервисы достигнули в среднем 18% сокращение ИТ-бюджета и 16% сокращение затрат на электроэнергию дата центров.
Облачные вычисления особенно подходят для малого и среднего бизнеса, которые нуждаются в масштабируемоти быстро, но не имеют финансовых ресурсов для работы крупных центров обработки данных и/или покупать дорогие лицензии на программное обеспечение. Компании могут уменьшить риск, предварительно инвестируя и постепенно расширяясь со спросом.
Software as a Service (SaaS) - Программное обеспечение как сервис.
Под данным определением понимается предоставление доступа к программам, запущенным на серверах, через веб-браузер. В качестве примера можно привести веб-интерфейс к серверам электронной почты, форумы, социальные сети, фотоальбомы, а также программы, ранее доступные только посредством установки их на локальный компьютер. Известнейшим разработчиком офисных программ, использующих веб-браузер, является компания Google. Ее коллекция программ под названием Google Docs позволяет редактировать файлы и таблицы прямо в сети Интернет.
Platform as a Service (PaaS) - Платформа как сервис.
Если нужна операционная система Линукс или веб-сервер и требуется построить продукт на их основе, добавить к веб-приложениям системы управления базами данных Oracle или MySQL, специалисту необязательно подбирать аппаратное обеспечение, устанавливать и настраивать сопутствующие программы и библиотеки. Ориентированная прежде всего на разработчиков, услуга "Платформа как сервис" предоставляет возможность гибкого и широкого выбора настроенных под конкретные задачи виртуальных вычислительных ресурсов и программ, с помощью которых можно построить уникальное решение или продукт. Хорошими примерами могут служить интегрированные среды разработки и выполнения программ Google Apps и Force.com.
Infrastructure as a Service (IaaS) - Инфраструктура как сервис
Услуга "Инфраструктура как Сервис" предназначается тем пользователям, которым нужны мощные вычислительные ресурсы. Последние, как правило, стоят больших денег - не только при покупке, но и в обслуживании. Виртуальная инфраструктура позволяет сэкономить на аппаратном обеспечении и на услугах IT (например, администрирование серверов, арендная плата за место, электричество и т.п.). Также данная услуга рассчитана на масштабируемость вычислительных ресурсов, например, количество оперативной памяти, процессоров, дискового пространства можно изменять буквально на лету. Одной из разновидностей IaaS стала услуга Data Storage as a Service (dSaaS) - Хранение данных как сервис. Самыми известными представителями IaaS и dSaaS на сегодняшний день являются Elastic Compute Cloud (EC2) и Simple Storage Service (S3) компании Amazon LLC.
В публикациях термин «Облако» обычно представляют как народный, объясняя его облачком, которым изображают на картинках Интернет, однако фольклор здесь ни при чем. Своим появлением термин cloud computing обязан Эрику Шмидту, в настоящее время глава совета директоров Google. Еще работая в должности директора по технологиям Sun Microsystems, Шмидт пришел к выводу о родственности сети и компьютера, позже растиражированном в девизе Sun Microsystems «Сеть – это компьютер». Этот девиз – доведенная до предельного лаконизма мысль, высказанная Шмидтом еще в 1993 году: «Когда сеть станет такой быстродействующей, как процессор, компьютер как таковой перестанет существовать, он распространится по сети». Три слова: «Сеть – это компьютер» много лет интриговали компьютерную общественность. Термин cloud computing Шмидт первым использовал в августе 2006 года в интервью по окончании конференции Search Engine Strategies Conference: «У нас на глазах рождается новая модель компьютерных систем, и мне кажется, что насчитывается не так много людей, которые способны понять открывающуюся перспективу. Суть ее в том, что сервисы, поддерживающие данные и архитектуру, размещены на удаленных серверах. Данные находятся на этих серверах, на них же выполняются необходимые вычисления... И если в вашем распоряжении соответствующий браузер и соответствующие права доступа, то вы можете получить доступ к этому облаку независимо от используемого устройства».
В русскоязычной IT-сфере укрепился перевод «облачные вычисления», с которым трудно согласиться, поскольку из двух значений, имеющихся в английском языке для слова computing, выбрано явно не соответствующее контексту. Исторически первым значением действительно является «вычисления», но со временем появилось и второе – «использование компьютеров».
Большая часть используемых людьми технологических достижений потребляется в виде сервисов из почти известных им источников, причем предпосылки к тому, что теперь называют облачным подходом, возникли еще на заре информационных технологий. Раньше всех по этому поводу высказался Нильс Барричелли, математик, работавший в знаменитом Институте передовых исследований (Institute of Advanced Studies, IAS) вместе с Джоном фон Нейманом. В 1953 году он описал умозрительную на тот момент возможность существования некоего условного пространства, в котором машины смогут кооперироваться при выполнении задач. В 1961 году один из отцов искусственного интеллекта Джон Маккарти высказал предположение, что вычисления смогут быть организованы примерно так, как обычные коммунальные услуги. Ближе всех из первопроходцев к идее облака был Джозеф Ликлайдер, в своем меморандуме, посвященном «межгалактической компьютерной сети» (1963 год): «В будущем я смогу пользоваться определенными сетевыми функциями, осуществляя выборку нужных мне данных с помощью системы, которая подберет необходимые мне программы. Для этого она будет использовать предложенные ей описания, которые со временем можно будет делать на естественном языке. Между заимствованными программами и моими собственными можно будет устанавливать связь... выполнение задач может происходить где угодно». Идеология Ликлайдера стала базисом для создания первой компьютерной сети ARPAnet в 1969 году. Последующие события, в том числе создание стандарта на электронный обмен данными EDI (Electronic Data Interchange, 1975), запуск Web 1.0 (1994), создание XML (1998), опубликование Microsoft концепции Software as a Service, принятие стандартов WSDL, UDDI и SOAP (2000), начало эксплуатации Amazon EC2 (2006), в конечном итоге привели к появлению облаков.
На вопрос, почему именно облаков, можно найти ответ в предложенной директором по технологиям Sun Microsystems Грегом Пападопулосом технико-экономической теории, получившей название «Красное смещение» (Red Shift). В соответствии с этой теорией большинство цифровых показателей, относящихся к приложениям определенного типа, удваивается менее чем за два года, и для удовлетворения их потребностей требуется иная вычислительная среда, которая должна обладать качеством, названным «гипермасштабирование» (hyperscale). Традиционные ЦОД к этому не способны, к тому же они используются крайне неэффективно, и даже виртуализация не позволяет повысить их КПД выше 15%. Мало того, наращивание мощностей обычных корпоративных ЦОД вызовет отставание их возможностей от потребностей пользователей; возникающее при этом смещение Пападопулос по аналогии с известным астрономам эффектом именовал красным. Окончательный вывод – необходимо уходить в облака, где более эффективное совместное использование ресурсов может компенсировать последствия красного смещения.
У облачного подхода три типа организации компьютерных систем, о которых:
Основой архитектуры является распределенный, коммунальному подходу соответствуют идеи сервисов, а автономный определяет принципы функционирования.
Появлению распределенный подхода (grid) предшествовал метакомпьютинг – «мета» в том смысле, что вычислительная среда состоит из компьютеров (computing of computing). Точно так же, но как имя собственное, термин Metacomputing в 80-е годы использовался в проекте американского Национального центра суперкомпьютерных приложений по объединению суперкомпьютеров. Далее Ян Фостер и Карл Кессельман начали работу над проектом Globus Toolkit, в 1997 году они описали Globus Toolkit и доложили на семинаре в Арагонской национальной лаборатории, а спустя год опубликовали книгу The Grid: Blueprint for a New Computing Infrastructure, которая заслужила неофициальное название «Библия grid».
Бизнес-модель, типичную для grid, можно назвать проектно-ориентированной. Предприятия передают свои ресурсы под управление администрации grid, создавая таким образом распределенный буфер ресурсов, физическая организация которого может быть вообще неизвестна пользователю, он в форме сервиса получает потребные ему, возможно, очень большие по объему ресурсы, за которые он расплачивается по мере их использования.
Архитектуры
grid и облаков заметно различаются, поскольку
создавались исходя из разных предпосылок.
На первые повлияло стремление как можно
эффективнее использовать дорогостоящие
распределенные вычислительные ресурсы,
сделать их динамическими и однородными.
Поэтому архитектура сфокусирована на
интеграции уже существующих ресурсов,
включая оборудование и программное обеспечение,
операционные системы, локальные средства,
обеспечивающие управление и безопасность.
В результате создается «виртуальная
организация», ресурсы которой, переведенные
в логическую форму, могут потребляться
членами только этой организации. Существование
этой организации поддерживается пятью
уровнями протоколов, инструментами и
сервисами, построенными поверх них (Рисунок 1(а)).
Нижним является инфраструктурный уровень (fabric
layer), объединяющий компьютеры, системы
хранения, сети, библиотеки кодов. Выше
него расположен уровень связности(connectivity
layer), на нем определены коммуникационные
протоколы и протоколы аутентификации. Ресурсный
уровень обеспечивает предоставление
ресурсов, возможности управления ими,
разделение между отдельными пользователями
и оплату. Коллективный
уровень (collective layer) дополняет ресурсный,
позволяя оперировать наборами ресурсов. Уровень
приложений(application layer) служит для поддержки
приложений.
Рисунок
1 архитектура grid (а),
cloud computing (б)
Архитектура облаков открыта для доступа через Сеть, а не только в рамках grid. Обращение к пулам вычислительных ресурсов и системам хранения данных осуществляется по стандартным протоколам, например таким, как WSDL и SOAP, или с помощью более продвинутых технологий Web 2.0 (REST, RSS, AJAX), а также через существующие технологии grid. Протоколы облаков можно разделить на четыре уровня них (Рисунок 1(б)). Инфраструктурный уровень (fabric layer) содержит «сырые» компьютерные ресурсы (серверы, системы хранения, сети). Уровень унификации ресурсов (unified resource layer) содержит те же ресурсы, но в абстрагированном виде – они могут быть представлены пользователям и верхнему уровню как виртуализованные серверы, кластеры серверов, файловые системы и СУБД. Уровень платформ (platform layer) добавляет набор специализированных инструментов, связующее ПО и сервисы поверх универсальных ресурсов, образуя среду для разработки и внедрения приложений. Уровень приложений (application layer) содержит приложения, исполняемые в облачной среде.