Что такое облачные функции?
Из официальной документации :
Облачные функции Google - это безсерверная среда выполнения для создания и подключения облачных сервисов.Облачные функции пишут простые, универсальные функции, которые прикрепляются к событиям, генерируемым вашей облачной инфраструктурой и сервисами.Ваша функция срабатывает при срабатывании просматриваемого события.Ваш код выполняется в полностью управляемой среде.Нет необходимости предоставлять какую-либо инфраструктуру или беспокоиться об управлении какими-либо серверами.
Проще говоря, облачная функция запускается некоторым событием (HTTP-запрос, сообщение PubSub, вставка файла облачного хранилища ...), запускает код функции, возвращает результат и затем функция умирает.
В настоящее время доступны четыре среды выполнения :
- Node.js6
- Node.js 8 (бета)
- Python (бета)
- Go (бета)
С Бессерверными контейнерамидля продукта Cloud Functions предполагается, что вы можете предоставить собственную среду выполнения с помощью образа Docker.Но жизненный цикл облачной функции будет таким же:
It is triggered > Runs > Outputs Result > Dies
Приложения App Engine Flex
Приложения, работающие в гибкой среде App Engine развернуты на виртуальных машинах, то есть экземплярах Google Cloud Compute Engine.Вы можете выбрать тип машины, которую вы хотите использовать, и ресурсы (ЦП, ОЗУ, дисковое пространство).Гибкая среда App Engine автоматически масштабирует ваше приложение вверх и вниз, одновременно балансируя нагрузку.
Как и в случае с облачными функциями, есть среды выполнения, предоставляемые Google, но если вы хотите использовать альтернативную реализацию Python, Java, Node.js, Go, Ruby, PHP, .NET, вы можетеиспользуйте Custom Runtimes .Или даже вы можете работать с другим языком, таким как C ++, Dart ..., вам просто нужно предоставить образ Docker для вашего приложения.
В чем различия между облачными функциями и приложениями App Engine Flex?
Основное различие между ними заключается в его жизненном цикле и сценарии использования.
Как отмечалось выше, облачная функция имеет определенный жизненный цикл и умирает, когда завершается задача.Они должны использоваться, чтобы делать 1 вещь и делать это хорошо.
С другой стороны, в приложении, работающем в среде GAE Flex, всегда будет запущен хотя бы 1 экземпляр.Типичным случаем для этих приложений является обслуживание нескольких конечных точек, где пользователи могут выполнять вызовы REST API.Но они обеспечивают большую гибкость, поскольку у вас есть полный контроль над предоставленным Docker Image.Вы можете делать «почти» все, что захотите.