Об облаках, облачных технологиях и виртуализации говорят уже долго, особенно о трех наиболее популярных моделях обслуживания: программное обеспечение как услуга (SaaS), платформа как услуга (PaaS) и инфраструктура как услуга (IaaS). В сегодняшнем материале мы бы вновь хотели обратиться к этому вопросу и поговорить об особенностях и применимости облачных сервисов.
/ Flickr / Robert / CC
Стек облачных технологий состоит из трех частей, каждая из которых представляет отдельную категорию сервисов. На верхнем уровне располагается SaaS — по сути, это облачные приложения, доступ к которым предоставляется через веб-интерфейс. За ним следует PaaS — платформа для самостоятельной разработки и развертывания приложений.
На третьем уровне расположился IaaS — серверы, хранилища, сети, вычислительная инфраструктура, которую клиент получает в пользование для запуска своих решений. Описанная структура может быть представлена в виде следующей схемы:
Для демонстрации этих трех типов услуг часто применяется аналогия с пиццей — своеобразная «Pizza as a Service». Когда потребитель заказывает и поедает пиццу в кафе или ресторане, то это SaaS, а если заказывает её себе на дом, то это PaaS. Если же он пошел в магазин, купил ингредиентов и приготовил блюдо самостоятельно, то, можно сказать, что это IaaS.
Теперь слегка углубимся в каждую из этих технологий и начнем с конца стека — IaaS.
При выборе IaaS, вы получите серверы, сетевые ресурсы и хранилища в качестве подключаемой услуги. Получается, что компания приобретает вычислительные ресурсы у поставщика, избегая необходимости закупать собственное железо и поддерживать его. При этом сервис может быть предоставлен по типу публичного облака, частного облака или комбинированного подхода.
Понятие IaaS включает в себя следующие особенности:
Учитывая все вышесказанное, можно определить, когда следует использовать IaaS-решения. Обращаться к IaaS стоит в том случае, компания иногда испытывает нужду в повышении мощностей при всплесках нагрузки — то есть имеется потребность в оперативном масштабировании инфраструктуры.
Еще один вариант — компания представляет собой стартап, у которого нет средств на приобретение собственного «железа» и его поддержание, или же организация хочет запустить экспериментальное направление бизнеса и закупать оборудование для этого не всегда бывает целесообразно (проект может не взлететь).
Однако несмотря на гибкость и масштабируемость IaaS, технология имеет определенные ограничения. В связи с этим есть ситуации, когда использовать её не рекомендуется. Например, компания является игроком регулируемой отрасли, правила которой не разрешают хранение данных на серверах, не принадлежащих компании.
Здесь хотелось бы добавить, что существует мнение, якобы не стоит использовать облачные решения для бизнес-критичных приложений. Однако отметим, что это не так. Критичное бизнес-приложение может быть развернуто на производительном сервере с 16 ядрами и терабайтами памяти, в котором предусмотрено дублирование ряда компонентов (в том числе и на более высоких уровнях).
Платформа как услуга, или PaaS, упрощает развертку приложений и управление ими, при этом скрывая внутри себя работу с серверами, балансировку нагрузки, DNS и др. Поэтому отпадает необходимость нанимать инженеров для обслуживания инфраструктуры. Это позволяет разработчикам уделять больше внимания разработке и проблемам развертывания.
Здесь следует отметить, поскольку PaaS является вторым уровнем пирамиды облачных услуг, то он строится на основе IaaS, однако еще сильнее уменьшает время с момента генерации идеи до её воплощения. Это достигается за счет большей автоматизации процессов и абстракции от железа.
Чтобы абстрагировать концепцию работы с серверами, было проделано следующее:
Первый и последний пункты — это те элементы, которые способствовали росту популярности Docker. Технология Linux Container давно являлась частью ядра ОС Linux, но автоматизировать их использование решились только крупные компании или PaaS-провайдеры.
Компании используют архитектуры и микросервисы, ориентированные на работу с программным обеспечением, потому что они предлагают возможности по автоматическому развертыванию и тестированию кода, а также масштабирования в зависимости от нагрузки. Этот функционал и реализует PaaS.
К сожалению, такой подход имеет один серьезный недостаток. Вы передаете часть контроля своеобразному черному ящику и попадаете в зависимость от него. Однако в противном случае компании постоянно заново изобретают велосипед или начинают использовать медленные инструменты.
В случае SaaS потребитель приобретает возможность пользоваться приложениями поставщика, выполняемыми в облаке. Приложения доступны с различных клиентских устройств, например через браузер. Как сообщает Gartner, рынок SaaS вырос на 21,7% до 38,9 млрд долларов в 2016 году. В 2017 году темпы роста только увеличатся.
Программное обеспечение как услуга (SaaS) — последний уровень облачных вычислений, который чаще всего дополняет PaaS, как видно из схемы в начале статьи. Это полнофункциональное приложение для пользователя, выполняющее определенные функции — например работу с изображениями или звуком. Наиболее популярной формой оплаты в этом сегменте остается подписка.
В случае SaaS в зону ответственности облачного провайдера передаются вопросы настройки приложений, мониторинга и резервного копирования. Поэтому такая модель работы не требует наличия в команде организации технического специалиста — все делает провайдер.
Таким образом, чем более высокоуровневую модель вы планируете использовать, тем меньший уровень компетенций в ИТ требуется от команды. Справедливо и обратное — чем ниже уровень ИТ-зрелости вашей компании, тем более высокоуровневая модель вам потребуется.
P.S. Еще несколько материалов по теме из нашего блога:
/ 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
- Простыми словами: Разбираемся с «облачными» услугами