/ Flickr / Robert / CC
Стек облачных технологий состоит из трех частей, каждая из которых представляет отдельную категорию сервисов. На верхнем уровне располагается SaaS — по сути, это облачные приложения, доступ к которым предоставляется через веб-интерфейс. За ним следует PaaS — платформа для самостоятельной разработки и развертывания приложений.
На третьем уровне расположился IaaS — серверы, хранилища, сети, вычислительная инфраструктура, которую клиент получает в пользование для запуска своих решений. Описанная структура может быть представлена в виде следующей схемы:
Для демонстрации этих трех типов услуг часто применяется аналогия с пиццей — своеобразная «Pizza as a Service». Когда потребитель заказывает и поедает пиццу в кафе или ресторане, то это SaaS, а если заказывает её себе на дом, то это PaaS. Если же он пошел в магазин, купил ингредиентов и приготовил блюдо самостоятельно, то, можно сказать, что это IaaS.
Теперь слегка углубимся в каждую из этих технологий и начнем с конца стека — IaaS.
Что такое IaaS
При выборе IaaS, вы получите серверы, сетевые ресурсы и хранилища в качестве подключаемой услуги. Получается, что компания приобретает вычислительные ресурсы у поставщика, избегая необходимости закупать собственное железо и поддерживать его. При этом сервис может быть предоставлен по типу публичного облака, частного облака или комбинированного подхода.
Понятие IaaS включает в себя следующие особенности:
- Ресурсы — это услуга. Клиент имеет возможность в любое время увеличивать и уменьшать объемы потребляемых ресурсов
- С физическими ресурсами могут работать несколько пользователей благодаря возможностям виртуализации
- Гибкие модели оплаты (например, вариант pay as you go, когда компания платит только за потребляемые мощности)
Учитывая все вышесказанное, можно определить, когда следует использовать IaaS-решения. Обращаться к IaaS стоит в том случае, компания иногда испытывает нужду в повышении мощностей при всплесках нагрузки — то есть имеется потребность в оперативном масштабировании инфраструктуры.
Еще один вариант — компания представляет собой стартап, у которого нет средств на приобретение собственного «железа» и его поддержание, или же организация хочет запустить экспериментальное направление бизнеса и закупать оборудование для этого не всегда бывает целесообразно (проект может не взлететь).
Однако несмотря на гибкость и масштабируемость IaaS, технология имеет определенные ограничения. В связи с этим есть ситуации, когда использовать её не рекомендуется. Например, компания является игроком регулируемой отрасли, правила которой не разрешают хранение данных на серверах, не принадлежащих компании.
Здесь хотелось бы добавить, что существует мнение, якобы не стоит использовать облачные решения для бизнес-критичных приложений. Однако отметим, что это не так. Критичное бизнес-приложение может быть развернуто на производительном сервере с 16 ядрами и терабайтами памяти, в котором предусмотрено дублирование ряда компонентов (в том числе и на более высоких уровнях).
Что такое PaaS
Платформа как услуга, или PaaS, упрощает развертку приложений и управление ими, при этом скрывая внутри себя работу с серверами, балансировку нагрузки, DNS и др. Поэтому отпадает необходимость нанимать инженеров для обслуживания инфраструктуры. Это позволяет разработчикам уделять больше внимания разработке и проблемам развертывания.
Здесь следует отметить, поскольку PaaS является вторым уровнем пирамиды облачных услуг, то он строится на основе IaaS, однако еще сильнее уменьшает время с момента генерации идеи до её воплощения. Это достигается за счет большей автоматизации процессов и абстракции от железа.
Чтобы абстрагировать концепцию работы с серверами, было проделано следующее:
- Реализована система сборки, компилирующая и хранящая код;
- Внедрена база данных управления приложениями, следящая за версиями и метаданными;
- Запущен планировщик заданий, обрабатывающий большую группу серверов и запускающий приложение на нескольких машинах как на одной;
- Балансировщик нагрузки управляет интернет-трафиком;
- Работа DNS автоматизирована;
- Реализована форма контейнеризации (FreeBSD Jail, Solaris Zones, Linux Containers), предотвращающая вмешательство одного приложения в работу другого.
Первый и последний пункты — это те элементы, которые способствовали росту популярности Docker. Технология Linux Container давно являлась частью ядра ОС Linux, но автоматизировать их использование решились только крупные компании или PaaS-провайдеры.
Компании используют архитектуры и микросервисы, ориентированные на работу с программным обеспечением, потому что они предлагают возможности по автоматическому развертыванию и тестированию кода, а также масштабирования в зависимости от нагрузки. Этот функционал и реализует PaaS.
К сожалению, такой подход имеет один серьезный недостаток. Вы передаете часть контроля своеобразному черному ящику и попадаете в зависимость от него. Однако в противном случае компании постоянно заново изобретают велосипед или начинают использовать медленные инструменты.
Немного о SaaS
В случае SaaS потребитель приобретает возможность пользоваться приложениями поставщика, выполняемыми в облаке. Приложения доступны с различных клиентских устройств, например через браузер. Как сообщает Gartner, рынок SaaS вырос на 21,7% до 38,9 млрд долларов в 2016 году. В 2017 году темпы роста только увеличатся.
Программное обеспечение как услуга (SaaS) — последний уровень облачных вычислений, который чаще всего дополняет PaaS, как видно из схемы в начале статьи. Это полнофункциональное приложение для пользователя, выполняющее определенные функции — например работу с изображениями или звуком. Наиболее популярной формой оплаты в этом сегменте остается подписка.
В случае SaaS в зону ответственности облачного провайдера передаются вопросы настройки приложений, мониторинга и резервного копирования. Поэтому такая модель работы не требует наличия в команде организации технического специалиста — все делает провайдер.
Таким образом, чем более высокоуровневую модель вы планируете использовать, тем меньший уровень компетенций в ИТ требуется от команды. Справедливо и обратное — чем ниже уровень ИТ-зрелости вашей компании, тем более высокоуровневая модель вам потребуется.
P.S. Еще несколько материалов по теме из нашего блога:
- Мифы об облачных технологиях. Часть 1
- Мифы об облачных технологиях. Часть 2
- Мифы об облачных технологиях. Часть 3: Говорим о железе
- «Дайджест 1cloud»: 25 материалов о безопасности, работе программистов и опыте создания IaaS-провайдера
- Как сделать виртуальную инфраструктуру доступнее
- Виртуальная ИТ-инфраструктура: Плюсы и минусы
- Как создать провайдера виртуальной инфраструктуры: Опыт 1cloud
- Простыми словами: Разбираемся с «облачными» услугами
Комментарии (10)
8ajarz
26.01.2017 18:31-4100500-й материал на тему «IaaS-PaaS-SaaS». Примеры — те же, что у ИТ-града. И картинки те же.
Я понимаю, тема удобная, но…andrewzhuk
26.01.2017 19:17Я понимаю, тема удобная, но…
Очередное раскрытие заговора на тему того, что IaaS-провайдер пишет в своем блоге про IaaS?
Сильно.
Прокрутил блог ИТ-Града — увидел *aaS-словарь по теме, unboxing-пост ну и так далее. Хоть тематика и общая — подход разный. У 1cloud всегда пятничный формат вытягивает :)1cloud
26.01.2017 19:29+1Коллеги, смысла выяснять отношения нет. Будем рады обсудить предложения по темам. Если что-то есть с уклоном на практику, пишите — подумаем. Можно не только в виде готовых тем, но и просто интересующие вопросы задать прямо тут или в личке.
keydet
26.01.2017 19:10Мне кажется, это можно рассматривать, как пирамиду добавленной стоимости. SaaS располагается на её B2C-вершине, а Business-process-as-a-Service находится на её B2B-вершине. Т.е. с моей точки зрения классификацию можно ещё более детализировать, вынеся отдельно сценарий многиеB2C-к-одному-сервису (SaaS) и отдельно сценарий одинB2B-к-многим-сервисам (в случае с BPaaS в облака выносится не software, а solution т.е. набор предынтегрированных SaaS).
1cloud
26.01.2017 19:25+3Да, логика верная. Мы как раз и планировали в дальнейшем детализировать с более техническим уклоном, но тут вы удачно подкинули мысль — подумаем и в этом направлении.
Спасибо, что читаете!
lol_wat
Для моего понимания сложнее всего PaaS, конечно. Но аналогия с пиццей тут неплохо работает)
1cloud
Спасибо, что читаете! Вот тут мы написали про собственный опыт разработки от идеи до развивающегося сервиса. На практических кейсах всегда легче разобраться, что и зачем.
lol_wat
Интересные примеры в посте, спасибо за ссылку
1cloud
Не вопрос! Спасибо за интерес к теме.
saintp16
Ну вот кстати блоки с подборкой ссылок в конце поста я впервые стал замечать где-то в ИТ-инфраструктуре. Либо в этом блоге, либо кто-то вроде itinvest начал подобное делать (но они сейчас прикрыли блог, к сожалению), а потом сам Хабр перенял эту систему и сделал блок «самое читаемое».