Если вы хотите заказать разработку мобильного приложения, причем чтобы вам сделали это быстро, оно было конкурентным и стабильно работало от нескольких месяцев до полугода, то лучшей альтернативой разработки бэкенда с нуля будет платформа BaaS. Ее использование позволяет существенно сократить издержки, вам не нужно будет писать серверную часть кода (в Ruby, Python и так далее), нет необходимости выбирать базы данных (Mysql, Pgsql и другие), кроме того отпадает необходимость настраивать постоянный домен и URL-адреса конечных точек для обмена данными. Все что нужно это выбрать платформу для вашего приложения (Android, iOS или обе) и решить вопрос о серверной составляющей.
Именно разработка серверной части является чуть ли не самым сложным и трудоёмким процессом при разработке любого приложения. Главная проблема состоит в том, что довольно часто разрабатывая проект, плохо рассчитывается и прогнозируется ресурсный объем. Кроме того, довольно существенным является возможное ограничение в ресурсах, обычно при разработке бэкенда приходится опираться на инструментарий и технологии доступные членам команды. В результате этого процесс создания софта затягивается, да и сам продукт получается громоздким, непростым и далеко не дешёвым (особенно с точки зрения его сопровождения). Длительная разработка постепенно рождает сразу множество рисков, стоимость разработки постоянно растет, а на что потрачены деньги, конкретный результат показать невозможно ни инвесторам, ни венчурным фондам.
Решить такую задачу (значительно снизить рискованность) и позволяют серверные сервисы Backend as a Service (BaaS), если грамотно собрать их вместе, то можно в кратчайшие сроки и с минимальным количеством ресурсов создать уникальный бэкенд. Такие сервисы как Kumulos, Backendless, Kinvey, Firebase и так далее, дают возможность:
- Воспользоваться готовыми мобильными SDK.
- Гарантируют безопасность данных.
- Просты в использовании.
- Поддерживают быстрое прототипирование.
Конечно, они не могут в полной мере удовлетворить потребности разработчиков мобильных приложений, лучше всего их использовать для небольших приложений, ничего действительно серьезного с использованием Backend as a Service (BaaS) создать не удастся. На сегодняшний день даже использование таких известных сервисов как Dropbox, ЕС2 не гарантирует безопасность и конфиденциальность, что же говорить о сервисах по сути предлагающих услугу промежуточного программного обеспечения. Если вы действительно серьезный разработчик вам не нужна BaaS.
Для команд по проще, новичков в разработке, желающих быстро освоить создание мобильных приложений Backend as a Service будет лучшим выбором, она помогает избавиться от существенных затрат (основная часть средств тратится на написание и поддержку серверного бэкенда). Использование серверных сервисов BaaS позволяет создать простое мобильное приложение, причем довольно часто для этого достаточно единственного разработчика. Благодаря BaaS многие стартапы могут осуществить проверку своей бизнес идеи на работоспособность, при этом они затратят минимум средств, пусть и без реализации действительно сложных программных продуктов.
Относительно возможных рисков использования серверных сервисов BaaS
Несмотря на то, что рынок BaaS уже достаточно развит (передовому сервису Parse поглощённому Facebook было бы более 6 лет) и на сегодняшний день существует довольно большое количество серверных сервисов. Для долгосрочного проекта необходимо достаточно строго подойти к вопросу выбора сервера. В первую очередь необходимо ознакомиться с историей провайдера, насколько прибылен данный серверный сервис, в противном случае при закрытии сервиса вы можете столкнуться с большим количеством проблем по дальнейшей интеграции вашего приложения.
Если вы планируете в ближайшем будущем запустить большое количество мобильных приложений лучше не использовать BaaS, а просто арендовать VPS-сервер, домен, установить базу данных, и вы готовы к быстрому созданию практически любого приложения.
Преимущества и недостатки BaaS
По сути BaaS это мост, соединяющий backend и frontend мобильного приложения, серверные сервисы помогают разработчикам значительно ускорить разработку программного обеспечения и упрощают создание API-интерфейса. Используя BaaS, разработчики получают доступ к широчайшему функционалу, возможно использование облачного хранилища, уведомления по электронной почте, интеграцию с социальными сетями и так далее. У каждого сервера личный API, который можно довольно просто встроить в приложение. Если вы используете Backend as a Service, вам не надо: работать с БД, иметь дело с дизайном собственного API, хостингом, написанием админки, физсервером приложения и библиотекой.
До 2013 года наиболее известным и востребованным BaaS был Parse. Но, в 2016 году владелец контрольного пакета акций Facebook решил закрыть проект. На сегодняшний день наиболее востребованными серверными сервисами являются QuickBlox и Backendless (из российских Scorocode). Каждый из сервисов имеет свои достоинства и недостатки, но есть и кое-что общее. К достоинствам современных BaaS можно отнести:
- Стоимость разработки – BaaS позволяет автоматизировать часть процессов, решать повторяющиеся задачи в автоматическом режиме, что снижает добавленную стоимость разработки приложения. Траты на программное обеспечение могут быть снижены на 80%.
- Скорость разработки - Backend as a Service позволяет ускорить процесс разработки мобильного приложения на порядок (в некоторых случаях в 4 раза).
- От разработчика не требуется большого опыта и знаний – разработки мобильных приложений с использованием BaaS требует мало усилий от специалиста, ему ненужно обладать большим опытом. По сути, некоторые проекты разработчик может создать в одиночку, при этом ему не потребуется тратиться на программное обеспечение.
- Большое количество поставщиков BaaS предоставляет возможность выбора оптимального сервера для конкретного проекта. Грамотное использование серверов позволяет решить любые задачи.
- Платформы различны по функционалу, многие из них поддерживают версионность, настройку фильтрации сообщений, гибкое ценообразование и так далее.
- Это довольно безопасные системы, большинство BaaS предоставляют реально хорошие протоколы безопасности.
- Масштабируемость – довольно часто серверные сервисы размещаются на инфраструктуре различных крупных веб-ресурсов (например, Amazon, Walmart и так далее), что позволяет автоматически масштабироваться при возникновении больших нагрузок как по месту, так и по используемой памяти.
Кроме довольно существенных достоинств серверных сервисов у них есть и определенные недостатки:
- При помощи BaaS очень сложно создать мобильные приложения для действительно крупных проектов: больших интернет-магазинов, сервисов с серьезными нагрузками на пике посещения, приложений для обработки фото материала и так далее. Везде, где требуется подход отличный от стандартного, уникальный инструментарий и алгоритмы.
- Довольно часто ресурсы самого сервера достаточно невелики, что сказывается на быстродействии.
- В некоторой степени ограничены и возможности разработки, что значительно усложняет решения задач требующих сложной логики сервера.
Другими словами, Backend as a Service (BaaS) прекрасно подойдет для создания малых сервисов, таких как: приложения для поиска кинотеатров, кафе, музеев, прачечных, приложений для поиска сотрудников конкретной квалификации и так далее, но они не подойдут для создания действительно крупных приложений.
Другое