Почему безсерверные платформы с открытым исходным кодом (например, OpenWhisk) нуждаются в оркестраторе (например, Kubernetes)

В настоящее время я работаю над частным облаком, таким как AWS, и использую AWS lambda для безсерверных. Это очень круто, как фреймворк, поэтому я провел несколько исследований, чтобы найти альтернативы с открытым исходным кодом. Я вышел с некоторыми именами: OpenWhisk, OpenFaas. Эти структуры используют Docker для контроля контейнеров, в которых выполняется код. Я новичок в этих технологиях, поэтому я все еще запутался в некоторых аспектах.

Вот моя точка зрения: я не понимаю, нужно ли использовать эти фреймворки с таким оркестром, как Кубернетес. Если да, как это работает с оркестром?

Если у вас есть какая-то информация, ссылки или документация, это будет здорово!

Большое спасибо.

2 ответа

Kubernetes - это хорошо известный инструмент оркестровки контейнеров, который можно использовать для развертывания собственных приложений контейнера. Развертывание OpenWhisk через Kubernetes может использовать возможности, предоставляемые Kubernetes, для лучшего контроля и управления контейнерами OpenWhisk, что может привести к стабильной среде выполнения OpenWhisk.

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

Auto-scalability inheritance

Одной из замечательных возможностей Serverless является встроенная автоматическая масштабируемость функций, поскольку, будучи разработчиком, вам не нужно ничего делать, чтобы использовать эту функциональность. С Kubernetes вы также можете использовать автоматическое масштабирование ваших модулей и даже узлов, но это требует некоторой настройки и немного медленнее, поскольку этот процесс запускается только при применении определенных правил.

OpenWhisk фактически обходит k8s, чтобы запланировать контейнеры, которые выполняют пользовательские функции (известные как действия в OpenWhisk). Контейнеры функций полностью управляются Invokers, которые являются оркестраторами OpenWhisk, специально созданными для обработки функций.

Компоненты системы OpenWhisk управляются Kubernetes. Но сам Kubernetes, как правило, слишком медленный для контейнеров с недолговечными функциями, и его запуск может занять много секунд. Это не запуск для функций, которые могут выполняться в течение миллисекунд. Кубе не был предназначен для производства через десятки тысяч контейнеров с высокой скоростью.

Возможно, вы также захотите взглянуть на Knative, который является относительно новым, но очень тесно связан с Kubernetes.

Вот 3 статьи, которые могут быть информативными для вас:

Наконец, стоит отметить, что OpenWhisk может быть развернут на baremetal и виртуальных машинах, а также в Mesos DC/OS или Docker Compose, что дает вам множество вариантов для пользовательских развертываний.

Другие вопросы по тегам