Современные платформенные сервисы давно вышли за рамки одного вычислительного узла и взаимодействуют через сеть. Настройка и поддержка таких систем является сложной задачей, требующей большого количества усилий разработчиков.

С целью решения этой проблемы создаются языки высокоуровневого моделирования облачных приложений, а также системы автоматизации, выполняющие связанные задачи управления.

Одним из таких языков является TOSCA. Он позволяет создавать декларативные описания в соответствии с набором соглашений на основе YAML, определяя управление жизненным циклом сервиса. Язык TOSCA абстрактный и гибкий, что позволяет применять его в широком спектре задач и встраивать слой TOSCA между конечным пользователем и более низкоуровневыми инструментами автоматизации.


Важной частью стандарта TOSCA является механизм Substitution Mapping, описывающий правила композиции нескольких шаблонов

Этот же механизм позволяет создать систему оркестрации, которая может работать без предположений о внешнем мире, быть доменно-независимой. Расширение будет производиться только через написание новых TOSCA шаблонов. Такая система не будет зависеть от облачного провайдера, набора поддерживаемых сервисов и даже, в некоторой степени, инструмента развёртывания.


Создание данной системы является актуальной задачей, так как на данный момент никакая система не поддерживает стандарт TOSCA, в частности Substitution Mapping, в полной мере


Создаваемая система должна иметь приложение к реальным задачам. В рамках работы мы ограничиваемся воспроизводимым развёртыванием сервиса Kubernetes. Развитая экосистема, поддержка всеми облачными провайдерами, а также множество взаимосвязанных компонентов, входящих в состав платформы, делают Kubernetes хорошим кандидатом для рассмотрения и проверки ограничений TOSCA.


В рамках работы необходимо …


В рамках исследования было проведено сравнение существующих систем, использующих TOSCA,


Наиболее примечательными оказались следующие системы:

  • A4C является развитой системой оркестрации с заявленной поддержкой TOSCA. На деле поддерживается собственная версия стандарта, слегка отклоняющаяся от исходного, что невилирует преимущества стандартизации. Также заявленная поддержка substitution mapping не является полноценной, так как требует написания шаблона под каждую специализацию. В декабре 2022 года проект был заброшен, разработка приостановлена
  • Проект Ubicity является интересным для рассмотрения, так как реализует полнофункциональную поддержку SM. Однако закрытость проекта не позволяет изучить его возможности глубже
  • ИСП РАН поддерживает собственную систему оркестрации Clouni, реализующую собственный механизм, отличающийся от SM. Тем не менее, в Clouni реализовано большое число механизмов обработки графа TOSCA, которые можно переиспользовать
  • Отдельно стоит выделить систему валидации и нормализации шаблонов Puccini. На данный момент эта система поддерживает наиболее широкое подмножество TOSCA, легко встраиваема в другие системы

Также в рамках работы проведено сравнение методов развёртывания Kubernetes с целью выявления достоинств и недостатков каждого, а также общих для всех методов параметров конфигурации

Основными способами развертывания