跳转到: 导航, 搜索

Murano/孵化

孵化状态

Murano 的孵化要求清单可以在 这里 找到

项目代号

Murano

商标

未知的已注册 IT 商标

总结

OpenStack 云上发布、共享、部署和管理第三方应用程序和软件服务的应用程序目录。

父项目名称和 PTL

待定 - 寻求 TC 关于项目适当治理模型的建议
可能的选项

反映广泛范围的新项目

优点

  • 引入 OpenStack 的平台层项目(其他项目针对基础设施层)
  • 不会分散现有团队的注意力


缺点

  • 与编排项目存在潜在的任务重叠(两者都声称管理应用程序生命周期,但从不同的角度)

编排项目

优点

  • 现有的成熟项目。
  • 从应用程序生命周期管理的角度符合编排任务。
  • 允许 Heat 和 Murano 在部署领域更好地对齐


缺点

  • 给 PTL 和现有核心团队带来额外的负担
  • 用与编排过程无关的目录相关功能破坏编排任务
  • 混淆基础设施管理和更高级的平台功能

Murano 适合目录项目,可以作为现有 Glance 的扩展

优点

  • 可能符合 Glance 在目录和市场领域的更新任务。
  • 允许 Murano 和 Glance 在工件存储和元数据目录领域更好地对齐


缺点

  • 将 Glance 的当前任务从面向图像扩展到通用的元数据存储和目录
  • 给 PTL 和现有核心团队带来额外的负担

使命宣言

构建一个目录服务,用于分发、管理和消费第三方应用程序及其在 OpenStack 云环境之上的聚合。

详细描述

Murano 项目允许发布和管理应用程序和服务,然后由 OpenStack 云的最终用户配置这些应用程序和服务。

  • 从发布者的角度来看,Murano 提供了一组 API,用于定义和上传应用程序结构的定义。这些定义被分组在一个所谓的“应用程序包”中,存储在目录中,并带有描述性字段、标签、基础设施要求、与其他应用程序集成的外部依赖项等。
此外,已发布的应用程序可以定义各种选项来控制许可和分发,包括使用限制和一些计费指标。
  • 从最终用户的角度来看,目录提供了一种通过导航、搜索和过滤来查找目录中列出的不同应用程序的方式。目录存储带有元信息的应用程序,这有助于最终用户根据其使用场景、业务需求和可用的云环境来正确选择应用程序。
一旦用户选择了应用程序,就可以将其部署到该用户运营的云基础设施中。Murano 提供了一种通过组合多个应用程序和所需资源来构建环境,并动态管理它们之间的依赖关系的方式。
  • Murano 的第三组用户是云管理员。他们通过审查和批准提交的应用程序包、指定批准包的访问权限和可见性以及 - 根据特定的可配置策略 - 批准用户部署的环境来管理应用程序目录。


为了解决这些场景,Murano 提供了

  • Murano 应用程序目录服务,它保存应用程序定义并管理它们之间的依赖关系。
  • Murano 引擎,它组织工作流执行并与 Heat 部署引擎和其他核心 OpenStack 服务集成。
  • 一套用于生成丰富的用户界面,提供定义由多个相互依赖的应用程序及其资源构建的复杂环境的方式。

基本路线图

当前版本 (0.4)

  • 构建在 Heat 之上的部署引擎(根据环境状态和用户输入生成 Heat 模板)和其他组件(发现可用的云组件、协调 VM 端脚本执行等)
  • 基于 XML 的语言,用于部署工作流定义(定义部署一组应用程序所需的一组环境转换)
  • 用于部署后软件配置的 VM 端客户端应用程序
  • 用于向导式环境定义的丰富 UI
  • 应用程序和服务定义的简单目录
  • 用于环境定义和部署的 REST API
  • 用于目录浏览和维护的 REST API
  • 完全支持 Havana(与 Heat、Neutron、Horizon 集成)
  • 一组示例服务,用于组合基于 Windows 和 Linux 的环境

下一个主要版本 (0.5,计划在 IceHouse 版本发布前发布)

  • 新的应用程序定义标记,以便更轻松、更结构化地定义应用程序的元数据,从而实现面向对象的事件驱动方法来部署它们。
  • 新的应用程序元数据包存储,具有改进的分类功能、租户隔离和数据共享
  • 改进的动态环境配置 UI
  • 每个应用程序的使用报告和统计信息

未来发展

  • 在适用时支持 Heat Software Config 进行部署后软件配置
  • 将应用程序包存储在统一元数据存储 (Glance 或 Glance 的某种演进) 中
  • Ceilometer 支持用于高级使用统计信息,以收集用于弹性计费场景的数据
  • Mistral 用于工作流自动化
  • Trove 支持数据库配置

项目源代码位置

Murano 源代码分为几个 git 仓库,所有仓库都托管在 stackforge 上。主要的仓库是

该项目最初分为这三个仓库,试图实现“一个模块 - 一个仓库”的方法。这种方法最终被证明是错误的,并且不符合通常的 OpenStack 实践。因此,计划在未来将这三个仓库合并到一个仓库中。

附加仓库

  • Murano API 的 Python 绑定(两个仓库将在主要 API 仓库合并时合并为一个)

非必要的仓库包括

编程语言、所需技术依赖

  • 语言:主要是 Python,Windows VM 代理用 C# 编写,以提高 Windows Guest OS 上的性能
  • 依赖项:pbr、eventlet、anyjson、jsonpath、netaddr、jsonschema、PyYAML、YAQL

项目目前是否开源?使用什么许可证?

是,Apache 2.0

软件和团队的成熟度

该项目已积极开发超过 12 个月,最初设计为 Windows-DataCenter-as-a-service,然后 - 响应客户的要求 - 重新定位为用于复杂环境部署的通用工具,最终将其使命定位为 OpenStack 的应用程序目录。团队成员至少合作了 6 个月。

项目开发者资质

  • Stanislav Lagun(stanlagun on irc)是 Mirantis 的首席软件工程师。他从 Murano 项目开始就参与其中。Stan 为 Murano 的核心部分做出了重大贡献,并且参与了 Murano 的总体架构讨论。
  • Alexander Tivelkov(ativelkov on irc)是 Mirantis 的首席软件工程师。Alexander 为 Murano 的核心部分做出了重大贡献,并且参与了 Murano 的总体架构讨论。
  • Sergey Melikyan(sergmelikyan on irc)是 Mirantis 的高级软件工程师。他从 Murano 项目开始就参与其中。Sergey 为 Murano 的核心部分做出了重大贡献。
  • Ekaterina Fedorova(katyafervent on irc)是 Mirantis 的高级软件工程师。Ekaterina 为 Murano 的 Web UI 部分和 Murano 元数据仓库组件做出了重大贡献。
  • Timur Sufiev(tsufiev on irc)是 Mirantis 的软件工程师。Timur 为 Murano 的 Web UI 部分(包括动态 UI 实现)和 Murano 元数据仓库组件做出了重大贡献。他是动态 UI 功能的所有者。
  • Dmitry Teselkin(dteselkin on irc)是 Mirantis 的高级部署工程师。他从 Murano 项目开始就参与其中。Dmitry 为 Murano 的核心部分和 Murano 的设置脚本做出了重大贡献。
  • Igor Yozhikov(IgorYozhikov on irc)是 Mirantis 的高级部署工程师。Igor Yozhikov 为支持基于 Linux 的 Murano 服务以及 Murano 的设置脚本做出了重大贡献。
  • Timur Nurlygayanov(tnurlygayanov on irc)是 Mirantis 的高级质量保证工程师。他从 Murano 项目开始就参与其中。他是 Murano 项目的 QA 负责人,他跟踪所有与 Murano 相关的活动:审查所有提交、错误和蓝图。
  • Anastasia Kuznetsova(akuznetsova on irc)是 Mirantis 的质量保证工程师。Anastasia 为 Murano Web UI 的自动化测试做出了重大贡献。
  • Sergey Murashov(smurashov on irc)是 Mirantis 的质量保证工程师。Sergey 为 Murano 的 tempest 自动化测试做出了重大贡献。

基础设施需求(测试等)

我们所有的代码/审查和错误/规范都托管在 OpenStack Gerrit 和 Launchpad 中。单元测试和所有 flake8/hacking 检查都在 OpenStack Jenkins 上运行,并且我们在自己的 Jenkins 服务器上为每个补丁集运行集成测试。我们希望将我们的集成测试迁移到 OpenStack 基础设施。

所有当前贡献者都同意了 OpenStack CLA 吗?

是。