НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Бэкэнд на миллионы пользователей за три минуты

Какие ИТ-платформы уже можно вовсю использовать, и какие на подходе к зрелости.


Продолжаем обзор Technology Radar -- текущие ИТ-тренды от экспертов Thought Works.

СПО-хиты сезона: NoSQL MongoDb и Redis, графовая СУБД Neo4J, серверный JavaScript-движок Node.js, распределённый реалтаймовый механизм поиска и аналитики http://www.elasticsearch.org/ , а также забавный тренд реализации UI с помощью смс-ок/USSD (например, доставка содержимого веб-странички на обычный телефон) -- своеобразный «интернет для бедных», популярный, например, в нищих регионах Индии.

Технологии, которые как минимум пора пробовать вовсю: Hadoop 2.0, Hadoop-as-a-service с хорошим уровнем абстракции, облачная платформа OpenStack, PostgreSQL как NoSQL, и несколько неожиданно в этот солидный список затесалась https://github.com/praekelt/vumi -- система поставки сообщений (тех же sms) -- возможно, в рамках тренда, упомянутого в предыдущем абзаце.

Что на подходе, активно развивается, за чем следить?

Akka -- платформа/язык программирования на базе концепции actor-ов, реализованная на JVM (своеобразная Scala). Очень лёгкая, держит 2,7 млн. «акторов» в 1 Гб ОЗУ, устойчивая в гетерогенных средах. Полезна всем, создающим highload-системы;

Дешёвые роботы -- цена промышленных роботов быстро падает, а их безопасность и разумность так же быстро растёт, что делает их доступными уже для СМБ;

PhoneGap/Apache Cordova -- эта кросс-платформная среда разработки мобильных систем для всех мыслимых мобильных ОС с помощью HTML5/JavaScript -- код конечно будет не нативным, да и сам по себе фреймворк не самый дружелюбный, однако скорость создания кросс-платформных программ после освоения продукта будет высокой.

Отдельная большая тема, заслуживающая отдельного рассмотрения: Backend-as-a-service (также известен как mobile backend as a service). Thought Works недаром поставила эту группу технологий в раздел триальных -- в основном, из-за молодости сервисов. Идея BaaS в том, что разработчику облачной/мобильной системы предоставляется готовый бэкенд -- не IaaS/PaaS, где многое надо настраивать вручную, а скорее SaaS, предоставляющий главным своим сервиcом серверный Backend.

Программист за три минуты после регистрации получает в распоряжение неограниченно масштабирующуюся абстрактную СУБД с гарантированно малым временем отклика, не привязанную к конкретной марке, и возможность реализации серверной логики на каком-нибудь скрипт-языке. Взаимодействие с СУБД (как правило, в формате JSON) и логикой осуществляется встраиванием соответствующих программных вызовов в код клиента (предоставляются SDK для разных платформ), а также через REST API. Примеры: parce.com, kumulos.com и др.

продолжение следует
Бобровский Сергей
parse.com конечно.
Тарасов Сергей
Интересно, кто-нибудь из программистов через три минуты после регистрации попытался залить в неограниченно масштабируемую СУБД хотя бы 100 Гб сгенерированных тестовых данных и оценить скорость выборок по произвольным критериям?

Можно даже взять готовые скрипты для сиквел-сервера и попробовать себя если не в "биг-дада" (о, я придумал новый термин ;) ), то хотя бы в обычной OLAP БД уровня отдела предприятия.
Бобровский Сергей
Я пробовал, только не 100 гиг (зачем? у этих сервисов другая цель, отделы предприятий пусть идут в амазон), а на два порядка меньше. Да и то много -- это уже несколько тысяч юзеров в онлайне. Отклик до 20 миллисекунд (причем не от базы, а уже через скриптовую логику).
За аналогичную цену если арендовать виртуальный сервер, ставить на него свою базу и сервер приложений, то отклик выходит 200-300 мс.
Тарасов Сергей
Значит сервис все-таки ограниченно масштабируемый для определенного класса приложений.
Тогда надо бы его потестировать на базе в 1-10 Гб с типовыми финансовыми транзакциями при 10-100 одновременных пользователях.
Бобровский Сергей
Зачем сервис тестировать на 100 одновременных пользователей, если его себе фейсбук подключил, а zynga на нем сотни тысяч юзеров держит?
Тарасов Сергей
Можно и на 1000 и  больше, но начинать надо с 10 и смотреть, как растет задержка.
Бобровский Сергей
Зачем её смотреть? Эти сервисы внутри себя используют известные облачные службы, достаточно их SLA почитать.
Тарасов Сергей
"На SLA надейся, а сам не плошай"  :)