1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kusionstack-kusion-in-action-book

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
a-faq.md 7.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 07:05 e316555

Приложение A: Часто задаваемые вопросы

A.1 Концепция и определение

A.1.1 Kusion

Fusion Cloud Native on Kubernetes. Kusion — это слово, которое происходит от fusion (что означает «слияние») + kubernetes. Это основанная на облачной инфраструктуре система, которая через определение облачного программируемого уровня доступа предоставляет полный набор решений, включая язык конфигурации, интерфейс модели, инструменты автоматизации и лучшие практики. Она связывает облачную инфраструктуру с бизнес-приложениями, соединяет различные команды, которые определяют и используют инфраструктуру, и объединяет этапы разработки, тестирования, интеграции, публикации и обслуживания в жизненном цикле приложений. Система служит для автоматизации облачных систем и ускоряет внедрение облачных технологий.

Обычно, когда мы говорим о Kusion, мы имеем в виду этот комплексный набор решений. В то же время экосистема инструментов Kusion включает в себя такие инструменты, как kcl (Kusion Configuration Language), KusionCtl (Kusion Kubernetes Client) и KCL IDE. Эти инструменты пронизывают все аспекты системы Kusion и обеспечивают автоматизацию.

A.1.2 KCL (Kusion Configuration Language)

Это язык, разработанный командой облачной инженерии для определения и проверки динамических конфигураций строгих типов. Он фокусируется на конфигурации и стратегическом программировании и предназначен для проектирования облачных конфигурационных систем. Однако, как язык конфигурации, он не ограничивается облачными технологиями. KCL основан на концепциях декларативного и объектно-ориентированного программирования и был значительно оптимизирован и расширен для удовлетворения потребностей облачных конфигураций. Первоначально вдохновлённый языком Python 3, KCL теперь развился в независимый язык, ориентированный на стратегии конфигурации.

A.1.3 kcl (в нижнем регистре) — команда строки

kcl — это инструмент командной строки, который может компилировать код KCL в низкоуровневые данные, такие как YAML или JSON. Обычно KCL пишется заглавными буквами, а kcl используется для обозначения инструмента командной строки.

A.1.4 KCLVM

Virtual Machine to parse and compile KCL. Это проект разработки инструмента командной строки kcl, а также название репозитория кода для инструмента командной строки kcl. KCLVM использует такие языки, как Python и Rust, для смешанной разработки.

A.1.5 KusionCtl

Kusion Kubernetes Client. KusionCtl — это инструмент командной строки, предназначенный для упрощения использования Kubernetes пользователями. Он встроен в поддержку компиляции KCL, поддерживает аутентификацию с помощью функции входа в систему, поддерживает доступ к нескольким кластерам, предоставляет сводку состояния ресурсов и соответствующие белые экраны, отслеживает изменения моделей пользователей и связанных моделей, обеспечивает визуализацию ссылок, сравнение в реальном времени, визуализацию ключевых ресурсов и обнаружение аномалий.

A.1.6 Konfig

Kusion Config. Konfig — это репозиторий кода KCL, в котором организована конфигурация инфраструктуры для различных приложений в области муравьёв. Согласно иерархии команд, репозиторий Konfig делится на две части: «базовая конфигурация кода» и «бизнес-конфигурация кода». Используется стратегия разработки основной ветви и выпуска ветвей.

A.2 Языковой дизайн

A.2.1 Почему в KCL нет поддержки for-циклов?

В KCL не поддерживается использование for-циклов. Вместо этого предоставляются такие функции, как вывод выражений и all/any/map/filter, которые позволяют обрабатывать элементы коллекции. Хотя потребность в for-циклах существует, она не является острой в текущей ситуации, поэтому поддержка for-циклов пока не предоставляется. Тем не менее, можно использовать for-циклы и лямбда-функции для создания эквивалентных for-циклов в KCL.

result = [(lambda x: int, y: int -> int {
    # 在其中书写过程式的 for 循环逻辑
    z = x + y
    x * 2
})(x, y) for x in [1, 2] for y in [1, 2]]  # [2, 2, 4, 4]

A.2.2 Неизменность переменных по умолчанию

Переменные в KCL являются неизменяемыми, что означает, что переменные верхнего уровня, начинающиеся с подчёркивания (_), не могут быть изменены после инициализации.

schema Person:
    name: str
    age: int

a = 1  # a会输出到YAML中,一旦赋值不可修改
_b = 1  # _b变量以下划线开头命名,不会输出到YAML中, 可多次赋值修改
_b = 2
alice = Person {
    name = "Alice"
    age = 18
}

Существует два типа переменных, которые не могут быть изменены:

  • Переменные верхнего уровня вне схемы, не начинающиеся с подчёркивания.
a = 1  # 不可变导出变量
_b = 2  # 可变非导出变量

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/kusionstack-kusion-in-action-book.git
git@api.gitlife.ru:oschina-mirror/kusionstack-kusion-in-action-book.git
oschina-mirror
kusionstack-kusion-in-action-book
kusionstack-kusion-in-action-book
main