- PVSM.RU - https://www.pvsm.ru -

Обзор новорождённой платформы Scorocode

Обзор новорождённой платформы Scorocode - 1

BaaS-платформы (Backend as a Service) сделали разработку и сопровождение backend'а для мобильных и веб-приложений достаточно простыми и предсказуемыми процессами. Одним из флагманов движения BaaS стала компания Parse, но в 2016 году она заявила о прекращении обслуживания клиентов с 2017 года.

В связи с закрытием их сервиса и отсутствием русскоязычных облачных BaaS, мы решили создать собственный аналог — Scorocode [1]. Об этом под катом.

Расцвет BaaS

Разработка серверной части — самый трудный и непредсказуемый этап создания приложения. Зачастую, при планировании разработки проекта, недооценивается необходимый объём ресурсов и время создания backend'а.

Одна из возможных причин — трата времени на выбор инструментария, базы данных, платформы, операционной системы и т.д. Поэтому реализация даже относительно простых проектов может сильно затянуться, что приведёт к увеличению расходов.

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

Долгое время ИТ-индустрия искала способы упрощения разработки backend'а. Многие компании создавали инструменты, облегчающие работу над частными аспектами разработки, но это только затрудняло процесс: разработчикам приходилось разбираться не только в конкретной СУБД или платформе, но и в дополнительных инструментах.

Всё изменилось в 2011 году, когда компания Parse [2]предложила новый подход к созданию backend'а на основе облачного сервиса. Он позволял решить две основные задачи:

  • Хранение в облаке и свободное манипулирование структурированными данными;
  • Возможность писать серверную бизнес-логику на JavaScript — стабильно популярном языке программирования на протяжении нескольких лет.

Позднее были добавлены другие полезные функции, облегчающие создание backend'а и инструменты для решения рутинных задач.

Идея имела колоссальный успех. В середине 2012 года сервисом пользовалось 20 000 разработчиков, а ежемесячный прирост пользователей составлял 40%. Теперь этап разработки backend'а занимал дни, а не месяцы, и сэкономленные ресурсы можно было направить на разработку и совершенствование frontend'а.

Использование BaaS позволило точнее оценивать сроки разработки и необходимые ресурсы. Сам процесс создания backend'а стал более формализованным, позволяя для разных платформ использовать единую серверную часть, упростилось сопровождение проекта, расходы снизились и стали более прогнозируемы.

Scorocode: начало

Три года назад Facebook приобрёл Parse [3], и в конце 2015 года социальная сеть решила использовать мощности BaaS монопольно. Все остальные разработчики должны в течение 2016 года мигрировать на другие ресурсы.

Это событие совпало по времени с началом разработки нашей собственной BaaS-платформы. Изначально мы хотели создать сервис, сразу предоставив пользователям как базовую функциональность аналогичных платформ, так и большое количество новых уникальных функций. В результате мы сделали небольшой пивот, и в качестве отправной точки для Scorocode приняли базовую функциональность Parse с возможностью миграции данных из него в наше облако.

Scorocode: техника вопроса

Scorocode — горизонтально масштабируемая система, построенная на принципах кластеризации. Кластеры разделяются по типам: API, СУБД, файлы, статистика. Каждый кластер API, работающий с конечными приложениями, выдерживает нагрузку около 25 тысяч запросов в секунду. С ростом нагрузки количество кластеров наращивается.

Обзор новорождённой платформы Scorocode - 2

Немного о платформах и языках, используемых нами в разработке.

Основная СУБД в Scorocode — MongoDB, в качестве in-memory database используется Redis, а сервер очередей работает под управлением RabbitMQ. Высокопроизводительный API написан «с нуля» на Go. Язык был выбран нами после серии экспериментов с Node.js и С++. Google в последнее время очень активно развивает Go, писать на нём комфортно, код получается компактным, а производительность на уровне С++. Множественные микросервисы платформы тоже разработаны на Go.

Scorocode позволяет исполнять два варианта серверного кода:

  • JS-скрипты с бизнес-логикой. Они хранятся и выполняются на наших серверах. Причём выполняются асинхронно — по расписанию или с запуском вручную с клиентов, посредством вызовов через API. Выполнением серверных скриптов занимается движок Google V8.
  • Триггеры на JS, то есть обработчики операций с данными. Они выполняются высокоскоростным движком, написанным на Go. В данном случае мы отказались от V8, потому что он достаточно долго стартует, а у каждого обработчика есть всего лишь 500 миллисекунд для выполнения кода.

Чем мы отличаемся от конкурентов?

  • Scorocode состоит только из самописных и open source-компонентов. Исключена ситуация, когда в какой-то из компонентов сторонними разработчиками вносятся изменения, с которыми нам придётся мириться. Нам известно устройство и алгоритмы работы каждого элемента системы, поэтому исправление ошибок и реализация новых функций могут выполняться в кратчайшие сроки.
  • Корпоративные клиенты могут хранить чувствительные данные в собственном облаке. В этом случае на Scorocode обрабатывается только бизнес-логика, а все запросы к данным перенаправляются на клиентское облако.
  • Вся документация на русском языке. Признаемся честно — не всем хватает знания технического английского, чтобы прочитать документацию без затруднений.
  • Все серверы и данные находятся на территории РФ. Это позволяет нашим клиентам соблюдать требования законодательства.

Финансовый вопрос

На данный момент у нас действует три тарифных плана [4]:

  • Бесплатный “Free”. Если вы начинающий разработчик, то возможностей тарифного плана может хватить для полноценной работы простого приложения.
  • Базовый “Indie”. По умолчанию предоставляется в 1,5-2 раза больше возможностей, чем на бесплатном тарифном плане. Этого уже достаточно для небольших студий и команд разработчиков. Можно расширять возможности тарифного плана, приобретая в Marketplace дополнительные опции.
  • Корпоративный “Enterprise”. Индивидуальные условия для корпоративных клиентов, отсутствие ограничений, выделенные кластеры, космическая техническая поддержка, и т.д.

С платформой Scorocode можно дополнительно сократить затраты на обслуживание приложений:

  • Всем новым разработчикам мы зачисляем при регистрации на счёт платформы по 3000 рублей. Этого достаточно для оплаты одного месяца тарифного плана Indie.
  • Всем новым студиям разработки и digital-агентствам после подтверждения мы зачисляем на счёт платформы 10 000 рублей. Их можно потратить по своему усмотрению — либо взять Indie на три месяца, либо докупить в Marketplace дополнительные опции.

Развитие

У нас оптимистичные планы по развитию Scorocode на четыре года вперёд. Инвестиции и поддержку нам оказывает группа компаний PROF-IT GROUP [5], которая в 2015 году вошла в рейтинг самых быстрорастущих IT-компаний [6] по версии Cnews.

Ближайшие планы развития:

  • Интеграция с партнёрскими облачными сервисами для расширения методов обработки данных, хранящихся в Scorocode;
  • Фабрика интеллектуальных чат-ботов;
  • Поддержка полного цикла разработки — от backend до frontend.

Наш проект недавно стартовал и будет совершенствоваться под влиянием IT-сообщества. Мы готовы прислушиваться к пожеланиям разработчиков, расширять и пересматривать набор предоставляемых возможностей, находить разумный баланс в ценовой политике. Мы готовы к диалогу с пользователями и к конструктивной критике.

Приглашаем поделиться в комментариях своими пожеланиями и впечатлениями от использования Scorocode [1].

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

Автор: Scorocode

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/144644

Ссылки в тексте:

[1] Scorocode: https://scorocode.ru/

[2] Parse : http://parse.com/

[3] приобрёл Parse: https://techcrunch.com/2013/04/25/facebook-parse/

[4] три тарифных плана: https://scorocode.ru/#page4

[5] PROF-IT GROUP: http://prof-itgroup.ru/

[6] самых быстрорастущих IT-компаний: http://www.cnews.ru/reviews/2015/review_table/d3d4c70704e6cf0119d5b0c8fdea35ac7b1821a8/

[7] Источник: https://habrahabr.ru/post/303954/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best