В чем разница между бессерверными контейнерами и App Engine, гибкими с настраиваемыми средами выполнения? - PullRequest
0 голосов
/ 15 февраля 2019

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

Как описано в статье:

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

и на странице Решения GCP

Безсерверные контейнеры в облачных функциях позволяют вам запускать свои собственные контейнерные рабочие нагрузки в GCP со всеми преимуществамибез сервера.И вы все равно будете платить только за то, что используете.Если вы хотите узнать больше о бессерверных контейнерах, пожалуйста, подпишитесь на альфа.

Поэтому мой вопрос , как этот безсерверный контейнер отличается от механизма приложений, гибкого и настраиваемого времени выполнения, которое также используетфайл docker?

И это мое подозрение, поскольку упомянутое имя - Бессерверные контейнеры в облачных функциях , различие может включать роль облачных функций.Если да, то какую роль играют облачные функции в безсерверных контейнерах?

Пожалуйста, уточните.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Что такое безсерверный контейнер?

Как указано в официальном сообщении (поиск по безсерверным контейнерам), это в основном облачная функция, работающая внутри пользовательскогосреда, определяемая Dockerfile.

В официальном сообщении блога говорится:

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

Таким образом, вместо развертывания вашего кода на CF, вы также можете просто развернуть образ Docker со временем выполнения и кодом для выполнения.

В чем разница между этими облачными функциями и настраиваемыми средами исполнения по сравнению с App Engine Flexible?

Существует 5 основных отличий:

  1. Сеть : В GAE Flexible вы можете настроить сеть, в которой запускаются экземпляры.Это позволит вам добавить правила брандмауэров, чтобы ограничить входящий и исходящий трафик, заблокировать определенные порты или указать SSL , который вы хотите запустить.

  2. Тайм-аут : облачные функции могут работать максимум 9 минут , с другой стороны, гибкие, могут работать бесконечно.

  3. среда только для готовности : Среда Cloud Functions доступна только для чтения, в то время как Flexible может быть записан (это предназначено только для хранения спонтанной информации, поскольку после перезапуска или завершения экземпляра Flexible все сохраненные данные будут потеряны) .

  4. Cold Boot : Облачные функции быстро разворачиваются и запускаются быстрее по сравнению с Flexible.Это связано с тем, что Flexible работает внутри виртуальной машины, поэтому для ее запуска требуется дополнительное время.

  5. Как они работают : облачные функции управляются событиями(например: загрузка фотографии в облачное хранилище с выполнением функции), с другой стороны, гибкий - это управляемый запросом (например: обработка запроса, поступающего из браузера)

Как вы можете видеть,возможность развертывания небольшого объема кода без необходимости заботиться обо всех перечисленных выше особенностях.

Кроме того, учтите, что безсерверные контейнеры все еще находятся в альфа-версии, поэтому многие вещи могут измениться вбудущее, и еще не так много документации, объясняющей его поведение.

0 голосов
/ 15 февраля 2019

Что такое облачные функции?

Из официальной документации :

Облачные функции 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.Вы можете делать «почти» все, что захотите.

...