Что лучше: иметь свою машину, арендовать её на длительный срок, пользоваться каршерингом, ездить на такси, либо нанять личного водителя с машиной? Вопрос такого рода некорректен тем, что при разных условиях и обстоятельствах один вариант может быть гораздо лучше другого, но в других - совершенно не подойдёт. В мире IT приходится решать похожие вопросы: приобретать собственные ресурсы? привлекать подрядчиков? арендовать что-либо?
Модель IAAS (предоставление через облако инфраструктуры как услуги клиенту) напоминает вариант каршеринга, либо особого варианта посуточной аренды автомобиля, которым часто пользуются таксисты. В этом случае клиент, получивший инфраструктуру как услугу через облака, не обременён заботой о физическом содержании инфраструктуры, имеет большой контроль над полученными ресурсами, но вместе с тем и отвечает за огромное количество вопросов самостоятельно. IAAS мы рассматривали в прошлый раз, а сейчас я предлагаю рассмотреть случаи, когда нам хочется переложить ещё больше ответственности на плечи облачного провайдера. Это PAAS (Platform as a service - платформа как услуга) и SAAS (Software as a service - программное обеспечение как услуга). О сервисной системе и облаках можно почитать здесь
PAAS - Platform as a service: Платформа как услуга
PAAS - вторая, а может быть даже и первая по популярности, если сравниваться с IAAS, облачная технология. Больше того, в каком-то утрированном виде она появилась ещё до облаков: во времена, когда сайты хостились у хостинг-провайдеров, т. е. в эпоху Web 1.0.
В чём суть PAAS? Допустим, вы разработали тиражируемую программу. Однако ваши клиенты не хотят заниматься её поддержкой, установкой, доработками. Они хотят только её использовать непосредственно для своих бизнес-целей, извлекать из её использования выгоду, ну и при этом, платить за её использование. Ну платить никому не хочется, по крайней мере, лишнего. При этом, ваша программа, как я сказал, тиражируемая: это значит, что она может использоваться не одним каким-то клиентом, а любым, кто готов платить, кому она реально нужна. Вы же, как разработчик, не хотите содержать целую армию разъездных специалистов по установке и поддержке решения. Перекинуть затраты на клиента - не вариант, особенно если конкуренция в вашей области высокая, либо клиенты в принципе не готовы платить много. Что же делать? Выход называется PAAS!
Ваша программа в таком случае является платформой, поскольку конфигурации (настройки) для конкретного клиента, а также данные, которые завязаны на его опыт работы с программой - это его собственность. Условно говоря, все знают программу Word для подготовки текстов. Тексты, что мы создаём - это наша собственность. Сама же программа может арендоваться, стоять на машинах совершенно разных и незнакомых друг с другом людей, а может вообще запускаться в облаке. Тоже самое и в нашем случае. Провайдер предоставляет нам возможность реализовать программу в виде модулей с API (что это такое, я писал в статье про сервисно-ориентированную архитектуру), либо в виде сайта, либо ещё в каком виде, но суть в том, что почти всё администрирование он берёт на себя: и ответственность за инфраструктурную часть, и за стабильность того, что мы развернём.
С нас требуется программа, написанная по специальным канонам (там предъявляются требования к качеству), к нам предъявляются определённые требования, но как правило и доход мы с провайдером делим. Обычно по такой модели предоставляются какие-то особые сервисы. Например, некоторые облачные провайдеры предоставляют возможность взять в аренду 1С, но не в виде привычного клиента или сервера, а в виде сервиса с особым доступом к нему и т. д. Либо же это могут быть базы данных и ещё какой-то специализированный софт для разработчиков (чаще всего). Поскольку облачные услуги сейчас предоставляют многие крупные производители программ, то их специализированные решения чаще всего идут по модели PAAS: многие сервисы от Google, Microsoft, IBM, Яндекс, SAP.
SAAS - Software as a service: Программа как услуга
Есть особый случай - программа как услуга. Называется SAAS. Это что-то вроде предыдущего варианта, но с оговорками. Вообще, предоставлять программу как услугу первыми додумалась корпорация Microsoft. Думаю, все знакомы с их пакетом MS Office. Сейчас Office физически ставится на компьютер пользователя, но вот только будет требовать доступ к интернету, а лицензия на него теперь идёт по подписке. Впрочем, есть чисто интернет-вариант MS Office, доступный по адресу office.com. Второй вариант является ещё и примером виртуализации программы - она доступна в интернете, без привязки к устройству и т. д.
Вообще, грани здесь уже становятся очень тонкими. Что вообще считать просто программой по подписке, а что считать SAAS? Если есть возможность запустить программу на любом устройстве через сайт, без установки - в принципе, такое подойдёт под определение SAAS. Подойдёт ли сюда антивирус, требующий ежемесячной подписки, но при этом который надо устанавливать? Вряд ли, поскольку он не построен на облаках, хотя вполне может для своих нужд обращаться к ним
Отличаются ли SAAS от PAAS? Различия есть, но грань тонка. Скажем, ничего страшного не произойдёт, если PAAS назовут SAAS и наоборот. Если же очень принципиально, то проще всего рассуждать так: если программа представлена в виде сайта, либо её запуск происходит с пользовательского компьютера, но доступ ко многим функциям требует интернета и активной подписки, то это будет всё же SAAS. Ещё как вариант для рассуждения: если программное решение имеет узкую специализацию, то это тоже может быть SAAS. Во всех случаях, это происходит через облака, через интернет, экономит кучу сил и энергии клиенту.
Какие существуют издержки?
Что теряет клиент при этом? Он утрачивает контроль над поддержкой инфраструктуры, на которой разворочено программное решение. Он не видит многих процессов под капотом. Изредка, такой контроль нужен (какие-нибудь уникальные настройки для программы требуются, доработки) - тут, к сожалению, придётся опускаться на уровень ниже, брать IAAS и разворачивать нужную программу там самостоятельно. Скорее всего, самостоятельно её поддерживать. Если же действительной необходимости в этом всём нет - PAAS/SAAS будет лучшим решением, особенно когда нужно обеспечить масштабируемость и гибкость, а лишних средств на ресурсы нет.