Давайте разберемся, что такое SaaS, IaaS, PaaS и просто облачные вычисления?
Поскольку популярность облачных вычислений сейчас высока как никогда, пришло время провести разделительные линии и четко сформулировать разницу между различными типами облачных технологий, чтобы раз и навсегда ответить на злободневный вопрос: ”Чем же отличаются друг от друга Software-as-a-Service и Cloud Computing”? Ситуацию объективно усложняет то, что некоторые крупные облачные вендоры дают своё собственное определение некоторым ключевым понятиям в области облачных технологий, что ещё больше запутывает потенциальных заказчиков этих услуг, которые впервые выходят на этот перспективный рынок.
SaaS
В качестве одной из типичных иллюстраций терминологической путаницы, можно привести само определение SaaS (Software as a service), о котором в Википедии говорится, что этот сервис также часто именуется как “приложение, масштабируемое по запросу” (on-demand software). Если же следовать классификации, установленной в документации лидера облачного рынка Salesforce, то SaaS и on-demand-приложение – это две совсем разных описательных категории.
SaaS – это сравнительно молодая и перспективная бизнес-стратегия нового способа доставки сервиса приложения до его конечного потребителя, в которой приложение традиционно размещается в облачной среде самого поставщика приложения (противоположность этому, когда SaaS размещается под контролем самого заказчика в т.н. “частных облаках”, что часто называют как On-Premise SaaS).
On-demand software – это характеристика модели поставки ПО, дающая возможность динамически наращивать (или наоборот – динамически понижать) набор возможностей и степень масштабирования данного приложения. Например, некоторые мэйнфреймы IBM позволяют технически добавлять количество процессоров, когда появляется нехватка мощностей для текущей задачи – это типичная модель дизайна продукта on-demand. Поэтому, строго говоря, on-demand software – не является синонимом облачных вычислений, а то, что эта модель там широко применяется, в силу архитектурных особенностей благоприятствующих этому, - не причина смешивать эти два разных понятия.
Облачные приложения
Облачные приложения – это гораздо более широкая и абстрактная категория понятий, чем SaaS в отдельности, и ставить между ними знак равенства, - не совсем верно. Облачное приложение – это приложение, работающее в облаке, т.е. оно не привязано к какой-то конкретной инфраструктуре, а работает в полностью виртуализированных сервисах, за пределами которых для такого приложения ничего не существует. Вендор полностью создает и самостоятельно поддерживает эту виртуальную платформу, физически базирующуюся на большом парке часто разнородных компьютерных архитектур, таким образом давая возможность приложению полностью абстрагироваться от физических корней предоставляемых возможностей. Поэтому понятие “облачная среда” или “облачное приложение” – лишь указание на архитектурную особенность среды или конкретного программного решения, но, конечно, это не синоним SaaS, как это иногда утверждают.
Давайте далее посмотрим, что подразумевает под собой обобщающее понятие “облачные вычисления”, из каких логических ярусов состоит “облачное приложение”, чтобы исключить любое непонимание или путаницу в этих терминах впредь.
Классификация облачных вычислений
Обычно под “облачными платформами” сразу представляют себе набор раскрученных под этим брэндом сервисов от Amazon Web Services до Google App Engine и Force.com, при этом для маркетинга характерно использование типичных для этой среды противоречивых, отчасти дублирующих друг друга терминов, таких как on-premise, outsourced, pay-as-you-go, on-demand и т.д. – чаще всего это ещё больше запутывает новичка. Если отбросить некоторые популярные мифы и излишнюю искусственную запутанность этой раскрученной концепции, то в сухом остатке мы можем выделить три основных направления развития этого популярной технологии сегодня:
Приложения в облаке: это то, что большинство из нас повседневно используют в виде таких популярных сервисов, как Gmail, YahooMail, сервис Wordpress.com, Wikipedia, большая часть сторонних приложений построенных на GoogleApps и т.д. Большинство этих компаний размещают эти сервисы на серверных фермах, базы данных этих сервисов многократно дублируются, балансировщик нагрузки равномерно распределяет наплыв новых посетителей по всему доступному компьютерному парку (который, кстати, у некоторых из этих компаний разбросан по всему миру и связан между собой скоростными CDN-каналами). Почти любой посетитель может регистрироваться в этих распределенных приложениях, получать какой-то удаленный сервис, при этом, совершенно не заботясь о механизмах технического обслуживания всей этой армады серверов и приложений, своевременному расширению каналов связи или оплаты техникам-инженерам стоимости обслуживания всей этой сложной инфраструктуры. В сильном приближении весь этот сегмент можно обозначить уже устоявшимся термином SaaS - Software as a Service.
Платформа в облаке: это более новое направление, чем SaaS, которое предлагается разработчикам облачных приложений. Разработчики, приходя к такому вендору, получают в свое распоряжение уже готовые инструменты разработки, четкую спецификацию, и часто уже наборы готовых компонент, которые они могут использовать для быстрого построения приложений уровня SaaS, рассмотренные выше. Вторая компонента сервиса этих платформ – это связанный с ними специализированный хостинг, что, по сути, позволяет продавать двойной продукт. С одной стороны, это платформа и инструменты для разработки на её базе, а с другой стороны – уже готовая среда запуска и облачного хостинга приложений, созданных на базе этих инструментов. Важно понимать, что этот уровень среды – это отклик рынка на популярность верхнего этажа облачной концепции, - SaaS. Всплеск популярности сложных распределенных приложений типа Gmail, породил предложения готовых сред по их созданию, разработке и хостингу. Весь этот сегмент принято называть как PaaS - Platforms in the cloud.
Инфраструктура в облаке: это наиболее корневое предложение облачных услуг, которое создает, образно выражаясь, физический фундамент из серверного парка, настроенного на синхронную и дублирующую работу, на базе которого строится абсолютно любое здание облачных услуг, будь это SaaS или PaaS. Представьте себе это как груду железа на входе, где на выходе в качестве услуги вы получаете именно облако из уже виртуально работающих в одной общей упряжке серверов, на виртуальной сумме мощности которых вы можете запускать любые свои облачные решения. Здесь все измеряется размером предоставляемой квоты из общей мощности пула задействованных компьютеров, выделенной вам дисковой и оперативной памятью и другими, уже по большей части виртуальными ресурсами. Это и есть IaaS - Infrastructure as a Service.
Кроме того, каждый раз, когда вы встречаете упоминания о следующих, популярных в недавнем прошлом, технологиях или концепциях, – следует понимать, что в современном контексте все это олицетворяет собой именно облачные вычисления:
Грид-технологии (Grid computing) – разновидность распределенных вычислений, достигаемые через сопряжение большого количества процессоров;
Утилитарные вычисления (Utility computing) – возможность докупать компьютерные мощности и ресурсы, увеличивать пропускную способность канала и т.д., прозрачно для запущенного вычислительного процесса;
Технологии виртуализации (Virtualization technologies) – создание виртуальных серверов и сетевой инфраструктуры.
Заключение
Мы играли в эту “облачную игру” задолго до того момента, когда на рынок вышли специализированные для продажи этой бизнес-модели игроки-монстры, такие как Google или SalesForce.com. Эта технология (или её отдельные концепции) не так нова и революционна, как это иногда пытаются представить маркетологи. Другое дело, что в последнее время облачные вычисления получили очень серьёзные развитие и раскрутку, где каждое направление развития постепенно специализируется и выделяется в отдельные рыночные ниши, все больше формируясь в виде законченного продукта. Надеемся, что сегодняшняя краткая статья хотя бы немного сгладила те терминологические противоречия, которые обильно существуют и насаждаются в облачной маркетинговой среде.