Развертывание платформы FaaS на управляемых OVH Kubernetes с использованием OpenFaaS

Несколько недель назад я принимал участие в собрании, посвященном Кубернетесу, когда один из участников сделал замечание, которое вызвало у меня глубокий резонанс

Привет, Орасио, эта вещь из Kubernetes довольно крутая, но мне бы очень хотелось увидеть платформу «Функции как услуга». Большинство моих приложений можно легко сделать с помощью базы данных и нескольких бессерверных функций!

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

Будучи, прежде всего, веб-разработчиком, я могу определенно иметь отношение. Kubernetes — замечательный продукт — вы можете одним щелчком мыши устанавливать сложные веб-архитектуры, но как насчет базы данных + модели некоторых функций?

Ну, вы также можете сделать это с Kubernetes!

В этом прелесть богатой экосистемы Kubernetes: вы можете найти проекты, предназначенные для самых разных вариантов использования, от игровых серверов с Agones до платформ FaaS.

Для этого есть карта Хелма!
Говоря «Вы можете сделать это с Kubernetes! »Это почти новое« Для этого есть приложение! », Но это не помогает многим людям, которые ищут решения. Поскольку этот вопрос поднимался несколько раз, мы решили подготовить небольшое руководство по развертыванию и использованию платформы FaaS на управляемых OVH Kubernetes.

Мы начали с тестирования нескольких платформ FaaS на наших Kubernetes. Нашей целью было найти следующее решение:
  • Простота развертывания (в идеале с простой диаграммой Хелма)
  • Управляется как пользовательским интерфейсом, так и интерфейсом командной строки, потому что разные клиенты имеют разные потребности
  • Авто-масштабируемый, как в увеличенном, так и в уменьшенном смысле
  • Поддерживается всеобъемлющей документацией
Мы протестировали множество платформ, таких как Kubeless, OpenWhisk, OpenFaaS и Fission, и я должен сказать, что все они работали довольно хорошо. В конце концов, тем, кто достиг лучших результатов с точки зрения наших целей, был OpenFaaS, поэтому мы решили использовать его в качестве ссылки для этого поста в блоге.

OpenFaaS — платформа FaaS, родная из Кубернетеса


OpenFaaS
OpenFaaS — это платформа с открытым исходным кодом для создания бессерверных функций с помощью Docker и Kubernetes. Проект уже зрелый, популярный и активный, с более чем 14 тысячами звезд на GitHub, сотнями участников и множеством пользователей (как корпоративных, так и частных).

OpenFaaS очень прост в развертывании, используя диаграмму Хелма (включая оператор для CRD, т.е. функции get kubectl). Он имеет как CLI, так и пользовательский интерфейс, эффективно управляет автоматическим масштабированием, и его документация действительно всеобъемлющая (с каналом Slack для обсуждения, как приятный бонус!).

Технически OpenFaaS состоит из нескольких функциональных блоков:
  • Функция Watchdog. Крошечный HTTP-сервер golang, который превращает любой образ Docker в функцию без сервера
  • Шлюз API, который обеспечивает внешний маршрут к функциям и собирает метрики
  • Портал пользовательского интерфейса, который создает и вызывает функции
  • CLI (по сути, клиент REST для шлюза API), который может развернуть любой контейнер как функцию
  • Функции могут быть написаны на многих языках (хотя я в основном использовал JavaScript, Go и Python для целей тестирования), используя удобные шаблоны или простой Dockerfile.


Подробности настройки
www.ovh.com/fr/blog/deploying-a-faas-platform-on-ovh-managed-kubernetes-using-openfaas/