Назад

Что такое хостинг мобильных приложений

Короче говоря, вы разработали мобильное приложение. Что дальше? Приложение не может просто летать в воздухе, оно должно где-то находиться, а точнее хоститься. Желательно, на стороннем сервере, потому что мощности вашего компьютера скорее всего не хватит. Cтартапера интересуют тысячи пользователей, но их не будет, если приложение будет постоянно падать. Лучшее решение — хостинг сервер. Но сначала давайте разберемся, как устроена разработка мобильных приложений, и почему написать код — это еще не все.

Время чтения: 6 минут

Содержание

    Как создать мобильное приложение?

    Берем фронтенд, берем бекенд, получается the end.

    Ладно, конечно все намного сложнее. Можно сказать, что разработка мобильных приложений состоит из двух частей. Фронтенд — то, с чем взаимодействует пользователь на своем телефоне или планшете: например, кнопочки, на которые он нажимает, и слайдер, который он двигает. Но чтобы кнопки и слайдеры работали, под ними должна быть серверная часть. Нажимая на кнопку, вы отправляете запрос на сервер, там этот запрос обрабатывается, и возвращается к вам с результатом того, что вы ожидали от нажатия. Это должно занимать секунды, чтобы не потерять драгоценного пользователя, который ждет, пока прогрузится новый экран.

    Для чего нужен хостинг мобильных приложений?

    В разработке мобильного приложения написать код недостаточно. Конечно, если вы разработали приложение вроде калькулятора с очень простыми функциями, вся серверная часть будет на устройстве пользователя. Но если в приложении есть бекенд сложнее, то приложение должно где-то «лежать», и что-то должно обеспечивать исполнение запросов в нем. Хостинг приложений позволяет запускать бэкэнд на серверах или в облаке, размещенном у поставщика услуг, например Amazon Web Services (AWS) или Google Cloud Platform (GCP). Они обеспечивают основу для размещения ваших приложений. Не стоит путать с распространением приложений, этим занимаются AppStore и GooglePlay, о которых мы скажем чуть позже.

    Хостинг мобильных приложений не сильно отличается от хостинга веб-приложений. Пользователь также совершает действие или отправляет запрос, а компьютер, отвечающий за хостинг мобильного приложения, этот запрос обрабатывает.

    Что такое Code Push?

    В случаях когда на фронтенде что-то отваливается, нужно быстро пофиксить баги. Чтобы выкатить обновления в приложении, AppStore и GooglePlay требует каждый раз проходить этап ревью. В случае Android это может занимать 30 минут, в то время как iOS может продержать приложение у себя целые сутки. Чтобы автоматизировать этот процесс и минуть ревью, для залива обновлений можно использовать CodePush. Это облачная служба App Center, которая позволяет разработчикам на React Native обновлять мобильные приложения непосредственно на устройствах пользователей. Он работает как центральный репозиторий, в котором разработчики публикуют обновления, а приложения их запрашивают, используя предоставленные клиентские SDK. Применяя автоматизированные обновления, мы экономим время на исправление ошибок, и соответственно – деньги.

    Какие бывают типы хостинг-сервисов?

    хостинг мобильных приложений

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

    Какие есть преимущества облачного хостинга мобильных приложений?

    Надежность

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

    Масштабируемость

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

    Универсальность

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

    Что еще?

    • запросы и решения развертываются в облачной сети, а не на отдельном локальном сервере
    • ресурсы масштабируются в зависимости от запроса пользователя
    • решения автоматизированы и управляются через API, веб-порталы и мобильные приложения

    Популярные предложения облачного хостинга это Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud и Microsoft Azure. AWS — доминирующий игрок на рынке, который предлагает обширный список услуг и большее количество регионов и зон, чем другие облачные провайдеры.

    хостинг мобильных приложенийОдин из наших проектов — Accelerist, на котором мы использовали сервис AWS

    Purrweb в разработке приложений использует AWS хостинг сервер для зарубежных проектов и Яндекс.Облако для российских. AWS — это множество различных сервисов, включая сервисы авторизации и сервисы хранилища, они предоставляют хороший прайсинг и поддержку от Amazon. Яндекс на данный момент также впереди конкурентов в России.

    Сергей Пономарев, СТО в Purrweb

    Можно задаться логичным вопросом, а когда приложение находится в AppStore или Google Play, это тоже хостинг? Как бы да, но нет. Магазин приложений это канал дистрибуции. Через него обеспечивается доступ к приложению для всех пользователей. Давайте теперь к подробностям.

    Как приложения доходят до пользователей?

    Purrweb, агентство мобильных приложений, специализируется на разработке MVP, в частности кроссплатформенных приложений на React Native. Это идеальный вариант, если у вас есть идея для стартапа, но вложить много ресурсов вы не можете. React Native позволяет разработать два приложения одновременно, сразу и для iOS и для Android.

    Поскольку мы имеем дело с двумя платформами для мобильных приложений iOS и Android, способов доставлять приложения до пользователей тоже два. 

    1) iOS

    Прежде чем выпустить приложение в реальный мир, его нужно протестировать. Этапов два — альфа тестирование на уровне команды разработки и бета-тестирование, когда приложение смогут протестировать потенциальные пользователи. В случае с iOS это делается это через приложение Test Flight, которое принадлежит Apple. Чтобы залить приложение в Test Flight нужен Apple developer account. На этапе бета-тестирования можно пригласить пригласить в свое приложение до 10 тысяч пользователей. После того, как тестирование закончится, из Test Flight достаточно просто перейти в релиз. 

    Сам AppStore не хостит ваше приложение, это делает Test Flight.

    Что нужно сделать, перед тем как выложить приложение в App Store?

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

    Сделать приложением конфиденциальным. Вам потребуются документы с Условиями использования и Политикой конфиденциальности. Подготовить тексты для них совсем не составит труда — достаточно изучить похожие страницы конкурентов и адаптировать под себя.

    Быть готовым потратить время. Если приложение связано со ставками на спорт, религией или попадает в категорию «Для детей», будьте готовы к долгим переговорам с командой Apple. Для этого может потребоваться несколько дополнительных итераций. Просто потому, что этого требует ниша.

    Подробнее о том, как релизить приложение в App Store, можно почитать тут:

    2) Android

    Для этой платформы существует Android Studio, где пишется код приложения, настраиваются сертификаты, и проводится альфа и бета тестирование. Используя Google Play Console можно добавлять участников тестирования, управлять пользователями в приложении и выкладывать приложение в Google Play. 

    Все-ли так безоблачно с облачным хостингом?

    Безопасность

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

    Для разных сервисов мы используем VPC (virtual private clould) и security groups для контроля доступа к этим сервисам. Их можно настраивать так, что только из определенных мест можно получать доступ к различным ресурсам. Например, запретить обращение извне подсети к одной из баз данных. Бэкенд сервер может это сделать, потому что находится в одной подсети с базой, а любое другое устройство не сможет. Или можно настроить только доступ по SSH (secure shell), но запретить любой другой тип обращения к сервису.

    Константин Романов, тимлид в Purrweb 

    Постоянный доступ к сети

    Облачные сервисы зависят от высокоскоростного интернет-соединения. Таким образом, предприятия, которые являются относительно небольшими и сталкиваются с проблемами подключения, в идеале должны сначала инвестировать в хорошее подключение к Интернету, чтобы избежать простоев. Причина в том, что простои в Интернете могут повлечь за собой огромные убытки для бизнеса.

    Контроль

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

    Про деньги

    Мобильные приложения сейчас — один из главных каналов продвижения бизнеса, по сравнению с простым сайтом. Как и все приложения создаются по-разному, так и хостинг сервер подбирается под требования продукта.

    хостинг мобильных приложенийСам сервис AWS позволяет рассчитать стоимость мощностей, которые вам понадобятся. Например, 10 ГБ памяти в месяц будут стоить 2.30 USD (примерно 167 рублей)

    Расчет стоимости зависит от количества используемых ресурсов: от количества вычислений в реальном времени и запросов на бекенде. На AWS существует функция Load Balancing. В момент, когда нагрузка на сервер непредвиденно увеличивается, сервис разворачивает дополнительные машины. Они работают вплоть до того момента, пока нагрузка не спадет. Это тоже влияет на стоимость хостинга. На Яндекс.Облаке этот сервис пока недоступен.