Спецификация. Qualcomm ESM 7200/400 МГц, Windows Mobile 6, 128-Мбайт ОЗУ, 256-Мбайт флэш-ППЗУ, 3-дюйм (480×800), microSD, GSM/GPRS, EDGE, 3G, Bluetooth, WiFi, USB, GPS-навигация, биометрическая защита, 1320 мА·ч.
Инфраструктура
В преддверии SaaS
Андрей Колесов
Что такое SaaS
Еще года полтора назад термин SaaS достиг такой популярности, что его уже используют в выступлениях и публикациях без расшифровки и специального объяснения. Но мы начнем именно с этого.
SaaS – Software as a Service (программа как сервис). Согласно Википедии, данная концепция в ее современном виде была сформулирована еще в 1999 г. Сокращенное название (акроним) SaaS появилось два года спустя, и именно оно получило признание, оттеснив другие аналогичные термины во многом благодаря моде к обратно читающимся сокращениям в стиле camelback («спина верблюда» – сочетание в названии прописных и строчных букв).
Microsoft свою стратегическую модель продвижения сервисов называет S+S (софт плюс сервис). Такой подход можно рассматривать как расширенный вариант применения SaaS в сочетании с традиционным методом использования ПО. Отметим, что формулирование компанией собственной концепции S+S – это не просто желание выделиться на фоне остальных (хотя и не без этого), а реальное отражение специфики деятельности корпорации на ИТ-рынке (к этому мы еще вернемся).
Расхожее определение «ПО как сервис» изначально допускает довольно широкую трактовку.
Но как часто бывает в ИТ-отрасли, термин всем хорошо знаком, а суть его покрыта туманом. Четкого представления о том, что обозначается термином SaaS и чем это отличается от не-SaaS, нет. Путаница усугубляется еще и тем, что в ИТ-отрасли не так давно появился еще один модный термин – Cloud Computing (облачные вычисления), который по частоте использования (не в ИТ-практике, а в разговорах об ИТ) уже, кажется, вышел на первое место. При этом SaaS и Cloud очень часто применяются вместе, и порой непонятно в чем их различие (и есть ли оно вообще). Потому разговор о SaaS придется начать с разбирательства: что же это такое и чем данная модель отличается от предыдущих.
В поисках определения
«Все новое – это хорошо забытое старое». Конечно, далеко не всегда, но в любом случае применительно к технике этот афоризм требует уточнения – «…реализуемое на качественно новом уровне, с учетом новых возможностей технологий и нового уровня потребностей пользователей».
Само по себе название – «ПО как сервис» – позволяет довольно широко трактовать это понятие. Тем более что четкого и общепринятного определения SaaS на сегодня нет. Во многом это объясняется объективной причиной: содержание данного понятия быстро трансформируется по мере практического продвижения SaaS на рынок, развития технологических возможностей и изменения рыночного спроса.
В частности, SaaS часто воспринимается как общая тенденция отхода от схемы продаж лицензий на ПО в сторону увеличения доходов от предоставляемых заказчику услуг. В таком варианте под эту категорию подпадает и почти вся модель Open Source.
Более точное, но все же уже устаревшее (на наш взгляд) определение дает английская Википедия: «SaaS – это модель развертывания ПО, при которой провайдер лицензирует приложения таким образом, чтобы потребители могли использовать их как сервис по требованию». Но очевидно, что в этом случае к такой модели (она более точно сейчас называется Software on Demand, SoD) относятся и самые различные варианты аренды программных продуктов, и получение ПО по подписке.
Уточним: SaaS подразумевает, что заказчик вместо развертывания ПО у себя на площадке использует его возможности в виде услуги «сервис-провайдера» через Интернет. В этом отношении более точным видится формулировка русской Википедии: «SaaS – это модель продажи ПО, при которой поставщик разрабатывает Web-приложение и самостоятельно управляет им, предоставляя заказчикам доступ к программному обеспечению через Интернет.»
Но это определение описывает хотя и очень характерный, но лишь частный сценарий, поскольку нередко поставщик SaaS-решения использует программы другого разработчика (например, Microsoft CRM), а предоставляемое пользователю ПО не является Web-приложением (например, почтовый сервер или антивирусный экран).
Тут самое время вспомнить об «облачных» вычислениях и посмотреть, как соотносятся понятия Cloud Computing и SaaS. В русской Википедии приводится такое определение: «Облачные вычисления – технология обработки данных, в которой программное обеспечение предоставляется пользователю как Интернет-сервис». Ясно, что такое описание вполне подходит и для SaaS.
Более правильная формулировка имеется в английской Википедии: «Cloud Computing – это стиль разработки и использования компьютерных технологий (вычислений), при котором динамично масштабируемые ресурсы предоставляются через Интернет как сервис». Обратите внимание: речь идет не только о ПО, но об ИТ-ресурсах в целом, и что важно – динамично масштабируемых.
При такой постановке вопроса в Cloud Computing входят модели трех уровней:
• IaaS (Infrastructure as a Service) – предоставление аппаратной ИТ-инфраструктуры (серверы, сети, устройства хранения и пр.);
• PaaS (Platform as a Service) – IaaS плюс операционная система и, возможно, ее API;
• SaaS – приложения для конечных пользователей с доступом через Интернет.
Однако в такой формулировке SaaS – практически синоним другой, известной еще с конца 1990-х гг., модели – ASP (Application Service Providing), или Hosted Applications. Более того, среди ИТ-специалистов сегодня часто бытует мнение, что SaaS – это тот же ASP, но из маркетинговых соображений названный по-другому. Но c такой оценкой вряд ли можно согласиться.
SaaS и ASP
Четкого и общепризнанного водораздела между SaaS и ASP нет, в целом большинство экспертов сходятся на том, что эти термины близки и в некоторых случаях могут употребляться как синонимы. Тем не менее, на наш взгляд, есть несколько аспектов, которые позволяют отделить SaaS от ASP.
Главное отличие – изначальное предназначение ПО для использования модели SaaS. В большинстве случаев ASP – это частный случай применения традиционного ПО, когда серверная часть клиент-серверного приложения развертывается на площадке хостинг-провайдера. Более того, в этом случае чаще всего речь идет о варианте IaaS, поскольку все функции настройки и обновления ПО сохраняются за заказчиком.
Настоящее SaaS-решение подразумевает использование мультиарендной (многоклиентской) архитектуры, для которой необходимо наличие единой программной среды и общего аппаратного решения для всех клиентов (клиент – это предприятие-заказчик, а не одно рабочее место), чтобы обеспечить максимальную эффективность реализации ресурсов и добиться максимальной производительности. В отдельных случаях клиенту предоставляется собственная база данных для обеспечения лучшей защищенности и подконтрольности данных, однако довольно часто именно для защиты данных используется дефрагментация и распределенное хранение информации клиента (это, в частности, реализуется Salesforce).
Такая архитектура требует качественно иных технических подходов к решению вопросов масштабирования и повышения производительности системы. Традиционные варианты масштабирования, используемые в ASP, когда увеличение числа клиентов обеспечивается благодаря соответствующему числу серверов (в том числе с использованием виртуализации), не есть «чистое» SaaS, и его, скорее, можно назвать «квази-SaaS».
Сегодня SaaS чаще ассоциируется с использованием бизнес-программ (т. е. не с инфраструктурными, а с деловыми задачами предприятия).
Говоря о различиях SaaS и ASP (или по-другому – SaaS как новый этап развития ASP), стоит выделить некоторые моменты:
• ASP была рассчитана на крупных корпоративных клиентов. SaaS – в первую очередь на SMB (это стало во многом возможно благодаря широкополосному Интернету);
• SaaS предоставляет клиенту не ПО, а реализацию бизнес-функций. В общем случае клиенту все равно, на каком ПО все это построено;
• SaaS-поставщик, кроме того, должен решать вопросы интеграции своего сервиса в ИТ-систему заказчика;
• иначе выглядят вопросы лицензирования (отношения с поставщиком базового ПО);
• поставщик SaaS больше заинтересован в повышении эффективности своего внутреннего хозяйства (поскольку он не сдает в аренду ресурсы, а предоставляет бизнес-функции);
• реализация SaaS непосредственно связана с использованием новых архитектурно-технологических решений – SOA (как внутри SaaS-проекта, так и при стыковке сервиса с ИТ заказчика), виртуализации и пр.;
• иначе стоит вопрос «монетизации» услуг. ASP – это чистая арендная плата. В SaaS большое значение играет рекламная составляющая.
Технологические уровни зрелости SaaS
Еще в 2007 г. Microsoft проработала технологическую схему модели SaaS, выделив ее ключевые атрибуты (конфигурируемость, multi-tenant и масштабируемость) и сформулировав на их основе четыре уровня зрелости SaaS.