Автор: Пользователь скрыл имя, 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
Идея
оптимизации использования
Облака
позволяют разрабатывать, внедрять
и выполнять приложения без ограничений
по масштабированию, выполнять их с
высокой скоростью и
Прежде всего, облака должны быть готовы к работе с корпоративными приложениями и должны подчиняться требованиям соглашений об уровне обслуживания. Управление облаками осуществляется в динамическом режиме с учетом таких факторов, как условия поставки сервисов, стоимость, приоритет пользователя (в случае пиковых нагрузок предпочтение может быть отдано клиенту с более высоким приоритетом). Все эти требования распространяются на IaaS и SaaS.
Предоставление инфраструктуры в качестве сервисов первоначально называли HaaS (Hardware as a Service), то есть «аппаратное обеспечение как сервис»; иногда еще говорят о «рабочем месте как сервисе» – WaaS (Workplace as a Service). Основное достоинство IaaS в возможности получать линейно масштабируемые ресурсы практически без ограничения и платить за них по мере использования. В основе IaaS лежат современные технологии виртуализации отдельных серверов и ЦОД в целом. Необходимость в переходе на нижний уровень в архитектуры IaaS возникает в том случае, если используется какое-то нестандартное ПО, то есть когда потребность не может быть удовлетворена на уровне SaaS. При оценке потенциала IaaS необходимо учитывать, что, несмотря на все слова об облачности и виртуальности, приложения работают на реальных физических серверах, а это значит, что надо учитывать, что эти серверы имеют определенные характеристики: большинство из них построено на платформе LAMP (Linux, Apache, MySQL и Perl/PHP/Python), и не для всех приложений это лучший выбор; предприятия уже имеют собственные ресурсы, которые надо загружать; могут иметь значение законодательные акты, действующие на той или иной территории.
Для
обеспечения линейного
Альтернативой multi-tenancy является архитектура multi-instance (instance – «образец», «экземпляр»), позволяющая для каждого пользователя выделять его собственную часть облака для выполнения своих приложений. Преимущества такого подхода в большей надежности: падение одного экземпляра не влияет на другие, а данные строго разделены. Можно сказать, что архитектура multi-instance возвращает нас в исторический период «одно приложение – один сервер», но на качественно ином уровне, серверы являются виртуальными машинами. Виртуальность обеспечивает multi-instance масштабируемость, сопоставимую с коммунальной архитектурой.
В ее нынешнем виде идея самоуправления в приложении к компьютерным системам была сформулирована IBM в 2001 году в специальном манифесте Autonomic Computing, опубликованном от лица директора корпорации по исследованиям и разработкам Пола Хорна. В этом документе проводится одна простая мысль: по достижении системой определенного уровня сложности исчерпываются ресурсы ручного управления и возникают потребности и возможности для автоматизации управления или самоуправления.
В
перспективе самоуправление должно
распространиться на нижние инфраструктурные
уровни (Рисунок 2), и их развитие не может
быть сведено к экстенсивному расширению
ЦОД, построенных на принятых сегодня
принципах. Если не вводить в них принципы
самоуправления, то с неизбежностью возникнут
неразрешимые проблемы структурной сложности.
Основная идея autonomic computing состоит
в том, что система сама может адаптироваться
к целям, которые ставит перед ней администратор,
чтобы она могла включать в себя дополнительные
компоненты без вмешательства человека.
Технологии виртуализации и сервисные
архитектуры, лежащие в основе облаков,
открывают возможности для практической
реализации идей самоуправления. Самоуправление,
в свою очередь, дает возможность для реализации
коммунальной архитектуры, поскольку
обеспечивает динамическую перестройку
инфраструктуры.
Рисунок
2 Архитектура облаков
Проанализировав
три источника, можно дать такое
определение облачному
Недорогие
компьютеры для пользователей. Пользовател
Увеличенная производительность пользовательских компьютеров. Так как большая часть программ и служб запускаются удаленно в сети Интернет, пользовательские компьютеры с меньшим числом программ быстрее запускаются и работают. Одним из хороших примеров является антивирусное решение Panda Cloud Antivirus, которое позволяет сканировать данные на вирусы удаленно на мощных серверах и тем самым в 2 раза снижает нагрузку на пользовательский компьютер.
Уменьшение затрат и увеличение эффективности IT инфраструктуры. Обычные сервера средней компании загружены на 10-15%. В одни периоды времени есть потребность в дополнительных вычислительных ресурсах, в других эти дорогостоящие ресурсы простаивают. Используя необходимое количество вычислительных ресурсов в "облаке" (например, Amazon EC2) в любой момент времени, компании сокращают затраты на оборудование и его обслуживание до 50%. При этом многократно увеличивается гибкость производства в постоянно меняющейся экономической обстановке. Если достаточно большая фирма обеспокоена тем, что ценная информация будет храниться и обрабатываться на стороне, для такой фирмы можно построить свое собственное "облако" и наслаждаться всеми выгодами от виртуализации инфраструктуры.
Меньше проблем с обслуживанием. Так как физических серверов с внедрением Cloud Computing становится меньше, их становится легче и быстрее обслуживать. Что касается программного обеспечения, то последнее установлено, настроено и обновляется в "облаке".
Меньше
затрат на приобретаемое
программное обеспечение. Вмест
Постоянное обновление программ. В любое время, когда пользователь запускает удаленную программу, он может быть уверен, что эта программа имеет последнюю версию - без необходимости что-то переустанавливать или платить за обновления.
Увеличение доступных вычислительных мощностей. По сравнению с персональным компьютером вычислительная мощь, доступная пользователю "облачных" компьютеров, практически ограничена лишь размером "облака", то есть общим количеством удаленных серверов. Пользователи могут запускать более сложные задачи, с большим количеством необходимой памяти, места для хранения данных, тогда, когда это необходимо. Иными словами, пользователи могут при желании легко и дешево поработать с суперкомпьютером без каких-либо фактических приобретений.
Неограниченный объем хранимых данных. По сравнению с доступным местом для хранения информации на персональных компьютерах объем хранилища в "облаке" может гибко и автоматически подстраиваться под нужды пользователя. При хранении информации в "облаке" пользователи могут забыть об ограничениях, накладываемых обычными дисками, - "облачные" размеры исчисляются миллиардами гигабайт доступного места.
Совместимость с большинством операционных систем. В Cloud Computing операционные системы не играют никакой роли. Пользователи Unix могут обмениваться документами с пользователями Microsoft Windows и наоборот без каких либо проблем. Доступ к программам и виртуальным компьютерам происходит при помощи веб-браузера или другими средствами доступа, устанавливаемые на любой персональный компьютер с любой операционной системой.
Улучшенная совместимость форматов документов. Если пользователи пользуются одной "облачной" программой для создания и редактирования документов, у них просто нет несовместимости версий и форматов, в отличие от тех, кто, например, получит документ Word 2007 и не сможет прочитать его на локальном компьютере с Word 2003 или OpenOffice. Хорошим примером совместимости является офисный пакет Google Docs, позволяющий совместную работу над документами, презентациями и таблицами имея под рукой любой компьютер с веб-браузером.
Простота совместной работы группы пользователей. При работе с документами в "облаке" нет необходимости пересылать друг другу их версии или последовательно редактировать их. Теперь пользователи могут быть уверенными, что перед ними последняя версия документа и любое изменение, внесенное одним пользователем, мгновенно отражается у другого.
Повсеместный доступ к документам. Если документы хранятся в "облаке", они могут быть доступны пользователям в любое время и в любом месте.
Всегда самая последняя и свежая версия. В "облаке" всегда находится самая последняя и самая свежая версия программы или документа.
Доступность
с различных устройств. Пользов
Дружелюбие к природе, экономное расходование ее ресурсов. Cloud Computing позволяет не только экономить на электричестве, вычислительных ресурсах, физическом пространстве, занимаемом серверами, но и разумно подходить к расходованию природных ресурсов. Центры обработки информации, те самые "облака", можно расположить в более прохладном климате, пользователи могут заменить тяжелые, ресурсоемкие компьютеры и ноутбуки на легкие и экономичные нетбуки. При этом экономится не только электроэнергия и место, но и материалы, из которых все это изготавливается.
Устойчивость данных к потере или краже оборудования. Если данные хранятся в "облаке", их копии автоматически распределяются по нескольким серверам, возможно находящимся на разных континентах. При краже или поломке персональных компьютеров пользователь не теряет ценную информацию, которую он к тому же может получить с любого другого компьютера. Можно предположить, что резервное копирование на другой персональный компьютер или на другие носители информации, например, DVD диски или флэш-накопители, также обезопасит данные. Но в последнем случае надо учесть два момента. Во-первых, за резервным копированием надо следить и регулярно его выполнять. Во-вторых, данные методы не обеспечивают физической безопасности, например, от пожара, воровства и т п.
Постоянное соединение с сетью Интернет. Cloud Computing всегда требует соединения с сетью Интернет. Или почти всегда. Некоторые "облачные" программы загружаются на локальный компьютер и используются в то время, когда Интернет недоступен. В остальных случаях, если нет доступа в Интернет - нет работы, программ, документов. Это амый сильный аргумент против Cloud Computing. Учитывая развитие современного мира, Интернет будет доступен всегда и везде, как, например, электричество и вода.