Проект Kyma: как разрабатывать приложения для SAP с использованием технологии Kubernetes
Привет, Хабр! Давай сегодня поговорим о том, зачем SAP придумал Kyma и что это такое.
Kyma /kee-ma/в переводе с греческого - волна.
Это проект с открытым исходным кодом, построенный на основе Kubernetes. Основное назначение Kyma – упрощение создания serverless и микросервисных cloud-native приложений для расширения функциональности SAP бизнес-решений. То есть с помощью нее можно создавать необходимую компании функциональность, но которая по тем или иным причинам не доступна в стандартных SAP решениях (например, SAP Ariba, SAP Business Suite, S/4HANA и др.).
Проект Kyma первоначально был инициирован компанией SAP как open-source. В настоящее время он является участником Cloud Native Computing Foundation (CNCF). CNCF объединяет ведущих разработчиков, конечных пользователей и поставщиков различных cloud-native технологий и решений с открытым исходным кодом и является частью некоммерческой организации Linux Foundation. Например, здесь можно посмотреть ландшафт проектов CNCF.
Наверно возникает вопрос – зачем требуется использовать Kyma вместо стандартного кластера Kubernetes? Несмотря на то, что Kubernetes (k8s) является платформой полного набора компонентов для управления жизненным циклом распределенных приложений, она оставляет за нами выбор решений для множества задач. Это может быть хранилище данных, резервное копирование, мониторинг шины обмена сообщениями, оркестровка сервисов и т.п. Для всех этих задач open source сообщество разработала большое количество проектов, решений и сервисов (например, Istio, Jaeger, Linkerd, и др.). Выбирая наиболее подходящий, можно гибко конфигурировать целевые системы. Но, с другой стороны, потребуется решение многих технических вопросов. Например, как установить то или иное решение/сервис, интегрировать его с другими выбранными сервисами, настроить сквозной мониторинг и др. Поэтому на реализацию оптимальной целевой архитектуры на кластере k8s может уйти много времени, экспертных знаний и дополнительных инженеров. Вот как раз для этого и можно использоваться Kyma.
Она дает разработчикам готовую и оптимальным образом сконфигурированную платформу для реализации облачных решений. Нет необходимости самостоятельно интегрировать все эти инструменты: в Kyma уже позаботились, чтобы все они хорошо работали вместе и всегда были в актуальном состоянии. Это позволяет разработчикам практически сразу начать создание своих приложений.
Kyma состоит из нескольких компонентов, основные из которых:
- Application connector используется для подключения любого приложения к кластеру Kubernetes и предоставления его API и событий (events) через Kubernetes Service Catalog.
- Serverless позволяет создавать расширения для приложения через механизм функций (код Node.js). Код функции может запускаться вызовами API, а также событиями, поступающими из внешней системы.
- Service Catalog предоставляет простой доступ к сервисам, которыми управляют сервисные брокеры, и использует их в приложениях. Например, можно легко применять сервисы сторонних облачных платформ, таких как Azure, AWS или GCP.
Кроме этого в Kyma интегрированы одни из самых оптимальных и функциональных сервисов, использующихся в разработке cloud-native приложений:
- Мониторинг и оповещение основаны на Prometheus и Grafana.
- Для логирования используется Loki.
- Обработка событий происходит в NATS.
- Как средство управления и хранения данных/объектов используется Rafter и MinIO.
- Оркестровка сервисов ведется через Istio.
- Трассировка распределенных микросервисов осуществляется в Jaeger.
- Аутентификация поддерживается Dex и др.
Давайте разберемся с использованием Kyma на примере расширения SAP Service Cloud и SAP Field Service Management для работы с клиентскими отзывами.
1. Потребитель пишет комментарий на Facebook с номером своего заказа.
2. Аналитический микросервис (µ-сервис) делает его сентиментный анализ.
3. И если комментарий отрицательный, создает заявку в SAP Field Service Management (FSM); администратор FSM назначает ее техническому специалисту.
4. Далее при завершении работы над заявкой запускается lambda-функция.
5. Lambda-функция создает ответ клиенту на основе результатов работы над заявкой и отправляет его.
Для установки доступны две версии: полная (Kyma) и облегченная (Kyma Lite). Облегченная версия используется для локальной разработки и не устанавливает такие компоненты, как ведение журнала, мониторинг и т.д. Полный список всех компонентов, установленных для полной и облегченной версии, можно найти тут. Можно кастомизировать набор устанавливаемых компонентов через установочный yaml-файл.
Сейчас вендор также запустил SAP Cloud Platform Extension Factory, Kyma runtime. Благодаря этому теперь можно получить Kubernetes кластер в составе SAP Cloud Platform вместе с другими сервисами платформы для разработки приложений. Extension Factory, Kyma runtime работает на кластере Kubernetes который разворачивается через Gardener (еще один open source проект SAP, платформа для управления кластерами Kubernetes) в выбранном пользователем облачном провайдере и в необходимом регионе. В дальнейшем Extension Factory, Kyma runtime будет доступна в триальном режиме в SAP Cloud Platform.
Давайте подведем итоги. Kyma основана на компонентах и стандартах с открытым исходным кодом. Она обеспечивает развертывание высокомасштабируемых приложений в архитектуре контейнерных микросервисов и позволяет применять лучшие практики для производительности, масштабируемости, эффективности и безопасности при разработке приложений.
Если вдруг вам захочется еще прочитать про Kyma, то вот дополнительные материалы:
SAP Cloud Platform Discovery Center
Blog post: SAP Cloud Platform Extension Factory, Kyma runtime: How to get started
Kyma runtime onboarding mission
Автор – Георгий Шутов, эксперт по платформенным решениям SAP CIS