За последние несколько недель
мы потратили много времени на обучение
созданию и развертыванию полноценного сервера REST API,
осваивая такие технологии, как Express Framework и база данных INNOSQL, как MongoDB.
Этот подход дает вам полный контроль над тем, как вы создаете и развертываете свой серверный сервер.
Но во многих ситуациях у
нас может быть очень мало времени, чтобы настроить сервер, а затем быстро развернуть его.
Так, например, вы стартап, который должен выйти на рынок очень, очень быстро,
тогда вы можете захотеть быстро выйти из серверного сервера вместе
с интерфейсным приложением и выйти на рынок очень, очень быстро.
В этих обстоятельствах можем ли мы предоставить
поддержку серверной части в виде
службы, которая может быть быстро настроена и развернута?
Это именно то, что мы более подробно обсудим в этой лекции и
последующих упражнениях на этом уроке и следующем уроке.
Итак, как мы узнали в этом курсе,
мы освоили технологии,
фреймворки, необходимые нам для построения полноценного бэкенда REST API сервера.
Теперь, конечно, как мы узнали за последние несколько недель,
этот подход требует от нас создания собственного сервера, а затем настройки сервера,
нам нужно настроить нашу базу данных, а затем
настроить различные аспекты серверной базы данных.
Нам нужно разработать REST API и различные маршруты для нашего REST API,
а также нам может понадобиться создать
дополнительные сервисы, такие как доставка push-уведомлений
пользователю, управление пользователями, социальные сети и так далее.
Таким образом, все это означает, что развитие полноценного банка требует больших усилий.
Теперь можем ли мы упаковать весь этот подход в службу, которая может быть
быстро настроена и развернута без необходимости
тратить столько времени на настройку нашего сервера?
Теперь вы странно смотрите на меня и говорите:
«Вы провели последние три недели, обучая нас
всем этим технологиям, и теперь вы говорите, что очень легко
настроить сервер, используя бэк-энд в
качестве сервиса, чтобы обеспечить все эти различные функции из нашего бэк-энда».
Ну, каждый подход имеет свои преимущества и недостатки.
Давайте узнаем немного больше о back-end как службе, прежде чем мы решим,
является ли полноценный подход к разработке серверов, который мы узнали до сих пор, правильным для нас способом,
или быстро конфигурирование и развертывание back-end в
качестве сервиса — это подход, который удовлетворит наши потребности.
Итак, что именно такое бэк-энд как услуга?
Бэк-энд — это сервис, разработанный как модель для предоставления
мобильных и веб-разработчиков, чтобы связать свои приложения с серверным облаком.
Таким образом, как правило, бэкенд как сервис размещается в облаке, а затем вы подвергаете
бэкенд интерфейсу через
хорошо продуманный интерфейс, такой как конечные точки REST API.
Полностью упакованный бэк-энд, как мы видим в этом уроке,
является сравнительно недавним явлением и захватывает веб-мир штормом.
Мы рассмотрим некоторые примеры немного более подробно.
Теперь это обеспечивает мост между внешним и серверным хранилищем данных и
управлением базой данных с помощью унифицированного API.
А также многие из этих серверных поставщиков услуг предоставляют
свой собственный набор для разработки программного обеспечения, который позволит
вам быстро приступить к разработке интерфейсного программного обеспечения.
Этот подход, конечно, освобождает разработчиков от необходимости сосредоточиться на
создании бэк-энда и вместо этого сосредоточиться на их интерфейсной
разработке или попытке разработать и развернуть пользовательский опыт
в интерфейсе, будь то в форме
углового приложения или в мобильного приложения.
Теперь, если вы знакомы с облачными вычислениями,
я уверен, вы слышали такие термины, как инфраструктура как услуга,
платформа как услуга и программное обеспечение как услуга.
Теперь мобильный бэкенд как сервис, или BaaS,
по существу опирается на этот подход и ориентируется на мобильных и веб-разработчиков
с доступом к серверным облачным службам и гораздо более пакетной среде.
Таким образом, бэкенд как сервис позволяет
использовать облачный бэкенд для поддержки клиентского приложения.
Конечно, следующий вопрос, который возникает в вашем уме, заключается в
том, что back-end как услуга предоставляет вам обычно?
Типичный бэкенд как сервис обеспечивает отправку
уведомлений, автоматически встроенных в серверную облачную поддержку.
Он предоставляет вам хранение файлов и совместное использование файлов.
Он предоставляет вам интеграцию в социальные сети.
Многие из этих серверных поставщиков услуг обеспечивают
автоматическую интеграцию социальных сетей.
Он предоставляет вам возможности обмена сообщениями и чата, которые вы можете
использовать в вашем интерфейсе, чтобы обеспечить лучший пользовательский интерфейс.
Он также предоставляет вам управление пользователями.
Как мы видели, когда мы построили нашу
поддержку управления пользователями и аутентификации на нашем сервере Express plus MongoDB,
нам нужно было построить полноценный сервер аутентификации,
нам нужно было построить серверные сервисы,
нам нужно было делать управление токенами как на бэк-энд, так
и на интерфейсе и аутентификации пользователя и так далее.
Все это может быть упаковано и доставлено вам как единое целое с
комплектом для разработки программного обеспечения, который поставляется вместе с серверной частью в качестве услуги.
Кроме того, back-end, поскольку это пакетная служба,
они также встроены в множество инструментов анализа использования, которые позволяют
получить быстрый обзор того, как пользователи взаимодействуют с вашим бэк-эндом.
Таким образом, эти инструменты использования дают вам много
понимания поведения пользователя из вашего бэк-энда.
Кроме того, многие из этих серверных служб предоставляют вам метод
построения и развертывания собственной пользовательской логики
в серверной части для удовлетворения ваших конкретных требований.
Конечно, они предоставляют вам структуру, в рамках которой вы можете
разработать свою пользовательскую бизнес-логику для удовлетворения ваших конкретных потребностей.
Таким образом, типичный бэк-энд предоставляет API хранения данных для
облачного хранилища, где вы можете загружать и загружать файлы, а также получать доступ к этим файлам,
некоторому двоичному хранилищу для ваших данных,
возможно, синхронизации устройств и кэширования возможностей.
Так, например, когда вы создаете свой интерфейс,
внутренние данные будут автоматически кэшироваться во интерфейсе.
Они также могут поддерживать автономную работу вашего интерфейса.
Таким образом, даже если ваше пользовательское устройство отключено от сети,
вы все равно будете предоставлять достаточно
информации пользователю с автономными возможностями.
Таким образом, как онлайн, так и оффлайн рабочий процесс, так что вы можете даже позволить пользователю
выполнять свои действия в автономном режиме, а затем синхронизироваться с бэк-энд.
Интеграция третьей стороны.
Таким образом, много раз многие из этих бэк-энд в качестве поставщиков услуг
позволяют сторонним разработчикам разрабатывать плагины, которые затем могут
быть использованы вместе с бэк-энд для предоставления
расширений услуг, которые бэк-энд уже предоставляет для вас.
Безопасное подключение между внешним приложением и серверной частью,
а также многократно автоматически генерировать
конечные точки REST API для вас на основе данных, хранящихся в панели управления.
Мы увидим примеры этого, особенно с
LoopBack, как мы увидим позже в упражнениях.
И также, как я уже упоминал,
многие из этих бэк-эндов в качестве поставщиков услуг предоставляют
свои собственные наборы для разработки программного обеспечения, чтобы вы
могли легко начать работу с вашей интерфейсной разработкой.
Пакет SDK поставляется со всем кодом, необходимым для
вашего внешнего приложения для автоматического взаимодействия с вашим серверным приложением.
Так, например, SDK может уже содержать
службы, которые ваше угловое приложение может использовать для
автоматического разговора с серверной частью, поэтому вы можете остаться только с реализацией
компонентов и шаблонов переднего плана для вашего приложения.
Все взаимодействие с серверной частью автоматически
управляется пакетом SDK, который предоставляется вам.
Вы увидите примеры этого как с
Firebase, который мы рассмотрим чуть позже,
а также с LoopBack, который мы обсудим в следующем уроке.
Конечно, любой подход имеет две стороны к монете.
Итак, рассмотрим некоторые преимущества и недостатки back-end как сервиса.
Теперь одно из преимуществ, конечно, заключается в том, что с
бэк-эндом он предоставляет вам предварительно сконструированные и протестированные компоненты.
Таким образом, back-end упакован для вас,
чтобы поставщик услуг back-end гарантировал, что
весь back-end хорошо протестирован и доставит сервис, как обещано пользователям,
разработчикам front-end.
Таким образом, вам не нужно тратить дополнительное время на то,
чтобы беспокоиться о тестировании и убедиться, что ваш бэк-энд работает правильно или нет.
В отличие от того, когда вы создаете свой собственный собственный
бэк-энд, используя фреймворки, которые мы видели ранее,
вы несете полную ответственность за то, чтобы ваш бэк-энд работал правильно.
Второе преимущество - это, конечно,
сопутствующее сокращение усилий на стороне сервера, которые вам нужно приложить.
Таким образом, поскольку серверная сторона поставляется как пакетная единица,
вы можете сосредоточиться в первую очередь на разработке интерфейса и оставить
серверную сторону для бэкэнда в качестве поставщика услуг, с которым можно справиться.
И вы просто используете гибкость, которую они
обеспечивают вам при разработке интерфейса.
И типичный бэкэнд в качестве поставщика услуг будет
заботиться о интеграции любых последних технологических разработок
в свой бэкэнд и предоставлять
обновленные версии бэкэнда по мере появления новых технологий.
Таким образом, вы, как разработчик front-end,
полностью освобождаетесь от беспокойства о том, как должен развиваться бэкэнд.
Это автоматически позаботится провайдер BaaS для вас.
Конечно, все поставляется с оборотной стороной карты.
Таким образом, давайте рассмотрим некоторые из недостатков перехода бэкэнда в качестве сервиса.
В первую очередь, большинство бэкендов работают как черный ящик.
Вы не знаете точно, как реализован бэкэнд.
Если вы используете бэкэнд с открытым исходным кодом,
например, LoopBack, у вас есть доступ ко всему этому бэкэнду,
но все же почему вы хотите потратить время на изучение деталей бэкэнда,
когда вам было гарантировано, что бэкэнд был
построен хорошо и хорошо протестирован для вас.
Таким образом, вы можете просто относиться к нему как к черному ящику так долго.
Поскольку у вас есть уверенность в том, что этот черный ящик будет
предоставлять услуги, которые вы ожидаете,
вы можете просто использовать бэкэнд, не
беспокоясь о том, как он на самом деле реализован.
Второй аспект заключается в том, что
если вы решите использовать один бэкэнд
в качестве поставщика услуг, возникает проблема блокировки поставщика.
Поэтому, как только вы выберете одного из поставщиков BaaS,
вы будете заблокированы в их среде и в том, как они хранят свои данные.
Много раз, как только вы принимаете один из этих бэкэндов в качестве поставщиков услуг,
все ваши данные блокируются в их службе, и вам, возможно, придется пройти
через чрезмерные усилия, чтобы
получить данные, которые вы уже сохранили в бэкэнде,
если вы решите перенести из одного в качестве поставщика услуг другому.
Таким образом, развертывание вашего сервиса с помощью одного бэкэнда является очень простой задачей,
но тогда, если вы решите изменить своего поставщика BaaS,
это будет тяжелая битва для вас.
Таким образом, это то, о чем вы должны быть полностью осведомлены, прежде чем
использовать один из бэкэндов в качестве поставщиков услуг.
Эта проблема не становится проблемой, когда вы
выполняете полноценную разработку backend самостоятельно.
Опять же, твоя победа и ты проиграешь.
Поэтому мы всегда принимаем это с учетом всей их картины.
Таким образом, потеря гибкости, которую вы
повлечет за собой, используя один из бэкэндов в качестве поставщиков услуг, может быть
тем, с чем вы готовы жить из-за того, что вы сократили
время разработки бэкэнда, и вы можете
больше сосредоточиться на доставке вашего продукта в рынок.
Итак, если вы доверяете поставщику BaaS,
вы можете просто пойти с выбранным поставщиком
BaaS, а затем не беспокоиться слишком о потере гибкости, которая возникает из-за этого.
Опять же, как я уже сказал, не все приходит только с преимуществами,
всегда есть преимущества и недостатки любого подхода, который вы
выбираете для разработки и развертывания вашего бэкэнда.
BaaS — это всего лишь одна альтернатива, которая может быть подходом
, который вы выбираете для своих конкретных потребностей.
И наконец, конечно,
не каждый BaaS поставляется без собственного набора дополнительных требований к обучению.
Если вам нужно использовать один из поставщиков BaaS,
вместо черного ящика, вам нужно изучить API,
вам нужно узнать, как настроить его,
вам нужно узнать, как настроить его части, если вы решите сделать это, и так далее.
Таким образом, учебные усилия, которые вы потратили на изучение
конкретных или общих фреймворков, таких как Express и баз данных, таких как MongoDB,
вместо этого вы будете тратить время на изучение
их специфики своего бэкэнда в качестве сервиса, который вы решите использовать.
Итак, речь идет о том, где вы хотите провести свое время.
Дополнительное обучение всегда будет задействовано,
за исключением того, что с поставщиком BaaS вы сможете начать работу
быстрее, чем создать собственный собственный бэкэнд.
Рынок BaaS полон множества вариантов выбора.
И действительно, эти решения продолжают увеличиваться с каждым днем.
Теперь, когда вы идете на рынок BaaS,
вы можете увидеть коммерческих поставщиков.
Вот небольшой список коммерческих поставщиков.
Опять же, есть все больше и больше, которые добавляются днем в этот список,
и я только что перечислил только небольшое подмножество из них.
Конечно, если вашего любимого поставщика BaaS нет в этом списке, не вините меня,
может быть, я просто не знаю о них или, может быть, они просто слишком
новые для рынка, и поэтому я не сталкивался с ними.
Но вот список некоторых коммерческих поставщиков, которые предоставляют нам услуги BaaS.
В частности, я собираюсь сосредоточиться на firebase,
который предоставляется Google.
В этом уроке мы рассмотрим, как использовать firebase
немного подробно в этом уроке в последующих упражнениях.
Теперь, если вы хотите пойти с поставщиком с открытым исходным кодом,
есть много вариантов с открытым исходным кодом, которые доступны для нас,
конечно, там вы будете
приобретать это программное обеспечение с открытым исходным кодом, а затем строить ваш сервер конец и развернуть его.
За исключением того, что он будет
поставлен как предварительно упакованный объект, который можно быстро настроить и развернуть на бэкэнд.
Мы рассмотрим LoopBack как один из примеров программного обеспечения с открытым исходным кодом, которое
может быть развернуто очень быстро для создания вашего бэкэнда.
И, как я уже сказал, все больше и больше вариантов приходит на рынок, день за днем.
Итак, следует ли вам исследовать рынок завтра, чтобы найти новых поставщиков BaaS?
Во всяком случае, изучите,
что они предоставляют, какие услуги они предоставляют.
Будут ли те услуги, которые они предоставляют, соответствовать вашим требованиям и можете ли вы быстро
использовать предоставляемые ими услуги, чтобы быстро выйти на рынок.
Так что это вопросы, которые я оставлю вас в течение дня.
Как я уже сказал, мы должны рассмотреть
все возможные альтернативы, а затем самостоятельно принимать решения.
Но если мы не знаем об альтернативах, мы не сможем сделать осознанный выбор.
Вот почему последние несколько уроков этого курса я трачу
на изучение некоторых примеров бэкэнда как поставщиков услуг.