Огляд новонародженої платформи Scorocode



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

У зв'язку з їх закриттям сервісу та відсутністю російськомовних хмарних BaaS, ми вирішили створити власний аналог — Scorocode. Про це під катом.

Розквіт BaaS
Розробка серверної частини — самий важкий і непередбачуваний етап створення програми. Найчастіше, при плануванні розробки проекту, недооцінюється необхідний обсяг ресурсів і час створення backend'а.

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

Інша причина полягає в обмеженості доступних команді ресурсів. Найчастіше розробляти backend доводиться з допомогою тих інструментів і технологій, якими володіють члени команди. Процес виходить довгим, а саме додаток — складним і дорогим в супроводі.

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

Все змінилося в 2011 році, коли компанія Parse запропонувала новий підхід до створення backend'а на основі хмарного сервісу. Він дозволяв вирішити дві основні завдання:

  • Зберігання в хмарі і вільне маніпулювання структурованими даними;
  • Можливість писати серверну бізнес-логіку на JavaScript — стабільно популярній мові програмування на протязі декількох років.
Пізніше були додані інші корисні функції, що полегшують створення backend'а й інструменти для виконання рутинних завдань.

Ідея мала колосальний успіх. У середині 2012 року сервісом користувалося 20 000 розробників, а щомісячний приріст користувачів становив 40%. Тепер етап розробки backend'а займав дні, а не місяці і зекономлені ресурси можна було направити на розробку і вдосконалення frontend'а.

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

Scorocode: початок
Три роки тому Facebook придбав Parse, і в кінці 2015 року соціальна мережа вирішила використовувати потужності BaaS монопольно. Всі інші розробники повинні протягом 2016 року мігрувати на інші ресурси.

Ця подія збіглася за часом з початком розробки нашої власної BaaS-платформи. Спочатку ми хотіли створити сервіс, відразу надавши користувачам як базову функціональність аналогічних платформ, так і велику кількість нових унікальних функцій. У результаті ми зробили невеликий півот, і в якості відправної точки для Scorocode взяли базову функціональність Parse з можливістю міграції даних з нього в наше хмара.

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



Трохи про платформи і мови, використовуваних нами в розробці.

Основна СУБД в 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 обробляється тільки бізнес-логіка, а всі запити до даних перенаправляються на клієнтське хмара.
  • Вся документація російською мовою. Зізнаємося чесно — не всім вистачає знання технічної англійської, щоб прочитати документацію без труднощів.
  • Всі сервери і дані знаходяться на території РФ. Це дозволяє нашим клієнтам дотримуватися вимоги законодавства.
Фінансове питання
На даний момент у нас діє три тарифних плани:

  • Безкоштовний «Free». Якщо ви початківець розробник, то можливостей тарифного плану може вистачити для повноцінної роботи простого додатка.
  • Базовий «Indie». За замовчуванням надається в 1,5-2 рази більше можливостей, ніж на безкоштовному тарифному плані. Цього вже достатньо для невеликих студій і команд розробників. Можна розширювати можливості тарифного плану, купуючи в Marketplace додаткові опції.
  • Корпоративний «Enterprise». Індивідуальні умови для корпоративних клієнтів, відсутність обмежень, виділені кластери, космічна технічна підтримка, і т. д.
З платформою Scorocode можна додатково скоротити витрати на обслуговування додатків:

  • Всім новим розробникам ми зараховуємо при реєстрації на рахунок платформи по 3000 рублів. Цього достатньо для оплати одного місяця тарифного плану Indie.
  • Всім новим студіям розробки та digital-агентств після підтвердження ми зараховуємо на рахунок платформи 10 000 рублів. Їх можна витратити на свій розсуд — або взяти Indie на три місяці, або докупити в Marketplace додаткові опції.
Розвиток
У нас оптимістичні плани з розвитку Scorocode на чотири роки вперед. Інвестиції та підтримку нам надає група компаній PROF-IT GROUP, яка в 2015 році увійшла у рейтинг найбільших IT-компаній за версією Cnews.

Найближчі плани розвитку:

  • Інтеграція з партнерськими хмарними сервісами для розширення методів обробки даних, що зберігаються в Scorocode;
  • Фабрика інтелектуальних чат-ботів;
  • Підтримка повного циклу розробки — від backend до frontend.
Наш проект нещодавно стартував і буде вдосконалюватися під впливом IT-співтовариства. Ми готові прислухатися до побажань розробників, розширювати і переглядати набір наданих можливостей, знаходити розумний баланс у ціновій політиці. Ми готові до діалогу з користувачами і до конструктивної критики.

Запрошуємо поділитися в коментарях своїми побажаннями і враженнями від використання Scorocode.

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

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.