Шаблоны Application Orchestration Service (AOS) представляют собой текстовые файлы в формате YAML или JSON. Они описывают облачные объекты, которые вам нужны, включая приложения, ресурсы и сервисы. AOS автоматически создает различные облачные объекты из шаблонов AOS.
Каждый автоматизированный процесс требует описательного языка для управления его потоком выполнения. Например, shell-скрипт (текстовый файл) описывает, как автоматически выполнять команды. Аналогично, шаблон AOS описывает процесс создания и удаления облачных объектов.
Ниже приведена примерная логика выполнения shell-скрипта:

Shell-скрипт имеет следующие свойства:
Шаблон AOS имеет такую же логику выполнения, как shell-скрипт. Сервис AOS выступает в роли интерпретатора шаблонов AOS и выполняет действия согласно шаблонам. Шаблон AOS можно рассматривать как стандарты облачной автоматизации.
Хороший shell-скрипт или функция должна иметь входные данные, логику выполнения и возвращаемые значения. Аналогично, хороший шаблон также должен иметь Ввод, Оркестрация, и Выводы. Хороший шаблон облегчает передачу знаний и совместный обмен.
Рисунок 1 Сравнение функции и шаблона

Облачные объекты могут быть облачными ресурсами, сервисами или приложениями. Облачные ресурсы являются наиболее распространёнными облачными объектами. AOS рассматривает облачные объекты как элементы. Шаблон представляет собой набор элементов.
Вам необходимо задать входные параметры для создания любого облачного объекта. После создания облачного объекта отображается результат. На следующей схеме используется ECS (VM) в качестве примера.
Figure 2 Inputs and outputs of a cloud object

Входные параметры, также называемые параметрами, являются условиями для создания облачного объекта. Параметры, требуемые облачным объектом, определяются характеристиками объекта. Некоторые объекты требуют множества параметров, например, VMs.
Figure 3 Inputs

Синтаксис выглядит следующим образом:
Cloud object (element):description: description of the cloud objectproperties: # Parameters of the cloud objectProperty 1: # Parameter 1Property 2: # Parameter 2Property...: # Parameter...
Если элементы инициализируются последовательно в порядке их расположения, оркестрация не требуется. AOS поддерживает оркестрацию элементов со сложными зависимостями между ними. Инициализация (вход) элемента зависит от результата (выход) другого элемента. Такие отношения могут быть заданы с помощью шаблона AOS.
В шаблоне AOS вы можете указать вывод любого элемента в качестве ввода другого элемента. Процесс инициализации может свободно контролироваться, что называется оркестрацией. Только оркестрация может удовлетворять различные требования автоматизации.
Шаблон AOS — это набор объектов, которые вы хотите оркестровать. Более конкретно, шаблон AOS — это набор объектов, которые вы хотите контролировать во время процесса инициализации.
Рисунок 4 Оркестрация

Отношения между элементами классифицируются на два типа: зависимость и включение.
Выводы — это результаты, возвращаемые после успешного создания объекта облака. Возвращаемые результаты объекта облака определяются характеристиками объекта. Некоторые объекты имеют много результатов, а некоторые имеют мало результатов.
Вывод объекта облака используется в следующих двух сценариях. Как правило, он используется вместе с the get_attribute встроенная функция.
Синтаксис выглядит следующим образом:
# Result of another ECS. The service name is Service.value: {get_attribute: [ecs, Service, ports, 0, nodePort]}