VMware Dispatch: новый фреймворк для работы с serverless-приложениями
2017-й стал годом расцвета Kubernetes. Как отметили в RightScale, процент компаний, работающих с Kubernetes, за прошлый год увеличился с 7 до 14%. Kubernetes вошел в пятерку самых популярных DevOps-инструментов, которые «приняли на вооружение» в 2017 году, и стал вторым среди планируемых к внедрению.
Kubernetes стали чаще использовать средние и малые компании. Кроме того, фреймворк уже внедрили и крупные организации — Google, Red Hat, IBM, Microsoft и другие.
Одна из причин популярности платформы — богатый набор инструментов, разрабатываемых на её основе. Одним из таких релизов стал проект VMware Dispatch — фреймворк для создания и работы с serverless-приложениями. В этой статье рассмотрим новый продукт, а также расскажем о его особенностях и возможностях.
/ Pixabay / distel2610 / CC
Устаревшие приложения все чаще переносятся на архитектуру микросервисов для повышения масштабируемости и скорости разработки. Однако эти выгоды сказываются на себестоимости и влекут за собой сложность интеграции.
Решить проблему помогают serverless-архитектуры которые позволяют создавать и запускать сервисы без необходимости управления инфраструктурой. Serverless-приложения строятся на основе функций, каждая из которых выполняют одну небольшую и специфическую задачу (например, отвечает за обработку базы данных).
Решение Dispatch от VMware построено на базе Kubernetes и предоставляет инструменты и сервисы для развертывания и управления serverless-архитектурами (FaaS, или «функция как услуга»).
Особенности Dispatch
Однако, по словам разработчиков, Dispatch не является рядовым FaaS-решением. Новый фреймворк дает возможность интеграции с одной или несколькими реализациями FaaS: на момент запуска Dispatch включал драйверы для OpenFaaS и Riff (поддержка других FaaS-реализаций будет добавлена в будущем).
Как отмечает Коди Де Аркланд (Cody De Arkland), старший системный инженер VMware, Dispatch использует движок OpenFaaS, но с неким «волшебным соусом», повышающим гибкость технологии и позволяющим запускать одну и туже функцию в нескольких средах одновременно.
Структура Dispatch включает в себя следующие сервисы:
- Event gateway;
- Function gateway;
- Function schema validation;
- FaaS Implementation (OpenWhisk);
- Image Manager;
- Identity Service;
- API Gateway;
- CLI;
- UI.
Все сервисы развертываются как контейнеры на Kubernetes. Они используют единое центральное хранилище данных, доступ к которому осуществляется через интерфейс, обеспечивающий адекватный уровень абстракции. Это позволяет избежать привязки к какой-либо базе данных и дает возможность проводить независимые тесты сервисов.
Dispatch предоставляет среду, в которой можно управлять всеми функциями и проверять их. Pivotal Container Service (PKS) от VMware обеспечивает безопасный сервис Kubernetes. Также фреймворк позволяет работать в многопользовательской среде и интегрируется с сервисами, поддерживающими OAuth 2.0, такими как GitHub и Active Directory.
Дополнительно Dispatch включает драйвер VMware vCenter Server, который позволяет функциям взаимодействовать с событиями vCenter.
Особенности развертывания
Dispatch — проект с открытым исходным кодом. Исходники и документацию можно найти в репозитории на Github. Как отмечает, в своем блоге Коди Де Аркланд, перед установкой Dispatch необходимо сконфигурировать кластер Kubernetes с помощью Kubeadm и настроить менеджер пакетов Helm. Алгоритм для начала работы с Dispatch Коди подробно описал в своем блоге (руководство написано для CentOS).
Также пошаговую инструкцию по развертыванию Dispatch вы можете найти в официальном репозитории на GitHub.
P.S. Вот еще несколько постов из блога 1cloud:
- Балансировка нагрузки системы: цели и способы
- Как создать компьютерный класс в облаке
- Объектное хранилище файлов: об особенностях и областях применения
- Облачные тенденции 2017 года (Часть 1, Часть 2, Часть 3, Часть 4, Часть 5)
- Все, что нужно знать о сетевом нейтралитете: принципы и защита