Azure Приложение функций: о чем публиковать sh контейнер Docker? - PullRequest
2 голосов
/ 05 марта 2020

Я знаю, что можно создать контейнер Docker на основе времени выполнения функций Azure. Пример этого процесса описан в этой статье .

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

Но здесь мне становится неясно: когда вы создаете новое приложение Functions на портале Azure, появляется переключатель с надписью «Опубликовать», который позволяет выбрать «Код» или «Docker Контейнер». .

Если я выберу «Docker Container», я могу настроить изображение Docker для использования. Это задокументировано в документах Microsoft .

Мои вопросы:

  1. Зачем мне развертывать контейнер Docker, который содержит среду выполнения функций в a приложение функций вместо простого развертывания его в Azure экземплярах контейнеров?
  2. Как контейнерный подход влияет на масштабирование? Кто отвечает за планирование и выполнение функций? Время выполнения в контейнере или время выполнения функций на Azure?

1 Ответ

0 голосов
/ 09 марта 2020
  1. Есть несколько преимуществ использования docker контейнера

    • Нет песочница (только windows планы), без ограничений
    • Гарантированно работает, поскольку один и тот же образ будет использоваться для тестов, постановки и производства (Не то, чтобы обычное развертывание не будет, но есть такие вещи, как, например, другая версия Node.JS)
    • Для таких языков, как Python, существуют случаи, когда необходимо построить внешние зависимости (библиотеки C ++ и т. Д. c.), И с контейнерами вы можете гарантировать, что все работает должным образом, поскольку контейнер уже был протестирован (и только что собран один раз). )
    • Авто Масштаб. При развертывании в Azure Экземпляры-контейнеры приложение-функция не будет иметь такой же динамический масштаб c, как при развертывании в приложении-функции.
  2. 2 основные вещи, которые нужно понять - вызовы и экземпляры.

    • Каждый экземпляр, т. Е. Время выполнения функций и, в данном случае, контейнер, может обрабатывать много вызовов в зависимости от того, какой ЦП / ОЗУ имеет
    • Количество экземпляров увеличивается на Azure на основе событий, таких как HTTP-запросы, сообщения очереди и т. Д. c.
    • При работе в kubernetes масштабирование выполняется такими решениями, как KEDA / KNative / HPA или аналогичный. Кроме того, используя Виртуальные узлы AKS (примечание ограничения ), вы можете масштабировать без добавления «реальных» узлов в ваш кластер AKS.
...