Мнение о том, что бессерверность-это путь в будущее, еще раз подкрепляется недавним объявлением Google о своих облачных функциях для Firebase. Их можно рассматривать как попытку догнать уже зарекомендовавших себя игроков сцены «Функция как услуга», функций AWS Lambda и Azure.
Как и AWS Lambda и Azure, облачные функции представляют собой автономные фрагменты кода, которые находятся в облаке и запускаются в ответ на события, происходящие в продуктах, поддерживаемых Firebase; например, отправка уведомлений всем зарегистрированным клиентам при вставке новой записи в базу данных Firebase.Но помимо того, что они запускаются в ответ на все виды событий, они также могут быть представлены как выделенные конечные точки HTTP, которые могут быть напрямую вызваны без необходимости использования среднего приложения.
До появления облачных функций для продуктов на базе Firebase, чтобы получить аналогичную функциональность, вам нужно было запустить VPS в Google Cloud, который асинхронно обрабатывал бы все запросы событий через очередь Firebase, отказоустойчивый, многоступенчатый конвейер заданий с несколькими рабочими.Но теперь Google рекомендует облачные функции в качестве полной замены очередей Firebase:
«возможно, по-прежнему существуют конкретные варианты использования очереди firebase, однако, если вы ищете масштабируемую систему массового обслуживания общего назначения для Firebase, то, скорее всего, создание облачных функций Google для Firebase-это идеальный маршрут.»
Чтобы считаться достойной функцией для миграции, облачные функции также соблазняют довольно большим количеством интеграций из коробки:
Интеграция Firebase Analytics Отправка уведомления с кодом купона пользователям, которые только что завершили покупку, или отправка запроса на опрос пользователям после обновления приложения.
Интеграция с проверкой подлинности Firebase Запуск функции при создании или удалении нового пользователя, отправка электронной почты для приветствия новых пользователей сразу после регистрации или очистка связанных с пользователем данных из баз данных реального времени при удалении учетной записи пользователя.
Интеграция базы данных Firebase в реальном времени запускает функцию при создании, обновлении или удалении данных по определенному пути в базе данных, отправке уведомления при записи данных в базу данных или модерации и удалении оскорбительных выражений из данных, записанных в базу данных.
Интеграция с облачным хранилищем-запуск функции при записи, обновлении или удалении объекта в определенном хранилище, изменение размера и преобразование изображений при загрузке нового изображения в облачное хранилище или модерирование изображений, загруженных в облачное хранилище, с помощью API Cloud Vision.
Интеграция конечных точек HTTP, позволяющая облачным функциям отображаться в виде URL-адресов, запускаемых при запросе на этот URL-адрес.
Кроме того, благодаря поддержке входа в Google, Facebook, Twitter и GitHub, существует большая гибкость в выборе варианта аутентификации. Настройка его также выглядит намного проще, чем в AWS, случай, который мы подробно рассмотрели в серии статей из трех частей AWS Lambda для нетерпеливых.
Но есть также ограничения в том, что единственным языком, который в настоящее время поддерживается, является Javascript в среде выполнения NodeJS. Google пытается исправить это, быстро объявив о поддержке и других языков, таких как C# или Python, в конечном итоге поставив его в один ряд с AWS и Azure.
Ценообразование основано на уже знакомой схеме оплаты по мере использования, доступном и масштабируемом решении, поскольку вам не нужно платить за время простоя вашего сервера, как в случае с полномасштабными VPS.Стартовый пакет Blaze стоит 0 долларов и обеспечивает 100 одновременных подключений, 1 ГБ хранилища базы данных и пропускную способность 10 ГБ в месяц.
Так является ли использование AWS или Azure все еще жизнеспособным вариантом? Как всегда, это то, что следует рассматривать в каждом конкретном случае, но нельзя отрицать, что переход Google на бессерверное использование делает использование, интеграцию и расширение продуктов, поддерживаемых Firebase, на любой из поддерживаемых платформ iOS, Android, Unity и Интернета намного более доступными.