Ігрові тренажери для розвитку когнітивних функцій мозку BrainApps з хмарним бекендом

Ми продовжуємо розповідати про застосування хмари Microsoft для компаній-розробників рішень (ISV). У цьому випуску керівник проекту BrainApps, Віталій Кухаренко, розповідає про те, як хмара використовується для бекенду процесів ігрових тренажерів для розвитку когнітивних функцій мозку.


Всім привіт! Мене звати Віталій Кухаренко, я – керівник компанії BrainApps.ru. Вже 1,5 року ми розробляємо ігрові тренажери для розвитку когнітивних функцій мозку». Звучить трохи незвично, згоден. Але такої назви є дуже просте пояснення. З початку 19 століття провідні вчені з усього світу намагаються вивчити, як працює наш мозок, як можна оцінити його «продуктивність» і як можна поліпшити показники його роботи. Проводилися сотні досліджень, численні тести на людей і тварин. В ході цих експериментів було відкрито дуже цікаву властивість мозку – нейропластичність. Мова йде про те, що мозок може змінюватися під дією досвіду, а також відновлювати втрачені зв'язки після пошкодження або як відповідь на зовнішні впливи. Тобто якщо завантажувати мозок різного роду завданнями, то мозок, немов м'яз, буде накачуватися, змінювати свою структуру. Саме це визначило слоган нашого проекту – «Фітнес для мозку». Наші тренажери допомагають розвивати пам'ять, увагу і мислення.

Команда у нас відносно невелика, але дуже ефективна. З урахуванням фахівців на фрілансі, нас всього 12 чоловік. Ми не роздуваємо штат, працюємо з кращими фахівцями з усього світу і досягаємо поставлених цілей.

Відразу в хмару

Якщо говорити про те, чому ми вибрали саме хмарну архітектуру, відповідь лежить на поверхні: такий підхід, абсолютно точно, на порядок вигідніше за низкою критеріїв. Причому вигода визначається не тільки вартістю обслуговування конкретного набору залізяк», систем з чітко детермінованими конфігураціями. Ми оцінюємо вигоду з цілого комплексу критеріїв: гнучкість, відмовостійкість, обслуживаемость отриманого рішення. Якщо говорити конкретніше, то є варіант купити dedic на якомусь німецькому лоукостере, на зразок того, що називається на літеру H…

Враховано все: вартість первинної установки, якість заліза, реакція техпідтримки і т. д. у випадку якщо У вас банальним чином накриється один з гвинтів в RAID, почне давати збої пам'ять, то процедура обміну сервера і перенесення даних – річ не просто неприємна, але ще і дуже ресурсозатратная. У випадку з хмарою всі проблеми з лікування заліза – це проблема техпідтримки хмари. Вартість простою бізнесу та репутаційні втрати виявляться набагато більше, ніж економія.

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



Про BizSpark

Окреме спасибі хочу висловити компанії Microsoft за програму Bizspark. Вперше я почув про програму на конференції DevCon 2013 куди мені пощастило випадково потрапити. Симпатичні дівчата подарували активационную карту, я зареєструвався, що подивився і забув. Потім у січні 15 заходжу, а виявляється в рамках програми можна отримати абсолютно безкоштовно більше 100$ на ресурси Microsoft Azure в місяць. Плюс доступ до ліцензійних програм. Захотілося спробувати, перекинув проект, дуже сподобалося. Плюс повна підтримка Open Source.

Якщо проект піде, то можна отримати грант на Bizspark Plus, де вже можна витрачати хмарних ресурсів на значно більші суми. Зрозуміло, що в успішному проекті залізо — це відсотків 20 успіху, але в будь-якому випадку це реально круто. Дуже рекомендую читачам уважніше поглянути на цю програму.

Про техніку та технологію

У нашому проекті використовується досить великий стек технологій. Відразу обмовлюся, що вибір тих чи інших рішень ми приймали, керуючись своїми бізнес-вимог. Деякі технології можуть здатися шановним читачам «застарілими» або «недостатньо хипстерскими».



Ми ж оперуємо такою логікою: якщо ми вміємо чимось користуватися, це «щось» зарекомендувало себе добре, використання даної технології економить час розробки і гроші – значить, використовуємо. В основному це Open Source рішення.

Отже,

Frontend сервера у нас крутиться на Ubuntu 14 Server.

Backend сервер з базою даних master slave і теж Ubuntu. Можливо, постане питання: «Чому не CentOS?». Просто звикли працювати з ним. Зрозуміло, звідки брати пакети, і як влаштована структура конфігурації.

  1. База даних MariaDB. Була думка використовувати PostgreSQL, але тривалого досвіду роботи з ним не було, тому зробили на тому інструментарії, з яким працювали багато і накопичили значний досвід.
  2. Мова програмування PHP 5.5, ми використовуємо фреймворк Laravel 4. Коли ми починали, п'ятої версії ще не було, а до оновлення версії руки так і не дійшли. Зараз дивимося в бік lumen як наступного ядра системи. З точки зору бізнесу PHP + laravel – це зв'язка, яка забезпечує достатню кількість вільних фахівців на ринку, здатних вирішити ваші завдання за осудні гроші.
  3. Вебсервер nginx – я думаю, коментарі не потрібні. Промисловий стандарт.
  4. Кешування memcached + MongoDB. MongoDB ми використовуємо переважно як кеш для статистичної інформації. У нас досить багато показників, які розраховуються на підставі вибірки даних з бази даних MySQL. Після розрахунку готові показники складаються в mongo, де і лежать до наступного перерахунку.
  5. В якості сервера черг використовуємо Beanstalk. Т. к. даних надходить дуже багато, а користувач не повинен чекати, всі процеси перерахунку статистики повішені на черзі.


Окремим пунктом у нас йде робота з помилками і моніторинг системи. Оскільки будь-які помилки в системі – це прямі збитки, пильну увагу ми приділяємо контролю за стабільністю системи.
  1. Sentry (для web помилок) і shinken-monitoring (для моніторингу стану серверів).
  2. Система деплоя написана на Magallanes. Досить зручне і гнучке рішення. Легко розширюється додатковими функціями.
  3. Код проекту зберігаємо в Git-репозиторіях, на bitbucket. Там же ставимо завдання по розробці.
  4. Frontend — в якості движка тренажерів йде angular + місцями canvas.
  5. Збирається все за допомогою Gulp – дуже зручне рішення.
  6. Збірка CSS йде з LESS.
  7. Поштові сервіси використовуємо різні, шолом пошту як через свій sendmail (показник 10 з 10 по mailtree), так і сторонніми сервісами


Про навантаження

Зізнаюся, не концентрували зусилля на навантажувальному тестуванні, використовували оціночні параметри. Тим більше, що у нашої команди вже був досвід створення великих інтернет-проектів. У моїй попередній компанії ми успішно обслуговували майже мільйон клієнтів. У цьому проекті спочатку заложились на правильну архітектуру, витратили трохи більше часу на опрацювання систем кешування і т. д. Ми впевнені, що якщо якась частина не почне справлятися з обсягом, то буде вигідніше щось оперативно доопрацювати, укомплектувати необхідним додатковим устаткуванням, ніж спеціально тестувати, віднімаючи час від основних та пріоритетних завдань.
Що ж стосується просто тестування – тут у нас чіткі регламенти. Практично вся система покрита тестами, і ми ретельно стежимо після кожної викладки, щоб вони всі проходили.

Про цілі

А мета у нас – зайняти лідируюче положення на ринку проектів для розвитку мозку в Росії. Наступний етап – вийти на європейський ринок і зміцнити там свої позиції. Якщо говорити про те, кому, без сумніву, буде корисним і цікавим наш продукт, то коло зацікавлених клієнтів виявиться досить широким. Але я б виділив два базових напрями просування – це мас-маркет і медичні установи. Відповідно, ми націлені на дві категорії споживачів: людей, які хочуть розвиватися і вдосконалюватися, проводити вільний час з користю, і тих, хто потребує реабілітаційних програмах, для поліпшення якості життя та відновлення активності після травм, серцево-судинних захворювань, хірургічних операцій і т.д. до Речі, для другої категорії ми розробили спеціальну адаптовану версію нашої програми.

Про перспективи

Незважаючи на кризу в світі, ми бачимо для себе величезні перспективи. Люди в будь-які, навіть не дуже спокійні часи готові інвестувати в себе. Ми сподіваємося, що бути уважним, добре вміти рахувати, швидко запам'ятовувати стане таким же стилем життя в Росії, як знання англійської мови. Адже зараз вже не треба нікому пояснювати: якщо хочеш відкрити для себе весь світ – вивчи англійську.

Джерело: Хабрахабр

0 коментарів

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