Программное обеспечение как услуга. Чайнику про облачные технологии

18.08.2019 Роутеры и модемы

Раньше, чтобы развернуть какое-либо приложение, приходилось покупать и настраивать собственные физические серверы. Такой подход обладал большим количеством недостатков, например, если для нормальной работы приложения ему достаточно «полтора сервера», платить все равно приходилось за два – расходы на содержание и обслуживание инфраструктуры оказывались неоправданно высокими.

Сегодня у нас есть такие сервисы, которые позволяют настроить виртуальный сервер и хранилище данных под собственные нужды. В этом случае расходы зависят от необходимого количества вычислительных (и других) ресурсов – вы платите только за то, что используете.

Корни облачных вычислений восходят к высокопроизводительным вычислениям. В гонке стран по наращиванию вычислительной мощности приняли участие даже такие крупные компании, как IBM и HP.

«Однако инженеры и исследователи быстро поняли, что такой подход плохо масштабируется, – говорит Прадип Падала (Pradeep Padala), учредитель ContainerX. – Поэтому начались поиски альтернативных способов проведения вычислений: начали разрабатываться распределенные системы, объединяющие в себе мощности огромного количества компьютеров».

Появились такие академические проекты, как Condor – это распределённая сеть компьютеров, развернутая в Висконсинском университете в Мадисоне. На сегодняшний день там установлено 350 настольных UNIX-станций, которые предоставляют доступ для работы пользователям со всего мира. Были и другие проекты, например distributed.net и SETI@home – на тот момент эта идея была инновационной, да и заниматься поиском внеземных цивилизаций тоже достаточно интересно.

Затем появился БАК от ЦЕРН, который породил бессчётное количество исследовательских проектов, на которые уходили миллиарды долларов. Как часть всего этого движения в моду вошли грид-вычисления. Определение грид-вычислений очень близко к тому, что мы называем «вычисления как услуга». В качестве примера можно привести Globus Toolkit .

Одновременно со всем этим, в технической индустрии, VMware и Xen занимались популяризацией виртуализации, которая позволяла запускать сразу несколько машин на одной физической машине. Это преобразило IT-индустрию, а простота использования привлекла внимание стартапов, которым было сложно покупать и содержать свое собственное оборудование.

Ниже изображена классическая модель компьютерных вычислений. Доступ к серверам, приложениям и сервисам осуществляется по сети.

Обратившись к облачным вычислениям, организация получает возможность настраивать инфраструктуру по своему усмотрению, затрачивая на это меньшее количество средств и усилий. Иными словами, эта модель направлена на повышение доступности вычислительных ресурсов и сочетает в себе пять характеристик: самообслуживание по требованию, широкая доступность через Интернет, объединение ресурсов в пул, способность к быстрой адаптации и измеримость.

Самообслуживание означает, что потребители должны иметь возможность без труда и по собственному желанию задействовать (или наоборот отключить) дополнительные вычислительные мощности, не контактируя с персоналом и техниками на стороне поставщика услуг.

Широкая доступность означает, что все возможности, предлагаемые поставщиком доступны через сеть. Работа с ними осуществляется на основе стандартных механизмов – это дает возможность использовать различные клиентские платформы, например мобильные телефоны, планшетные и персональные компьютеры.

Свои вычислительные ресурсы поставщик объединяет в пул, чтобы их можно было динамически перераспределять в соответствии с нуждами пользователей – это так называемый принцип множественной аренды (Multi-tenancy). Возникает ощущение независимости от местоположения, когда заказчик не знает, где именно находятся ресурсы, но может определять их расположение на абстрактном уровне (страна или регион).

Способность к быстрой адаптации – это возможность быстро масштабировать ресурсы под нужды заказчика. С точки зрения клиента, предлагаемые ему возможности выглядят неограниченными, которыми он может воспользоваться в любой момент.

Облачные системы автоматически контролируют и оптимизируют использование ресурсов. Это осуществляется путем измерения различных параметров (размер хранилища данных, вычислительная мощность, пропускная способность). Таким образом, как поставщик, так и потребитель получают полную информацию об объеме оказанных/потребленных услуг.

Что касается стоимости услуг, то процесс их формирования может быть достаточно сложным, а ценник изменяться от поставщика к поставщику. Джейсон Лемкин (Jason M. Lemkin), партнер SaaStr Ventures, считает , что если ваш продукт лучше, то не стоит стесняться завышать цену.

Если вы вводите какую-нибудь новую функцию, которая способна кардинально изменить пользовательский опыт, то нет ничего плохого в том, если вы постараетесь извлечь из этого максимальную выгоду. «Если ваш продукт в пять раз серьезнее, чем у конкурента, то вы можете просить за него в 5 раз больше», – утверждает Джейсон.

Помимо характеристик выделяют еще три модели обслуживания: программное обеспечение как услуга (SaaS), платформа как услуга (PaaS) и инфраструктура как услуга (IaaS). Отличаются они степенью предоставляемого контроля.

В случае IaaS клиент получает возможность использовать облачную инфраструктуру по своему усмотрению и самостоятельно управлять ресурсами обработки и хранения, а также сетями. «Пользователь может создать виртуальную инфраструктуру и изменить её в любой момент», – говорит консультант Эван Лейт (Ewan Leith). Аутсорсинг стал популярным еще в те времена, когда компании хотели использовать компьютеры, но не хотели нести издержки по их содержанию и обслуживанию. По этой причине мы сегодня имеем технологию виртуализации.

Виртуализация – это предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, то есть одна физическая машина может поддерживать несколько виртуальных. Таким образом, физические ресурсы объединяются в пул, а гипервизор выделяет их виртуальным машинам, на которых запускаются гостевые операционные системы.

Вам не потребуется покупать оборудование, не потребуется строить собственный дата-центр, не потребуется нанимать системных инженеров, которые отвечают за обслуживание техники на физическом уровне. Данную часть вы отдаете на обслуживание облачному провайдеру. В вашей зоне ответственности остается управление операционной системой, установкой и настройкой приложений.

Второй слой – это платформа как услуга или PaaS. При переходе от модели IaaS к модели PaaS (Platform as a Service) дополнительно на сторону облачного провайдера передается управление операционными системами и базами данных. В этом случае клиентам не приходится думать о дисковом пространстве, которое необходимо выделить, и распределении нагрузки между серверами. Примерами PaaS являются Google App Engine, Heroku и Force.com.

Программное обеспечение как услуга (SaaS) – последний уровень облачных вычислений, обычно дополняющий PaaS. Это программное обеспечение для конечного пользователя, например, обеспечивающее работу с электронной почтой или текстом. Очень часто оно предоставляется по подписке. Примерами SaaS могут служить Google Apps, Salesforce.com и Business Productivity Online Suite от Microsoft.

Для варианта SaaS на сторону облачного провайдера дополнительно передаются вопросы установки и настройки приложений, мониторинга, резервного копирования, защищенной передачи в Интернет – то есть все задачи. Если вы решили воспользоваться этой моделью, то вам даже не обязательно держать в команде технического специалиста, поскольку всем управляет поставщик услуг.

Существует несколько моделей развертывания: частное облако, публичное облако, общественное облако, гибридное облако.

Частное облако (private cloud) – это инфраструктура, которая располагается в пределах одной организации. Данная модель развертывания создана с целью удовлетворить потребности внутреннего рабочего персонала, обеспечивая высокий уровень безопасности данных. Частное облако создается, например, для обеспечения какой-либо дочерней компании сервисом корпоративной почты.

Публичное облако (public cloud) – это инфраструктура, предназначенная для свободного использования широкой публикой. Этот тип облака может находиться в собственности, например, коммерческих, научных и правительственных организаций.

Однако слово «публичное» совсем не означает, что данные пользователей доступны абсолютно всем – здесь по-прежнему реализуются механизмы безопасности для контроля доступа. Основным достоинством использования публичного облака является простота настройки и низкая стоимость. Поставщик услуги делает всю работу, необходимую для создания облака, а потребитель лишь настраивает необходимое количество ресурсов.

Общественное облако (community cloud) имеет схожие черты с частным и публичным облаком. Это вид инфраструктуры, предназначенный для использования конкретным сообществом потребителей из организаций, имеющих общие задачи. Общественное облако может управляться организациями третьей стороны и существовать как внутри, так и вне юрисдикции владельца. В этом случае ответственность по содержанию облака перекладывается с плеч организаций-членов на все сообщество целиком.

Гибридным же облаком (hybrid cloud) называют композицию из двух или более типов облаков, которые связываются между собой стандартизированными технологиями передачи данных. Очень часто компании запускают бизнес-критические приложения в приватном облаке, в то время как остальные приложения работают в публичном облаке.

P.S. Пара наших публикаций по теме на Хабре:

Студенты часто задают вопросы: Что такое облачные вычисления? Что такое облачные сервисы? Что такое облачный сайт? Что означает облако, облачные хранилища файлов? Как используются облачные вычисления в образовании? SaaS сервис для B2C и B2B продаж? SaaS ERP и SaaS CRM системы и решения? Какие модели облачных вычислений используются для разработки веб-приложений? Современные дата-центры, на основе которых создаются облачные услуги: SaaS, PaaS и IaaS?

Сначала рассмотрим, что такое "облако" (сloud) и "облачные вычисления" (сloud сomputing). "Облако" - это инновационная модель (концепция) организации IT-инфраструктуры, которая состоит из распределенных и разделяемых конфигурируемых аппаратных и сетевых ресурсов, а также программного обеспечения, развернутых на удаленных (облачных) дата центрах поставщиков (провайдеров). То есть облако - это новый подход организации IT-инфраструктуры.

Cloud computing- это модель предоставления дистанционного доступа к разделяемым вычислительным ресурсам, которые физически распределены на многих удалённых устройствах, образующих так называемое облако (cloud).

Облачные вычисления - это модель предоставление потребителю масштабируемых вычислительных ресурсов в виде сервиса через Интернет. Облачные технологии – это модель представления потребителю IT как сервиса через Интернет.

Проанализируем основополагающее определение облачных вычислений, предложенное Национальным институтом науки и технологий от 24 июля 2011 года.

Определение "облачные вычисления"

Облачные вычисления (cloud computing) - модель предоставления возможности повсеместного и удобного сетевого доступа по требованию к пулу разделяемых конфигурируемых вычислительных ресурсов (например, сетям, серверам, средствам хранение, приложениям и сервисам), которые могут оперативно предоставляться и освобождаться при минимальном усилии управления или взаимодействии с провайдером (поставщиком). Эта модель облака представлена (описана) пятью основными характеристиками, тремя сервисными моделями и четырьмя моделями развертывания.

Основные характеристики облачных вычислений , которые отличают их от других типов вычислений (интернет-ресурсов):

  1. Самообслуживание по требованию. Потребитель по мере необходимости автоматически, без взаимодействия с каждым поставщиком услуг, может самостоятельно определять и изменять вычислительные мощности, такие как серверное время, объем хранилища данных.
  2. Широкий (универсальный) сетевой доступ. Вычислительные возможности доступны на большие расстояния по сети через стандартные механизмы, что способствует широкому использованию разнородных (тонких или толстых) платформ клиента (терминальных устройств).
  3. Объединение ресурсов. Конфигурируемые вычислительные ресурсы поставщика объединены в единый пул для совместного использования распределенных ресурсов большим количеством потребителей.
  4. Мгновенная эластичность ресурсов (мгновенная масштабируемость). Облачные услуги могут быстро предоставляться, расширяться, сжиматься и освобождаться исходя из потребностей потребителя.
  5. Измеряемый сервис (учет потребляемого сервиса и возможность оплаты услуг, которые были реально использованы). Облачные системы автоматически управляют и оптимизируют использование ресурсов за счет осуществления измерений на некотором уровне абстракции, соответствующей типу сервиса.

Если модель (концепция) предоставления распределенных и разделяемых конфигурируемых вычислительных ресурсов соответствует вышеизложенным характеристикам, то это cloud computing.

Сервисные модели облачных вычислений или cloud computing:

  1. Software as a Service (SaaS ) - программное обеспечение как услуга. В этой модели предоставления облачных вычислений потребитель использует приложения поставщика, запущенные в облачной инфраструктуре, которые доступны клиенту через интерфейс (web-браузер) или интерфейс программы. Потребители не могут управлять и контролировать лежащую в основе облака инфраструктуру, включая сеть, серверы, операционные системы, хранилища данных или даже изменять параметры настройки конкретного приложения.
  2. Platform as a Service (PaaS ) - платформа как услуга. Модель предоставления облачных вычислений, при которой потребитель получает доступ к использованию программной платформы: операционных систем, СУБД, прикладного ПО, средств разработки и тестирования ПО. Фактически потребитель получает в аренду компьютерную платформу с установленной операционной системой и специализированными средствами для разработки, размещения и управления веб-приложениями. Потребитель не управляет основной инфраструктурой облака, включая сеть, серверы, операционные системы или хранилища данных, но управляет развернутыми приложениями и возможно параметрами настройки конфигурации среды окружения.
  3. Infrastructure as a Service (IaaS ) - инфраструктура как услуга. Модель предоставление облачных вычислений, при которой потребитель получает возможность управлять средствами обработки и хранения, а также и другими фундаментальными вычислительными ресурсами (виртуальными серверами и сетевой инфраструктурой), на которых он может самостоятельно устанавливать операционные системы и прикладные программы под собственные цели. По сути, потребитель арендует абстрактные вычислительные мощности (серверное время, дисковое пространство и пропускную способность сетевых каналов) или использует услуги аутсорсинга ИТ-инфраструктуры. Потребитель не управляет основной инфраструктурой облака, но управляет операционными системами, хранилищем и развернутыми им приложениями.

Модели развертывания облачных вычислений, т.е. cloud computing:

  1. Private cloud (частное облако) - инфраструктура, предназначенная для использования облачных вычислений в масштабе одной организации.
  2. Community cloud (облако сообщества) - облачная инфраструктура, которая предназначена для исключительного использования облачных вычислений определенным сообществом потребителей от организаций, которые решают общие проблемы.
  3. Public cloud (публичное облако) - инфраструктура, предназначенная для свободного использования облачных вычислений широкой публикой.
  4. Hybrid cloud (гибридное облако) - это комбинация различных облачных инфраструктур (частных, публичных или сообществ), остающихся уникальными объектами, но связанных между собой стандартизованными или частными технологиями, которые обеспечивают возможность обмена данными и приложениями.

Рис. 1. Модели развертывания облачных вычислений / cloud computing

Исходя из вышеизложенного определения облачных вычислений, облачные сервисы можно представить в виде многослойной модели, состоящей из слоев: IaaS, PaaS, SaaS. Базисом или фундаментом облачных сервисов является physical infrastructure (физическая инфраструктура) , т.е. серверы, хранилища, сети и системное программное обеспечение Cloud data center (облачного дата-центра) или сети взаимосвязанных облачных Data centers (рис. 2).

В облачных дата-центрах или в центрах обработки данных (ЦОД) помещается физическое оборудование или hardware (серверы, хранилища данных, рабочие места), системное программное обеспечение (ОС, средства виртуализации и автоматизации), инструментальное и прикладное ПО, системы управления оборудованием (Equipment management systems), сетевая инфраструктура (Network infrastructure): маршрутизаторы и коммутаторы (routers and switches) для подключения и объединения физического оборудования. Кроме того, нормальную работу дата центров обеспечивают системы инженерного обеспечения (Systems of engineering support).

Рис. 2. Cloud computing architecture (архитектура облачных вычислений)

Первый слой облачных услуг - IaaS (инфраструктура)

IaaS - это предоставление пользователю компьютерной и сетевой инфраструктуры (servers, storage, networking) и их обслуживание как услуги в форме виртуализации, т.е. виртуальной инфраструктуры . Другими словами, на базе физической инфраструктуры дата-центров или ЦОД поставщик (провайдер) создает виртуальную инфраструктуру, которую предоставляет пользователям как сервис. Средства виртуализации позволяют преобразовать физическую инфраструктуру data centers в виртуальную и таким образом создать первый слой облачных услуг - IaaS.

Что такое виртуализация? Технология виртуализации ресурсов позволяет физическое оборудование (серверы, хранилища данных, сети передачи данных) разделить между пользователями на несколько частей, которые используются ими для выполнения текущих задач. Например, на одном физическом сервере можно запустить сотни виртуальных серверов, а пользователю для решения задач выделить время доступа к ним. Реализация виртуализации может быть осуществлена как на программном уровне, так и на аппаратном.

Таким образом, пользователю предоставляются абстрактные эластичные вычислительные мощности, например, не сервер или серверы, а серверное время для обработки его задач. Не диски для хранения данных, а необходимое дисковое пространство, не каналы связи, а требуемая для решения задач сетевая пропускная способность каналов коммутации.

Кроме виртуализации для создания IaaS используется автоматизация, которая обеспечивает динамическое распределение ресурсов без участия персонала поставщика услуг, т.е. система автоматически может добавлять или уменьшать количество виртуальных серверов, дисковое пространство для хранения данных, или изменять сетевую пропускную способность каналов связи. Виртуализация и автоматизация обеспечивают эффективность использования вычислительных ресурсов и снижение стоимость аренды облачной услуги IaaS.

Как правило, IaaS предоставляется в аренду (предоставляется IaaS-сервис на условиях аутсорсинга) корпоративным пользователям. То есть пользователи получают интегрированные ресурсы для создания своей собственной вычислительной инфраструктуры. В этом случае пользователь должен сам установить и настроить OS и необходимые программы для выполнения производственных задач или для разработки приложений.

Концепция IaaS позволяет пользователю покупать только те вычислительный мощности, которые необходимы ему для выполнения конкретных задач. В состав дополнительных услуг IaaS может входить подключение любого физического оборудования пользователя к облачной платформе и его размещение в сети дата-центров.

Инфраструктура как сервис - это решение корпоративного уровня для предприятий разного масштаба. Инфраструктура может быть размещена как в центре обработки данных предприятия, так и во внешнем дата-центре. Услуги IaaS предназначены для создания и использования защищенных частных, публичных и гибридных облачных сред. Поставщики могут обеспечить построение гибридных облачных конфигураций, при которых объединяются локальные сети в офисе заказчика с сетями облачной платформы.

Кроме того, к IaaS-услугам облачных вычислений относится облачный хостинг (Cloud Hosting). Облачный хостинг - это хостинг, который может обеспечить динамическое распределение ресурсов, обладает возможностью автоматического масштабирования ресурсов и имеет повышенную отказоустойчивость. Облачный хостинг является существенной альтернативой виртуальному хостингу, хостингу на виртуальном выделенном сервере VPS / VDS и хостингу на физическом выделенном сервере.

Провайдер Cloud Hosting предоставляет владельцам сайтов только необходимые сайту ресурсы: виртуальные серверы, количество оперативной памяти и объем жесткого диска, а также возможности для управления инфраструктурой хостинга (например, выбор операционной системы, количества RAM, объема и типа HDD, числа ядер CPU, тактовой частоты и скорости доступа). Оплата за аренду облачного хостинга производится только по факту уже потребленных ресурсов: количества процессорного времени, объема дискового пространства, количества потребляемой оперативной памяти и скорости доступа к сайту.

При необходимости арендатор (владелец сайта) облачного хостинга может изменить ресурсы хостинга или настроить его на автоматическое увеличение ресурсов при росте нагрузки, но он всегда будет оплачивать только уже потребленные ресурсы. Облачный хостинг имеет повышенную отказоустойчивость, так как сайт, размещенный на нем, одновременно находится на нескольких виртуальных серверах и отказ одного из них не повлияет на работу сайта.

В настоящее время хостеры предлагают в аренду облачные хостинги с предустановленной CMS. Хостинг-провайдеры для организации таких облачных хостингов могут, например, развернуть на своих серверах платформу-как-инфраструктуру Jelastic с предустановленными CMS. Jelastic поставляет платформу-как-инфраструктуру в виде полного стека, позволяющего развертывание облачных хостингов на физической инфраструктуре ЦОД хостинг-провайдера.

Функционал платформы Jelastic позволяет в один клик установить встроенные в нее CMS с оптимизированным веб-окружением, например, Jelastic на Infobox. Jelastic является продуктом, который включает в себя функциональность PaaS и легко конфигурируемую инфраструктуру IaaS. Jelastic – это платформа для запуска Java- и PHP-приложений и может быть использована не только хостерами для организации облачных хостингов, но и корпорациями для создания среды разработки (частных или гибридных облаков) веб-приложений.

На облачных хостингах, размещают облачные сайты – это современные облачные приложения. В облачных сайтах (облачных приложениях) данные хранятся в облачных БД, серверные приложения сайтов хранятся, и выполняется на облачных виртуальных серверах, а клиентская часть сайта выполняется в браузере пользователя.

Среду облачных вычислений можно создавать на основе облачных решений Amazon EC2, IBM x86, Microsoft Azure, EMC, VMware, на базе open-sourсe решения OpenStack, RackSpace на базе OpenStack и др., которые позволяют преобразовать центр обработки данных в динамичную ИТ-среду. Кроме того, для облачных вычислений используются облачные базы данных, т.е. базы данных, которые запускаются на платформах облачных вычислений. В качестве облачных баз данных применяются как SQL-ориентированные модели, так и модели данных NoSQL.

Услуги IaaS широко используются в США. В Украине компания De Novo начала предоставлять облачную инфраструктуру для корпоративных клиентов на базе решений VMware, EMC, Microsoft Azure, и т.д. На базе крупнейшего украинского дата-центра ВОЛЯ построена облачная IT-инфраструктура VoliaCLOUD от компании VMware (на основе облачных решений VMware), которая имеет более 500 виртуальных дата-центров.

Основные IaaS Solution/Vendor: Amazon Web Services/Amazon, IBM SmartCloud/IBM, SoftLayer IaaS/IBM, Azure Virtual Machines/Microsoft, Google Compute Engine/Google, HP Cloud/HP, EMC/EMC Corporation, Oracle Cloud Infrastructure Services/Oracle. Следует отметить, что IBM предлагает надежную открытую инфраструктуру IBM SmartCloud на основе самообслуживания (SoftLayer) или полностью управляемой IaaS (IBM SmartCloud Enterprise+).

Рис. 3. Основные IaaS Solution облачных вычислений

Следует отметить, что в настоящее время ведутся работы по созданию облачных опорных сетей поставщиков широкополосной мобильной связи (операторов мобильной связи) в качестве услуги IaaS. К таким услугам относятся, например, облачная телекоммуникационная платформа от Huawei и решение NSN Telco Cloud от Nokia Siemens Networks.

Платформа FusionSphere Huawei обеспечивает виртуализацию вычислительных ресурсов, ресурсов хранения, сетевых ресурсов и организует единый пул разделяемых конфигурируемых вычислительных ресурсов с единым механизмом планирования и управления. Компания Nokia Siemens Networks осуществила комплексное тестирование основных мобильных служб, охватывающих передачу голоса по LTE (VoLTE) и других IP Multimedia Subsystem (IMS) услуг, работающих на основе Telco Cloud.

Второй слой - PaaS (программная платформа)

Сервис PaaS предоставляет программную платформу и ее обслуживание как сервис в составе:

  • OS - сетевая операционная система (Unix-системы, включая Ubuntu Server, BSD/OS Family, Solaris/SunOS и т.д. или Windows Server),
  • Database - система управления базой данных СУБД (MySQL, Microsoft SQL, SQL Database, PostgreSQL, Oracle и др.),
  • Middleware - программное обеспечение среднего слоя или связывающее (промежуточное) программное обеспечение, которое предназначено для обеспечения взаимодействия между различными приложениями, системами и компонентами,
  • Software development tools and testing - инструментальное программное обеспечения для разработки веб-приложений и их тестирования (среда разработки ПО: программные фреймворки, библиотеки и т.д. для создания веб-приложений на языках программирования: Python, Java, PHP, Ruby, JS для Node.js и т.д.),
  • App server - сервер приложений для разработки, тестирования, отладки и работы веб-приложений.

Итак, PaaS предлагает разработчикам ПО средства разработки, тестирования, развертывания и поддержки различных приложений. Кроме того пользователю предоставляются инструменты администрирования и управления. В основном PaaS используется для разработки и размещения web-приложений (например, связанных распределенных приложений - SaaS mashup, облачных сайтов и т.д.).

Основные PaaS Solution/Vendor:

  • AWS Elastic Beanstalk/Amazon (Java, .NET, PHP, Node.js, Python, Ruby and Apache HTTP Server, Apache Tomcat, Nginx, Passenger, and IIS),
  • IBM Bluemix/IBM (облачная платформа IBM Bluemix предлагает единую среду решений и широкий набор языков и фрейморков для построения приложений, например, Liberty for Java™, SDK for Node.js™, ruby on rails, ruby sinatra),
  • Microsoft Asure/Microsoft (ASP.NET, Java, PHP, Python, Django, Node.js and Azure SQL Database),
  • Google App Engine/Google (Python, Java, PHP, Go and our MySQL),
  • Salesforce1 Platform Cloud application development/Salesforce объединяет Force.com, Heroku и ExactTarget в одну сеть облачных сервисов и предоставляет инструменты для разработки различных приложений. Например, для разработки мобильных приложений Salesforce1 Mobile App/Salesforce или облачных баз данных для разработчиков приложений Database.com/Salesforce и т.д.
  • Heroku/Salesforce (Ruby, Java, Node.js, Scala, Clojure, Python и PHP and PostgreSQL),
  • Oracle Cloud Platform Services/Oracle (Oracle Database Cloud Service, Oracle Java Cloud Service, Oracle Database Backup Service),
  • OpenShift/Red Hat (Java, Java ЕЕ, Python, Perl, PHP, Ruby, Node.JS, and MySQL, PostgreSQL, MongoDB),
  • Cloud Foundry/VMware (Java Spring, Ruby on Rails и Sinatra, NodeJS, .NET and MySQL Redis, MongoDB),

Рис. 4. Основные PaaS Solution облачных вычислений

Кроме перечисленных решений PaaS разработчики Веб-приложений используют и другие известные решения облачных платформ: dotCloud PaaS, SAP HANA Cloud Platform, CloudBees Platform, Rackspace и т.д.

Третий слой - SaaS (облачное приложение)

По схеме SaaS поставляются следующие типы облачных приложений и их обслуживание: Business Apps, Office Web Apps, Management Apps, Communications, Security и др. Наибольшее распространение SaaS получила в США. Наиболее востребованными облачными приложениями являются: CRM (система управления взаимоотношениями с клиентами), HRM (система по работе с персоналом, т.е. с кадрами), ERP (система планирования ресурсов предприятия, например 1С), офисные приложения, средства коммуникаций и др. Salesforce.com является крупнейшим в мире поставщиком облачных приложений CRM.

Под средствами коммуникаций подразумевается электронная переписка (например, Gmail), аудио и видео чаты (например, Microsoft Lync Online), Cloud PBX или облачная АТС (например, виртуальная АТС Манго-Офис), облачный сервис MDM (Mobile Device Management - управление мобильным устройством). Облачный сервис MDM предназначен для работы с корпоративными системами при помощи мобильных устройств.

На различные мобильные устройства, которые работают под управлением облачной системы MDM, устанавливаются приложения, так называемые агенты. Эти приложения обеспечивают централизованную настройку мобильных устройств и доступ к корпоративной сети предприятия в виде облачной услуги SaaS. Как правило, облачные средства коммуникаций интегрируются с другими услугами SaaS, например, CRM+MDM, Office Web Apps+Lync Online, Google Docs+Gmail + Hangouts и т.д.

Основными потребителями SaaS являются предприятия малого и среднего бизнеса. Большинство SaaS-приложений предназначены для поддержки взаимодействия между сотрудниками, совместно работающими над решением общих задач (Collaboration). Архитектура SaaS-приложений, в которой единый экземпляр приложения, запущенный на сервере, обслуживает множество потребителей, является мультиарендной (Multi–tenant), т.е. каждому потребителю в процессе выполнения задач предоставляется свой экземпляр виртуального приложения.

Основные application software:

  • Business Apps (CMR, FRM, IBM® B2B Cloud Services, Axway Cloud B2B, amoCRM SaaS сервис для B2B, Google Apps for Business),
  • Business Intelligence (PowerBI в составе Office 365/Microsoft, Oracle Business Intelligence Managed Cloud Service, Anaplan/ADE Professional Solutions, Brand Analytics),
  • Office Web Apps (Google Docs, Office Online/Microsoft OneDrive, Office Web Apps/Microsoft, Zoho Docs, IBM SmartCloud Docs и т.д.),
  • Management Apps (ERP/АРЕНДА 1С, HRM, SCM, MRP),
  • Communications (Gmail, Google Hangouts, Microsoft Lync Online, Cloud PBX или облачная АТС, MDM),
  • Security (Panda Cloud Email Protection, Panda Cloud Internet Protection, McAfee SaaS Email Protection & Continuity, Сomfortway Mobile Security и т.д.), и др.
  • Collaboration and Multi–tenant (Google Docs, Google Sites, Microsoft Office Online, Office 365, Office Web Apps).

Основные SaaS Solution/Vendor: Salesforce1 Sales Cloud/Salesforce (CRM), Oracle Cloud Applications/Oracle (HR, CX, ERP, EMP, SCP, Business Intelligence), Google Apps/Google – офисный пакет облачных служб (Google Docs, Google Drive, Google Sites, communication: Hangouts, Gmail, Google Calendar и др), IBM SmartCloud Docs/IBM, Microsoft Dynamics CRM, Microsoft OneDrive (Office Online, хранилище файлов), Office 365/Microsoft (Office Web Apps, Lync Online, Exchange Online, SharePoint Online), Zoho Docs/Zoho (онлайновый офисный пакет), Zoho Reports/Zoho (Business Intelligence), Zoho CRM/Zoho, Informatica Cloud MDM/Informatica, MaaS360/Fiberlink, Cloud PBX from Vonage Business Solutions и т.д.

Рис. 5. Основные SaaS Solution облачных вычислений

Существуют и множество других SaaS-услуг облачных вычислений, например, Cisco WebEx - облачный сервис для проведения web-конференций; CMS на основе модели SaaS (например, SaaS-платформа UMI.CLOUD); E-Commerce B2B/B2C по модели SaaS; Маркетинг SaaS-решений; услуга «Антивирус Dr.Web» по модели SaaS; SugarCRM - коммерческая CRM-система с открытыми исходными кодами; BPMonline CRM с инструментами моделирования и автоматизации бизнес-процессов и т.д.

Следует отметить, что концепция облачные вычисления (cloud computing) предполагает оказание потребителям различных дополнительных видовоблачных услуг : Storage-as-a-Service, Database-as-a-Service, Information-as-a-Service, Process-as-a-Service, Integration-as-a-Service, Testing-as-a-Service и т.д. Существуют, например, многочисленные облачные хранилища файлов Storage-as-a-Service: Amazon Simple Storage Service (Amazon S3), DropBox, Google Drive, Microsoft OneDrive и т.д.

Как используются облачные вычисления и технологии в образовании? Google предлагает учебным заведениям облачные приложения Google Apps for education для электронного образования. Microsoft предоставляет пользователям образовательных учреждений возможности облачных служб Office 365 for education (Windows Azure in education). Внедрение облачных вычислений (Cloud Computing) в школах и вузах обеспечит школьникам и студентам весьма комфортное обучение.

Перспективы распространения облачных вычислений с учетом их текущего развития изложены в аналитической работе "Куда идут «облака » на сайте compress.

В заключение, следует еще раз отметить, что все сервисные модели облачных вычислений должны соответствовать основным характеристикам облачных вычислений, изложенными в "The NIST Definition of Cloud Computing", которые отличают их от других типов интернет-ресурсов.

Чтобы убедиться, что предложенные вам интернет-ресурсы относятся к одной из моделей облачных вычислений, сравните их характеристики с основными характеристиками облачных вычислений, предложенными National Institute of Standards and Technology (самообслуживание по требованию; единый пул для совместного использования ресурсов; мгновенная эластичность или масштабируемость; оплата только за реально использованные услуги; универсальный сетевой доступ).

В этом разделе показано, как можно использовать облачные вычисления при обучении основам программирования. Приводится подробный пример работы с Web -сервисом, позволяющим создавать и отлаживать учебные программы на любом языке программирования с помощью облачного сервиса сайта http://ideone.com .

Современная практика программирования предполагает активное использование специализированных интегрированных средств разработки ( IDE – Integrated Development Environment ). Их использование связано со следующими двумя сложностями:

  • Настройка и установка IDE требует высокой квалификации системного администратора.
  • Современные IDE достаточно требовательны к ресурсам вычислительной машины, на которой они используются.

Поясним каждый пункт подробно. Для обеспечения полнофункциональной работы IDE требуется, чтобы квалификация системного администратор , осуществляющего установку, настройку и поддержку IDE была достаточно высока. Это приводит к необходимости нанимать в учебные заведения на должность системного администратора высококвалифицированных сотрудников, заработная плата которых может оказаться существенной статьёй расходов в бюджете образовательного учреждения.

Более того, затраты образовательного учреждения могут возрасти вследствие того, что современные IDE требуют наличия высокопроизводительных вычислительных машин. Например, одна из самых распространенных IDE Microsoft Visual Studio 2012 требует для нормальной работы процессор мощностью 1,6 ГГц или выше, 1 ГБ ОЗУ (или 1,5 ГБ для виртуальной машины), 10 ГБ свободного дискового пространства . Для большинства задач образовательных учреждений не требуется компьютеров с такой высокой производительностью, поэтому их покупка может оказаться недопустимой роскошью.

Обе указанные проблемы позволяет решить применение облачных технологий при обучении программированию. В настоящее время существуют большое количество так называемых онлайн - IDE , которые не требуют установки на компьютер пользователя и которые требуют для запуска лишь наличие Интернет -браузера. Системные требования браузеров к оборудованию вычислительной машины традиционно являются скромными. Например, популярный Веб- браузер Mozilla Firefox 17 требует для установки процессор от 1300 МГц, 512 МБ ОЗЦ и 200 МБ свободного дискового пространства , что существенно меньше приведённых ранее цифр для IDE Microsoft Visual Studio 2012.

Рассмотрим ниже, как можно использовать онлайн - IDE в учебных заведениях для обучения основам программирования на примере http://ideone.com . Этот сервис позволяет в режиме онлайн создавать тексты программ на разных языках программирования и запускать эти программы на исполнение с возможностью анализа полученных результатов. Основные рабочие элементы Ideone показаны на рис. 2.1 .


Рис. 2.1.

В поле "А " необходимо ввести текст программы, а в поле "В " нужно выбрать используемый язык программирования , затем нужно нажать кнопку "Отправить ". В указано, что Ideone поддерживает работу со следующими 55 популярными языками программирования: Ada , Assembler , AWK , Bash , bc, Brainf**k, C, C#, C++, C++ 0x, C99 strict , CLIPS , Clojure, COBOL , Common Lisp (clisp), D (dmd), Erlang, F#, Factor, Falcon, Forth , Fortran, Go , Groovy, Haskell, Icon , Intercal, Java , JavaScript, Lua, Nemerle, Nice, Nimrod, Node .js, Objective-C, Ocaml, Oz, PARI/GP, Pascal , Perl, PHP , Pike, Prolog, Python , R, Ruby , Scala, Scheme (guile), Smalltalk, SQL , Tcl, Text , Unlambda, VB. NET , Whitespace. Очевидно, что этого перечня достаточно при обучении основам программирования практически в любом учебном заведении мира. Более того, при использовании сервиса ideone.com у преподавателя появляется возможность использовать при обучении сразу несколько языков программирования без необходимости поддерживать работу нескольких IDE .

Покажем на примере, как может быть организована работа в группе при обучении основам программирования. Рис 2.2 иллюстрирует способ запуска простой программы на языке Си . Как можно видеть, в тексте программы используется подсветка синтаксиса , аналогичная той, что пользователи привыкли использовать в обычных офлайн- IDE . Однако при желании подсветка может быть отключена с помощью элемента управления "А ". С помощью элемента управления "В " можно указать перечень входных данных для программы, что позволяет реализовать более сложную логику работы программы, чем в приведённом примере.

Очень важным является элемент управления "С ", который позволяет персонифицировать работу с программой. Данная возможность крайне ценна при организации учебного процесса. Если преподаватель попросит всех студентов зарегистрироваться в Ideone (или использовать для входа свою учётную запись Facebook), то появляется возможность сделать процесс работы с программой коллективным, а процесс совместной работы с программой будет проходить с использованием современных технологий Web 2.0. Подробнее об этом расскажем, используя рис. 2.3 .

Этот элемент управления позволяет выбрать из списка в правой части экрана один из виджетов популярных сайтов социальных сетей.

К сожалению, онлайн - IDE Ideone позволяет реализовать не все из функций традиционных офлайн- IDE . Например, отсутствует возможность использовать функции работы с сетью, обращения к файлам и некоторые другие. Также невозможно запустить программу, время выполнения которой займёт более 15 секунд или потребности в оперативной памяти превысят 256 МБ, или объём программы превысит 64 КБ . Все эти ограничения являются достаточно серьёзными, если планируется использовать Ideone для разработки профессионального программного обеспечения. Однако для образовательных целей эти ограничения более чем приемлемы. Кроме того, для более требовательных преподавателей существуют платные и бесплатные сервисы, аналогичные Ideone, которые при этом в большей степени реализуют функционал традиционных офлайн- анализ результатов выполнения в консольком режиме, компиляцию под разные платформы и операционные системы можно выполнить в режиме онлайн . В идеале окончанием работы программиста будет скачивание готовых бинарных файлов с работающей программой. Такой подход позволяет сэкономить используемой офлайн дисковое пространство , а также позволяет компилировать проект существенно более быстро, чем на рабочем месте пользователя, если это рабочее место оборудовано устаревшим аппаратным обеспечением. Итогом этого является возможная финансовая экономия для образовательного учреждения.

Однако помимо экономического эффекта, можно получить и существенные преимущества при организации образовательного процесса. Студенты получают возможность совместно редактировать программные проекты, находясь у себя дома. Это позволяет реализовывать сложные курсовые проекты и лабораторные работы с существенной экономией на осуществление организационных мероприятий со стороны преподавателя.

Понятие «Облачные технологии»

Облачные технологии - это технологии обработки данных, в которых компьютерные ресурсы предоставляются Интернет - пользователю как онлайн - сервис. Слово «облако» здесь присутствует как метафора, олицетворяющая сложную инфраструктуру, скрывающую за собой все технические детали.

Облачные (рассеянные) вычисления (англ. cloud computing, также используется термин Облачная (рассеянная) обработка данных) -технология обработки данных, в которой компьютерные ресурсы и мощности предоставляются пользователю как Интернет - сервис. Пользователь имеет доступ к собственным данным, но не может управлять и не должен заботиться об инфраструктуре, операционной системе и собственно программном обеспечении, с которым он работает. Термин «Облако» используется как метафора, основанная на изображении Интернета на диаграмме компьютерной сети, или как образ сложной инфраструктуры, за которой скрываются все технические детали. Согласно документу IEEE, опубликованному в 2008 году, «Облачная обработка данных -- это парадигма, в рамках которой информация постоянно хранится на серверах в интернет и временно кэшируется на клиентской стороне, например, на персональных компьютерах, игровых приставках, ноутбуках, смартфонах и т. д.».

Облачная обработка данных как концепция включает в себя понятия:

  • 1) инфраструктура как услуга
  • 2) платформа как услуга
  • 3) программное обеспечение как услуга
  • 4) данные как услуга
  • 5) рабочее место как услуга

и другие технологические тенденции, общим в которых является уверенность, что сеть Интернет в состоянии удовлетворить потребности пользователей в обработке данных.

Для облачных технологий самой главной особенностью является неравномерность запроса Интернет - ресурсов со стороны пользователей. Чтобы сгладить данную неравномерность и применяется еще один промежуточный слой - виртуализация сервера . Таким образом, нагрузка распределяется между виртуальными серверами и компьютерами.

Облачные технологии - это одна большая концепция, включающая в себя много разных понятий, предоставляющих услуги. Например, программное обеспечение, инфраструктура, платформа, данные, рабочее место и т.п. Зачем все это нужно? Самой главной функцией облачных технологий является удовлетворение потребностей пользователей, нуждающихся в удаленной обработке данных.

Что же не считают облачными вычислениями? Во-первых, это автономные вычисления на локальном компьютере. Во-вторых, это "коммунальные вычисления" (utilitycomputing), когда заказывается услуга исполнения особо сложных вычислений или хранения массивов данных. В-третьих, это коллективные (распределённые) вычисления (gridcomputing). На практике границы между всеми этими типами вычислений достаточно размыты. Однако будущее облачных вычислений всё же значительно масштабнее коммунальных и распределённых систем.

Облачное хранилище данных (англ.cloudstorage) -- модель онлайн-хранилища, в котором данные хранятся на многочисленных распределённых в сети серверах, предоставляемых в пользование клиентам, в основном, третьей стороной. В противовес модели хранения данных на собственных выделенных серверах, приобретаемых или арендуемых специально для подобных целей, количество или какая-либо внутренняя структура серверов клиенту, в общем случае, не видна. Данные хранятся, а равно и обрабатываются, в так называемом облаке, которое представляет собой, с точки зрения клиента, один большой виртуальный сервер. Физически же такие серверы могут располагаться удалённо друг от друга географически, вплоть до расположения на разных континентах.

Для того чтобы понять что такое «облако» стоит начать с истории данного вопроса. Необходимо понять: действительно ли эта технология находится в разряде новых идей или эта идея не так уж и нова.

Несмотря на повсеместное распространение данной технологии, словосочетание "облачные технологии " (англ. "cloud technologies ") остается для многих весьма запутанным и странным. И хотя практически каждый из владельцев персональных компьютеров и смартфонов пользуется этими "благами цивилизации" на практике, мало кто знает: как это устроено и как это работает!

Что такое "облачные технологии"?

Облачные технологии - это модель предоставления повсеместного и удобного сетевого доступа к общему пулу конфигурируемых вычислительных ресурсов (таких как: серверы, приложения, сети, системы хранения и т.д.), которые могут быть быстро предоставлены и освобождены с минимальными усилиями по управлению и необходимости взаимодействия с провайдером.

Звучит запутанно? Попробуем в одном предложении: облачные технологии - это технологии обработки данных, в которых компьютерные ресурсы предоставляются Интернет-пользователю как онлайн-сервис.

Объяснение "облачных технологий" на пальцах: еще совсем недавно повсеместно на компьютерах для чтения электронной почты использовалась программа Microsoft Outlook (почтовый клиент). Сегодня же сама программа находится на удаленном сервере и пользователь может использовать ее всего лишь авторизовавшись в браузере () с любого устройства. Разумеется, это самый простой обобщенный пример. На самом деле, сфера применения облачных технологий и вычислений гораздо шире.

Один из примеров работы "облачных вычислений"

О преимуществах облачных технологий

Используя "облако " (так в простонародье именуют "облачные технологии "), рядовой пользователей выигрывает: все вычислительные операции происходят не на стороне его компьютера, а на мощных серверах в сети, другими словами, он может использовать аппаратные и программные средства, инструменты и методологии, недоступные для технических характеристик его компьютера.

Так, не нужно заботиться о производительности своего ПК , можно не думать о свободном месте на диске, можно не беспокоиться о бекапах и переносе информации с одного компьютера на другой. Эти и другие вопросы отпадают сами по себе с использованием облачных технологий.

Немаловажное преимущество - экономия при покупке лицензированного ПО . При использовании "облачных технологий" оплачивается не лицензия (нет необходимости покупать целый продукт), а только услуга - конкретные функции того или иного продукта, в котором пользователь заинтересован. Если говорить обобщенно, то в "облаке" многие платные программы стали бесплатными или намного дешёвыми веб-приложениями!

Естественно, вам также нет необходимости следить за выходом обновлений ПО : вы всегда пользуетесь самой последней версией программ (все эти заботы ложатся на техническую поддержку "облака").

И как не упомянуть "общий доступ "?! С помощью "облачных технологий" открывается возможность одновременного доступа к информации, одну и туже информацию могут просматривать и редактировать одновременно с разных устройств разные пользователи, можно делиться информацией с близкими людьми или партнерами из любой точки мира.

О недостатках облачных технологий

Однако, все не так радужно в некоторых специфических ситуациях. Есть и недостатки:

  • Конфиденциальность . Вы полностью соглашаетесь с сохранностью пользовательских данных на стороне компании, которая предоставляет вам "облачные технологии" (впрочем, это уже стало противоречивой нормой: никого не смущает сохранение личной почты на сторонних серверах);
  • Безопасность . Сохранность Ваших данных не может никем гарантироваться (например, при использовании облачной Windows актуальны вирусы и уязвимости системы), тем не менее "облако" само по себе является более надежной системой, чем персональный компьютер;
  • Кастомизация ПО . Пользователь не имеет фактического доступа к ПО (имеет ограничения в используемом обеспечении) и иногда не имеет возможности настроить его под свои собственные нужды;
  • Постоянный и стабильный Интернет. Доступ к услугам «облака» требует постоянного соединения с Интернет (впрочем, в наш технологический век это не является существенной проблемой).

Известные всем примеры облачных технологий

Многие из нас пользуются "облачными технологиями" даже об этом не подозревая. Известны ли Вам файловые хранилища, такие как SkyDrive , Dropbox , Google Drive или Яндекс.Диск ? В распоряжение пользователя предоставляется некое пространство на "виртуальных дисках", где они могут хранить и "расшаривать" фотографии, музыку, документы и т.д., синхронизировать информацию на разных устройствах.

Все популярное ПО уже имеет свои веб-представительства: Office 365, Skype, программы обработки текста, звука, фото и видео.

Наиболее наглядным примером может служить множество служб и инструментов от Google для самых различных нужд (научных, образовательных, культурных, пользовательских и т.д.)


Облачные технологии в бизнесе

В 2006 году компания Amazon представила свою инфраструктуру веб-сервисов, не только обеспечивающую хостинг, но и предоставляющую клиенту удаленные вычислительные мощности. Так начиналась современная эпоха "облачных вычислений" в бизнесе.

Среди наиболее популярных моделей облачных вычислений в бизнес-среде можно назвать:

  • Аренда виртуального сервера;
  • Резервное копирование;
  • Катастрофоустойчивость (DRaaS);
  • Гибридное «облако»;
  • Виртуальный контакт-центр;
  • Аренда приложений;
  • Частное «облако»;
  • Виртуальный офис;

Платные "облачные вычисления" - довольно распространенное явление на Западе. В русскоговорящем сегменте они еще не так заметны, здесь еще не так привыкли платить по всем счетам. Тем временем, в настоящее время в России для малого и среднего бизнеса предлагается ряд облачных услуг, среди которых: решения на базе 1С, "Офис" в облаке, хранение и backup информации, аренда облачных приложений, IT-аутсорсинг и т.д. Примером представителей "облачных технологий" на российском рынке может служить компания "Смарт Офис" ().

Аналитики предрекают "хорошее будущее" для повсеместного использования облачных технологий как в личных, так и бизнес целях. Их именуют никак иначе как "золотая жила" IT-индустрии, поэтому ставка инвесторов на развитие указанных технологий - весьма целомудренное решение.

Вконтакте

Оцените материал: