Pull to refresh

API Облачных сервисов — следующий этап в развитии PaaS. Как экономить больше используя облачные платформы

Reading time 7 min
Views 6.3K
Hivext Cloud Programming
Наверное, про облачные платформы не слышали только люди далекие от ИТ. Бытует мнение, что облачные платформы в недалеком будущем станут раем для приложений, и рано или поздно почти все приложения будут жить «на небесах».

Под словосочетанием «облачная платформа» зачастую объединяют разные отличные друг от друга технические решения. В данной статье мы классифицируем облачные платформы по архитектуре и решаемой ими проблеме.

В статье, хочется донести мысль о том, на каких именно ресурсах можно сэкономить на порядки больше при разработке приложений, какого типа платформы нацелены на создание приложений быстрее и с меньшими затратами.

Также, в конце статьи, будет описан ряд особенностей облачной платформы, которая развивается совместными усилиями специалистов из России и Украины.

В основном, платформы разделяют на три группы, относительно уровня виртуализации:

  • Облачные хостинги
  • Облачные контейнеры
  • Облачные сервисы


Облачные хостинги


Данный вид платформ решает проблему управления ресурсами на уровне операционной системы. Позволяют развернуть приложения практически любой архитектуры. Решают задачу динамического выделения ресурсов на основе виртуализации операционной системы.
Эта группа платформ появилась раньше всех и существует относительно давно, технические решения имеют отлаженные и отработанные механизмы.

Представители: Amazon EC2, Azure, Scalaxy, Clodo

Облачные контейнеры


Решают задачу динамического выделения ресурсов на уровне веб-сервера. Позволяют развернуть приложения ограничивая выбор языка программирования (ЯП), иногда, частично ограничивают набор функциональных возможностей конкретного ЯП.
Эта группа появилась немного позже предыдущей. Техническое решение облачных контейнеров в основном строится поверх облачных хостингов, но это скрыто от разработчиков на уровне контейнера веб-сервера.

Представители: GAE, Heroku

Облачные сервисы


Помимо организации эффективного потребления ресурсов, облачные сервисы в первую очередь предназначены для решение принципиально другого вопроса, а именно для решения проблем большой длительности, сложности и дороговизны разработки. Технически облачные сервисы обычно реализовываются поверх облачных контейнеров или облачных хостингов, и в своей основе содержат принцип виртуализации приложений внутри платформы.
Разработка приложений на базе облачных сервисов максимально ориентирована на использование API готового набора сервисов.
На данный момент это последний уровень абстракции облачных платформ. В качестве отдельного класса, подобные платформы, появились относительно недавно.

Представители: GAE Services, Oracle Service Bus, LongJump, Saleforces Service Cloud, Hivext Cloud Platform


Облачные сервисы предоставляющие API


Cloud Services API


Давайте проанализируем причины появления третьей группы платформ, а именно облачных сервисов, как отдельного класса.
Первая и вторая группы предназначены, в первую очередь, для снятия с разработчиков заботы про инфраструктуру приложения. За счет этого можно экономить на администрировании приложений и на расходе ресурсов: платить приблизительно только за то, что реально используешь по ресурсам.

Однако, расходы на администрирование и на ресурсы приложений это далеко не самая затратная часть в ИТ. Наверно, каждый заказчик приложений знает о том, что именно дороже всего обходится при создании и функционировании его приложения. Самая расходная статья это зарплата сотрудников, а если конкретнее, это зарплата программистов и менеджеров. Чем обширнее проект — тем больше необходимо программистов, чем сложнее его уровень — тем выше уровень подготовки и знаний требуется этих же программистов.

Programmer Salary
Исходя из вышесказанного, очевидно что экономить больше, особенно на этапе прототипирования, создания нового продукта, прощупывания своей бизнес модели нужно не на ресурсах. Пока проект доживает до момента, когда необходимо экономить на ресурсах тратятся десятки, сотни тысяч килобаксов. Проект может и не дожить до релиза потратив кучу времени и денег на реализацию своей бизнес идеи.
Вот именно поэтому стали появляться облачные платформы с наборами готовых сервисов, которые нацелены в первую очередь на уменьшение расходов на самом процессе разработки приложений.

Конечно, именно эта же проблема решается с помощью использования разносторонних отдельных готовых наработок и библиотек. Их на данный момент набралось привеликое множество в разных областях разработки ПО. Если проанализировать как развивается процесс эволюции техник программирования и самих ЯП, можно явно выделить переходы от низких до более высоких уровней абстракции. На данный момент выделяют 5 поколений ЯП. Каждое новое поколение поглощает количественные наработки предыдущего поколения и содержит наиболее важные, проверенные и отработанные методики и алгоритмы из ранних поколений. Другими словами, создание средств, техник и самих ЯП для разработки приложений прямо подчиняется закону «Переход количества в качество».

В данный момент, подобная же ситуация происходит в развитии обширного набора библиотек и наработок. Из них выбираются наиболее зарекомендовавшие себя и ложатся в основу следующего уровня — в основу облачных сервисов.

Сервисно ориентированное программирование


Данный подход к программированию возник не вчера. Относительно давно существует SOAP и на его базе WebServices с WSDL. Пару лет назад про WebServices говорили также много как сейчас про облачные вычисления. Сегодня различные платформы и сайты предоставляют свои API по разным протоколам. Это является качественным продолжением парадигмы SOA и WebServices.

Экосистема облачных сервисов, в общем случае, это сочетание всех сервисов и функций, к которым может получить доступ ваше приложение, запущенное на определенной облачной платформе. Платформа предоставляет эти сервисы и управляет ими, гарантируя высокий коэффициент доступности, малое время отклика, эффективное распределение ресурсов между общими и выделенными ресурсами и т.д. Прелесть таких сервисов в том, что развернутые приложения могут рассчитывать на них и получать доступ к ним посредством заданного интерфейса. Сервисы такого типа бывают как стандартными, вроде таблиц и баз данных, так и более сложными – системы авторизации пользователей, обработки платежей и т.д.

Сегодня активно используется multi-cloud подход — формирования логических цепочек вызовов сервисов разных облачных платформ.

Multi Cloud


Интересы участников процесса разработки приложений

  • Разработчик будет определенно заинтересован в широком наборе сервисов, доступных его приложению. Поэтому он отдаст предпочтение платформе с бόльшим набором полезных и качественно реализованных сервисов. Разработчики могут сфокусироваться на логике работы своих приложений и воспользоваться предлагаемыми платформой сервисами в качестве поддержки. Для разработчика хорошая облачная платформа будет выглядеть как контейнер для унаследованного приложения, взращенный на стероидах.
  • Чем большее число сервисов предлагает платформа, тем меньше сервисов нужно будет разрабатывать самим. Для операторов это означает, что в процессе эксплуатации платформы они будут тратить меньше времени и сил на внедрение, управление и наблюдение. Следовательно, они смогут сконцентрироваться на основной цели: приложениях, необходимых предприятию.
  • Для руководителей несомненным плюсом платформы с богатым набором сервисов будет увеличение эффективности работы предприятия. Даже с точки зрения разработчика или оператора очевидно, что развитая облачная платформа позволяет разным участникам проекта в большей степени концентрироваться на разработке основных, а не вспомогательных элементов. Такой подход может стать основой для трансформации организации, тратящей много времени и сил лишь на поддержание рабочего состояния инфраструктуры, в гибкую, подвижную группу, действующую на опережение.

Cloud PaaS + SaaS


Сервисно ориентированная архитектура Hivext Cloud Platform


При большом количестве разных библиотек и фреймворков сложность разработки приложений остается довольно высокой. Даже, для реализации прототипа и проверки бизнес-идеи разработчик сталкивается с необходимостью разработки большого количества сопутствующих задач не связанных с основной идеей приложения. К таким задачам, прежде всего, относятся: настройка серверных решений (WebServer, DB, ORM и др.), реализация модели безопасности (авторизация пользователей, раздача прав доступа, контроль целостности данных, другие), файловое хранилище. В реальности, это только вершина айсберга задач, которые мало связанны с бизнес идеей самого приложения, но требуют выделения ресурсов для их решения.

В центре идеи Hivext лежит таже парадигма SOA. Однако, имеется ряд особенностей, которые являются ключевыми:
  1. наличие большого набора сервисов, расширяемого разработчиками приложений
  2. наличие сервисной шины, которая удобно их объединяет
  3. наличие клиентских библиотек для всех сервисов и для разных ЯП, которые скрывают работу с сервисами за понятными классами и удобными методами
  4. характеристики облачного хостинга — автоматическое получение дополнительных вычислительных ресурсов по требованию

Hivext предоставляет сервисы для разработчиков с целью улучшения процесса разработки приложений, более эффективного использования ресурсов — время, деньги, знания. Из предоставляемого набора сервисов создатели приложений могут реализовывать уже свои сервисы для конечных потребителей, которые гармонично интегрируются в экосистему общих сервисов платформы.

Hivext - services as platform


К тому же, Hivext обладает рядом отличительных характеристик
  • разработка прямо в облаке, без деплоя — проблема деплоя решена — его вообще нет
    компиляция происходит прямо на серверах платформы, изменения кода сразу же после сохранения скрипта отражаются на результатах работы
  • скриптовая направленность — стимулирует к написанию небольших кусков кода логики, разработка приложений сводится к написанию небольших скриптов
  • мультиязычность — клиентская и серверная;
    — серверную логику можно расширять используя синтаксис разных языков программирования (на данный момент Java, server JS, PHP), причем во все языки программирования можно внедрять классы созданные на Java или вызывать любой скрипт разных ЯП используя сервис скриптинга
    — на клиенте предлагаются SDK для работы с платформой на разных ЯП (j2me, j2se, javascript, PHP, ActionScript/Flash/Flex, Qt)
  • удобно работать разными командами над одним проектом — сшивание результатов на уровне описанных стандартизированных сервисов, работа с разными приложениями как будто с одним и тем же приложением используя все теже сервисы


Сегодня официально опубликован список финалистов Зворыкинского проекта (государственная программа Федерального агенства по делам молодежи), в который прошел проект Hivext Cloud Platform. Благодарим всех, кто верит в наши силы и поддерживает наш проект советом или делом!

Постскриптум



Обобщим преимущества Облачных сервисов предоставляющих API
  • значительно упрощают жизнь разработчикам, вместо того чтобы развивать все с нуля, они могут воспользоваться API сервисов и получить быстрый доступ к большой функциональности
  • ускоряют цикл разработки
  • делают приложения максимально расширяемыми, с богатым набором функций по умолчанию
  • помогают кооперировать с другими поставщиками услуг и сервисов
  • помогают в интеграции и взаимодействии с другими приложениями, написанными стороними разработчиками на этой же платформе
  • помогают в управлении безопасностью приложения
  • предлагают набор инструментов для аналитики работы приложения
  • предполагают по умолчанию наличие эластичности и масштабирования приложения


Сегодня, вероятно, большинство участников рынка не воспринимает облачные сервисы как отличительную черту предлагаемых провайдерами PaaS-решений. Это вполне объяснимое положение вещей для данного момента времени, свидетельствующее о незрелости рынка облачных вычислений. Скорее всего, уже в ближайшее время предлагаемые платформами сервисы получат большее внимание со стороны всех участников ИТ-проектов.

Ссылки на материал, используемый во время написания статьи

PaaS Is The Future Of Cloud Services: APIs Are The Key
PaaS-решения: экосистема сервисов приложений

Картинки найдены в Google.
Tags:
Hubs:
+21
Comments 22
Comments Comments 22

Articles