Kubernetes становится де-факто стандартом для управления приложениями в облаке. Благодаря операторам Kubernetes может быть расширен для управления практически любыми ресурсами приложений: не только контейнерами и микросервисами, но также виртуальными машинами, облачными функциями и событиями, управляемыми облачными сервисами, политиками, сетками и т. Д. Каждый ресурс может быть объявлен и настроен с помощью нескольких строк YAML. Однако, хотя YAML является прекрасным языком для выполнения некоторой базовой настройки, мы считаем, что разработчикам приложений необходимо рассуждать о приложениях на более высоком уровне абстракции, используя языки и инструменты, с которыми они знакомы.
Библиотека SolSA для Node.js - сокращение от Solution Service Architecture - позволяет определять архитектуру облачных приложений как программ. SolSA позволяет разработчикам настраивать ресурсы, управляемые Kubernetes, путем написания кода JavaScript или TypeScript вместо YAML. SolSA автоматически переводит код, написанный разработчиком, в требуемый YAML нижнего уровня. SolSA интегрируется с IDE, такими как Visual Studio Code, для обеспечения онлайн-проверки, завершения кода и документации различных ресурсов и параметров конфигурации.
Но SolSA - это не просто синтаксис. SolSA позволяет определять простые или сложные архитектурные шаблоны, которые можно использовать во многих приложениях. Эти шаблоны могут быть умными и варьировать свое содержимое в зависимости от параметров конфигурации или контекста развертывания.
Первый пример
SolSA предлагает абстракцию ContainerizedService, которая объединяет развертывание Kubernetes и службу Kubernetes. Эта контейнерная служба предоставляет небольшой набор тщательно отобранных параметров конфигурации, включая имя службы, образ контейнера и порт службы.
SolSA может автоматически получить Ingress для ContainerizedService и адаптировать этот входящий трафик к контексту развертывания. Под капотом SolSA использует Kustomize, чтобы разрешить таргетинг на несколько сред, например, локальный кластер разработки, Red Hat OpenShift в кластере IBM Cloud или кластер IBM Cloud Kubernetes Service.
Несколько ресурсов можно объединить в Bundle.
Чтобы сгенерировать YAML для этого примера, мы вызываем команду solsa yaml
:
solsa yaml hello-world.js
Как показано в этом примере, код SolSA намного короче соответствующего YAML. Что еще более важно, код SolSA проще и требует меньшего опыта от разработчика, чем YAML.
SolSA взяла на себя многие детали за нас. Он автоматически связал развертывание и сервис Kubernetes с метками и селекторами. Он настроил датчики готовности и живучести по умолчанию. Наконец, он настроил вход с учетом специфики моего кластера Kubernetes, в частности, для обработки когда-либо проблемной конфигурации TLS. При необходимости, выбор по умолчанию, сделанный SolSA, конечно, может быть выборочно отменен.
Выводы
Библиотека SolSA позволяет указывать архитектуру облачных приложений, а также многократно используемые архитектурные шаблоны в виде программ JavaScript или TypeScript. SolSA переводит код в YAML, который можно развернуть с помощью простого kubectl
. SolSA работает в автономном режиме. На ваш кластер нечего устанавливать.
SolSA преследует одну цель и фокусируется на одном:
- SolSA не поддерживает ничего, кроме ресурсов Kubernetes, потому что 1) Kubernetes не зависит от облака и поставщика, и 2) мы считаем, что довольно скоро, благодаря операторам, Kubernetes будет управлять всеми вашими ресурсами.
- SolSA - это не переосмысление приложений, проектов, микросервисов, программных стеков, управления жизненным циклом, конвейеров CI / CD, GitOps и т. Д., Потому что, честно говоря, многие люди и инструменты уже этим занимаются.
SolSA - проект с открытым исходным кодом с лицензией Apache 2.0. Мы приветствуем вклады. Следите за новостями!
Ссылки
- Пакет NPM: https://www.npmjs.com/package/solsa
- Репозиторий GitHub: https://github.com/IBM/solsa
- Примеры и руководства: https://github.com/IBM/solsa-examples