Статьи

Использование Cloudify для расширения Murano Past OpenStack на несколько облаков

OpenStack Liberty - NFV |  OpenStack Heat |  OpenStack Murano |  Релизы OpenStack |  OpenStack Summit |  Версии OpenStack |  Облачная автоматизация |  Докер |  Кубернетес |  OpenStack Hybrid Cloud

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

Авторы этой статьи: Ури Коэн и Лютер Траммелл

Таким образом, для тех, кто незнаком, OpenStack Murano представил каталог приложений для OpenStack, который позволяет разработчикам приложений и администраторам облачных вычислений публиковать свои готовые к работе в облаке приложения в удобном для навигации и категоризованном каталоге.

Для  пользователей OpenStack это по сути означает  то, что теперь они могут отправлять и загружать пакеты приложений в Murano в различных форматах, от   шаблонов оркестровки Heat , до пакетов MuranoPL (язык Murano) и даже изображений Glance, и развертывать эти загруженные приложения в OpenStack по адресу щелчок кнопки. Раньше, если вы хотели настроить кластер Hadoop или кластер Kubernetes, это требовало ручной настройки и настройки, чтобы связать все это вместе. Большой новостью стало то, что внезапно облачные пользователи, как опытные, так и неопытные, могут использовать этот каталог для создания надежных сред приложений одним нажатием кнопки.

Организовать развертывание приложений в OpenStack, VMware, AWS и т. Д. Получите Cloudify.    ИДТИ

В Murano новый бэкэнд предоставляет роли и разрешения для администрирования приложений — так что вы можете иметь роль разработчика приложения (который разрабатывает приложение и загружает его в Murano), роль пользователя в облаке (который использует загруженные приложения) и роль администратора, которая сама управляет сервисом Murano. Это значительно упрощает управление приложениями в OpenStack.

Murano делает все это возможным в OpenStack. Однако, когда приложения развертываются или совместно используются несколькими облаками или вообще не развертываются в OpenStack, Murano мало что может сделать для вас.

Murano, как и Cloudify, может быть подключен со встроенной системой плагинов, поэтому для команды Cloudify было вполне естественным партнерство с командой разработчиков Murano для создания плагина Cloudify для Murano. Этот плагин позволяет Murano напрямую управлять шаблонами TOSCA и развертывать их в OpenStack и других облаках напрямую, используя Cloudify. Это происходит в дополнение, а не вместо уже существующих интеграций с Heat, Glance и самим MuranoPL. Используя этот плагин, пользователи могут существенно расширить Murano для любой инфраструктуры и даже развертывать и моделировать приложения в смешанных инфраструктурах.

Кроме того, Cloudify добавляет возможность подключаться к дополнительным технологиям, недоступным только через Murano, например, к контроллерам SDN вне OpenStack (для приложений, ориентированных на NFV, AKA VNF). Он также позволяет легко моделировать сложные топологии приложений в стандартном формате (например, смешанные рабочие нагрузки контейнерных неконтейнерных компонентов, например развертывание веб-приложения как части контейнера Docker и базы данных mongo непосредственно на виртуальной машине OpenStack). Вы также автоматически получаете все функциональные возможности после развертывания, доступные в Cloudify, управление приложениями и мониторинг, исцеление и масштабирование, а также переносимость приложений через облака.

Лично для меня это был отличный опыт работы со звездной инженерной командой в Mirantis, чтобы распространить Murano на дополнительные облака и варианты использования. Мы ожидаем, что эта интеграция упростит развертывание в гибридных средах, а также в других популярных облаках, включая VMware, GCP и другие.

Теперь посмотрим, как это работает под капотом

Плагин содержит два основных файла Python: cloudify_tosca_package.py, который определяет способ  упаковки чертежей Cloudify TOSCA , и cloudify_client.py, который взаимодействует с API отдыха Cloudify Manager через HTTP.

Когда вы упаковываете архив чертежей для загрузки в Murano, он должен иметь примерно такую ​​структуру:

./

| LICENSE

| logo.png

| manifest.yaml

| README.rst

| Resources

| | some-blueprint.yaml

| | types/

| | scripts/

Каталог Resources содержит Blueify Blueprint и необходимые файлы, а Manifest.yaml сообщает Murano, что происходит:

EntryPoint в Manifest.yaml указывает имя файла проекта Cloudify для загрузки в Cloudify Manager. Например, в нашем примере структуры папок выше, вы бы назвали «some-blueprint.yaml».

Format: Cloudify.TOSCA/1.0

Type: Application

FullName: org.getcloudify.muranoapps.examples.MyApp

EntryPoint: some-blueprint.yaml

Name: My App

Description: >

This is my application

Author: Me

Tags:

- TOSCA

- Cloudify

Это вызывается кодом плагина Cloudify Murano (cloudify_tosca_package.py):

class CloudifyToscaPackage(package_base.PackageBase):
    def __init__(self, format_name, runtime_version, source_directory,
                 manifest):
        super(CloudifyToscaPackage, self).__init__(
            format_name, runtime_version, source_directory, manifest)

        self._entry_point = manifest.get('EntryPoint', 'main.yaml')

Когда приложение будет выполнено на более позднем этапе, весь каталог ресурсов будет сжат Cloudify, когда Murano сделает остальной API-вызов:

@specs.parameter('entry_point', yaqltypes.String())
def publish_blueprint(self, entry_point):
    global archive_upload_lock

    if self._check_blueprint_exists():
        return
    path = self._application_package.get_resource(entry_point)
    with archive_upload_lock:
        try:
            self._client.blueprints.upload(
                path, self._blueprint_id)
        except cloudify_exceptions.CloudifyClientError as e:
            if e.status_code != 409:
                raise

Вы можете  раскошелиться на код  и обязательно предоставите нам обратную связь.

Посмотрите видео ниже для более глубокого прохождения.