Архитектура большинства мобильных приложений основывается на двух составляющих. Первая – фронтенд (frontend), или клиентская часть, с которой взаимодействует пользователь. Вторая – бэкенд (backend) – предусматривает решение различных задач на сервере. Например, хранение изображений и видеороликов, добавление информации в базу данных или выполнение ресурсоёмких математических операций.

Поскольку успех приложения напрямую зависит от скорости и стабильности работы, хостинг для бэкенда должен отвечать ряду требований. В их число входит аптайм не менее 99,9%, высокая пропускная способность интернет-канала, быстрота исполнения серверных скриптов и обработки запросов к базе данных. Важно также наличие квалифицированной поддержки для оперативного устранения технических проблем.

«Железо» для сервера подбирается с учётом пиковых нагрузок и решаемых приложением задач. Одним программным продуктам нужны машины начального уровня, в то время как для обслуживания других применяются многопроцессорные компьютеры с десятками гигабайт памяти. Независимо от вида и сложности софта, для организации бэкенда сегодня преимущественно используются четыре решения. Рассмотрим подробнее каждое из них.

Фотография Taylor Vick / Unsplash

Выделенный сервер - dedicated

Оптимален для ситуаций, когда масштабирование приложения не играет ключевой роли. За фиксированную ежемесячную плату удалённый компьютер предоставляется в полное распоряжение владельца ПО. Вычислительные мощности бэкенд-сервера ни с кем не делятся.

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

К сожалению, на 100% застраховаться от форс-мажоров не может никто. Однако на хостинговых площадках, которые дорожат своей репутацией, технические проблемы ликвидируются в кратчайшие сроки. При  условии, что выбранный хостинг надёжен, простои могут быть также из-за ошибок разработки или неправильной настройки серверного ПО.

Под приложения стоит арендовать именно выделенные серверы. Переплата в сравнении с VPS/VDS хоть и заметна, но не столь велика: $5-10 за VPS/VDS в месяц против $30-50 за dedicated server. Лишние затраты компенсируются более высокой производительностью, есть возможность разместить на «машине» свой сайт или online-IDE, ресурсов хватит.

Фотография Capturing the human heart. / Unsplash

Мультирегиональный хостинг

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

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

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

Фотография Tobias Fischer / Unsplash

Хостинг с CDN

Если работа приложения предусматривает загрузку пользователями внушительного объёма данных, Content Delivery Network (сеть доставки контента, CDN) помогает эффективно оптимизировать процесс. Иногда вместо «delivery» используют слово «distribution».

CDN идеально подходит для приложений, через которые к пользователям доставляются изображения, видео или аудио. В промышленных масштабах объём их может достигать миллионов единиц контента в сутки. Тем, кто собирается открыть мобильный фотосток или магазин лицензионных MP3-файлов, подобная технология придётся как нельзя кстати.

Content Delivery Network активно внедряют для оптимизации передачи ресурсов, наподобие файлов CSS или HTML-страниц. CDN повышает удобство пользования высоконагруженными приложениями. В основе технологии – серверы, объединённые в кластеры, группы. Компьютеры размещаются по всему миру, что обеспечивает быстроту доставки контента за счёт кэширования и минимального пинга.

Marketing strategy on glass close-up
Фотография Campaign Creators / Unsplash

MBaaS

MBaaS – сервисы для разработчиков мобильных приложений, выполняющие рутинные операции. К ним относится связь ПО с бэкенд-сервером, управление пользователями, отправка push-сообщений, интеграция с популярными социальными сетями и так далее. Дополнительными услугами здесь могут быть средства разработки,  администрирование и настройки программ.

Ключевое преимущество MBaaS в том, что бэкенд не придётся разрабатывать с нуля. Сервисы автоматически управляют API, обеспечивают целостность информации в БД и поддерживают бесперебойную работу приложений на разных устройствах. Появились такие решения сравнительно недавно, но многие эксперты из сферы IT уже считают, что за ними будущее мобильной разработки.

Фотография Ellen Qin / Unsplash

Несмотря на очевидные преимущества, MBaaS – готовые продукты, что снижает гибкость разработки. Чтобы сервисы приносили пользу, надо чётко представлять, как добиться от их работы максимальной эффективности. Часто бывает проще арендовать выделенный сервер, настроить под конкретный проект и не зависеть от сторонних поставщиков услуг. Большинство разработчиков популярных приложений так и поступают.