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. Мы приветствуем вклады. Следите за новостями!

Ссылки