PTG直击|Heat将强化集群资源管理

由OpenStack基金会举办的Project Teams Gathering(以下简称PTG)会议已于9月11-15日在 Denver 举行,共计420名开发者参加,踊跃讨论有关 OpenStack 下一个版本 Queens cycle 的开发工作,积极推动OpenStack各项能力的提升,甚至许多开发工作也在 PTG 过程中实际展开。


Heat是OpenStack的编排引擎,它可以基于文本文件形式的模板启动多个复合云应用程序(这些文件可以被视为代码)。简单来说,Heat为OpenStack用户提供了一种自动创建云组件(如网络、实例、存储设备等)的方法。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与Amazon Web Services业务流程平台CloudFormation相对接——这意味着用户完全可以将AWS模板引入OpenStack环境当中。


在 PTG 的第三天到第四天,OpenStack基金会组织了 Heat sessions 进行讨论与现场开发。


EasyStack派出多名工程师参与了本届PTG,并应开源云中文社区邀请做前方报道。EasyStack软件工程师、OpenStack Heat 组件 PTL 林冠宇参与了 Heat sessions。



EasyStack软件工程师、OpenStack Heat 组件 PTL 林冠宇正参与讨论


以下是来自林冠宇带来的会议纪要:


Rolling upgrade


Etherpad:

https://etherpad.openstack.org/p/heat-rolling-upgrade


目前 Heat 相信已经有 rolling upgrade 的能力,能够在多版本中转移与管理服务。目前在Heat 的 CI 中,也加入了多节点的升级测试(Multi-Node Grenade Tests)。由于此能力的完成度已经到达一定地步,不论是文件与实际功能都有稳定表现,因此也已经向TC 发出请求(https://review.openstack.org/#/c/503145/),希望让Heat 具有rolling upgrade 的标签。后续针对开发,将会持续强化升级前后的测试。


tooz integration


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-tooz-integration


目前OpenStack 有许多讨论是针对Etcd 整合(如同之前在Boston Summit 所分享),整合部分包括如何更新OpenStack 所有服务的DLM,目前整合方式讨论结果为使用tooz,在tooz 与heat 整合上目前还尚未有实际开发,通过一些研究,我们认为tooz 还缺乏以下几点功能:


● 要能为同一 heat engine 重新要求 lock

● 提供 API 来确认 heat engine 是否已经取得 lock

● tooz 在不同backend下的行为模式会有出入,这对于 backend 转会并不是理想状态。


在新版本,我也会针对这几点来确认 Tooz 跟 Heat 的整合还有哪些工作要先达成。


目前 Heat 已经有稳定的 DB 来管理 Locks,因此整合需求并不会如此急迫,但是大量的使用DB作为 DLM(distributed lock manager)已经为 DB带来不少负担。因此长期来看,还是需要转移到 Etcd 等服务,而理想上仍是往 Tooz 方向作为间接首选。


Cluster resource improvement


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-cluster-resource-improvement


越来越多的 Heat 实际应用场景正在变得复杂,像建立 Big Data 平台,建立 Kubernetes平台,建立数据库平台,各种使用场景越来越趋向集群方式。因此,讨论着重于该针对集群式资源提供怎样的管理。


同时解决几个 Magnum 与 Sahara 团队遇到的问题:


● 大量资源的请求,可能会导致环境服务负担过重的状况,在此状况下需要将资源分类、分群来操作,将原本一次性的操作分成多次进行,避免造成负担。

● 当 quota 被占满时,先移除不必要的资源以清理quota。后续其他资源就有较高的机会成功执行。


另外几个讨论点,包括讨论是否根据资源来调整执行当中的缓冲时间,是否要建立更多的时间标记来确认目前执行状态是否正确(避免遇到 更新编排后立刻检查编排状况,却取回尚未变更的更新失败状态导致检查回传更新失败)。目前许多 feedback 来自 Magnum 与 TripleO 的实际应用。因此在接下来的版本中势必会多着墨于强化集群资源管理。


A horizon plugin for HOT creation in drag & drop


Etherpad:

https://etherpad.openstack.org/p/horizon-plugin-hot-creation


在前两天的跨组件讨论中,与 Horizon 团队一同讨论如何将 Heat Horizon Plugin 取出成为独立的 Heat 子组件。在此讨论中,我们更深入 Heat 部分,讨论后续可以如何改进。包含建议应该由 Heat 来提供资源信息以简化新介面。另外新的Heat Dashboard 也会改写成为 AngularJS 框架。介面上目前建议是以简洁的界面作为主要设计。并且初步的拖拉介面只需要先引入核心资源(Nova、Cinder、Neutron等),后续再慢慢扩展即可。


Policy in Code (community goal)


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-policy-in-code


如同前两天所参与的讨论,此讨论更深入的探讨 Heat 组件部分该如何加入相关功能。


此部分可以分成三部分,包含如何使用既有框架来达到新设计,如何让 Heat 特有的资源类别认证部分也能够完整接入,还有后续该如何测试新框架。关于如何使用既有框架,开发上虽步骤繁多,但并不复杂,多数环节通过新增参数即可兼容。在资源类别认证部分,则需要将新的开发流程转移成兼容既有流程。包括必须容忍 Policy Not Registered 问题,并且转移成认证成功(假设OS::Nova::Server并不在 policy内,就表示他的权限并不需要被否决)以达成兼容。至于后续测试部分,则应该再整合测试内,新增反向测试(测试当权限被否决时是否具有我们期待的行为)。


Federated Keystone and Heat


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-federated-keystone-and-heat


在讨论上,与 Keystone 团队共同研究 auto provision 功能是否能满足 federation 与 trusts 等两个认证功能的兼容状况。方式是在 federation maps 里先建立 与trusts 对应的federation 关系。若能成功,则 Heat 的部分,只需要将流程放入文件即可。 Keystone 部分已经在讨论,会将此场景放入 CI 以确保后续使用。同时若此方式能成功,就能移除掉 Heat 唯一的 Know issue。因此会持续推动此功能,来达到使用场景更完善的地步。


Cross-stack reference


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-cross-stack-reference


在此讨论内,讨论如何将资源信息由一个编排引入到另一个编排。例如 AWS 有 Export 与 Import 的方式将资源由一个编排的输出导入到另一个编排的输入。


在讨论中,我们也认为若有此功能将方便编排脚本的实际使用。不过很有可能在实际中只加入 Import 部分,考虑是既然资源都在同一组件内,应可有权限互相使用。另外考虑若要建立相依性,则会让实现过程更为复杂,因此朝向简单设计作为考量。


Breaking the stack barrier


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-breaking-stack-barrier


讨论如何让多个相依的编排能够在建立时打破编排的范畴,例如一个编排底下可能有相当复杂的结构,甚至建立其他编排。若能够考量将所有编排的相依拓朴视为同一个相依拓朴,相信更能够对应到应用程序的实际拓朴。由于此需求实际范畴抽象,加上目前讨论后似乎较难在现阶段取得实际应用,因此尚未将此功能纳入此阶段开发。


Placeholder


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-placeholder


在 get_attr 功能使用上常常会因为编排尚未建立,而无法有效取得信息。导致其他功能(像是list_join)要呼叫 get_attr 时取得无法解析的信息,进而出错。讨论此问题就是要想办法在无法解析时获得一个折衷方式。


讨论后可行方式有二:


● 建立 Placeholder,避开所有可能的解析环节,直到实际能够解析为止。

● 告知错误,直接跳过无法解析的环节,避免该区块的解析。


实际实施中仍需要更多的讨论。目前也会先将所有可能出错的环节列出,方便后续讨论时能够一同解决。


Quota validation for whole template


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-template-quota-validate


此问题在 OpenStack 上存在已久。主因是 OpenStack 的各个服务并没有保留的机制,导致编排时,无法有效的计算未来使用资源的大小是否符合或小于实际可使用资源的大小。例如目前若打算建立100个 Nova 虚机,就算现在看Quota还有101个虚机空间,但在建立过程中,无法担保没有其他需求进入并建立超过2台以上的虚机,进而导致虚机空间不足的问题。


目前较粗略的解决方式是先行通过其他方式检查quota是否符合需求。再建立编排。目前得知有些使用情境,像是计量相关的资源,使用者不希望被这些建立失败的编排收费,进而成为此问题的潜在需求状况。


Tempest plugin repo (community goal)


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-tempest-plugin


在前面与 Tempest 团队讨论后有了大略的进展计划,后续决定将 Heat Tempest plugin 分出,建立成为新的 repo,并且将除了功能测试以外的整合测试都转移到新的组件内。既有的功能测试则转用新组件的程序库作为基础程序来源。


长期来看,会将 Heat 的测试转移使用新的子组件来执行。


另外,应 Interop 的需求,必须在所有测试上新增 Tempest ID,包含其中较难加入的 Gabbi 测试。


Project Goals


Etherpad:

https://etherpad.openstack.org/p/heat-queens-ptg-conti-for-topics


最后讨论总结一周以来团队所接触的工作与开发需求。


建立出必要的开发清单。基本上上述各个主题都衍生成为相关需求。后续会根据这些需求与需要的动作进行追踪。而下次的报告点则会在 Summit 的 Project Update。并期待接触更多的使用者与操作员,让相关需求可以得到更多输入,方便按周追踪相关工作与加入新元素。


再次特别感谢EasyStack的工程师们从 Denver 发回的报道!


阅读推荐:

OpenStack能拯救混合云吗?

容器管理:如何防止容器蔓延与成本蔓延


投稿邮箱:openstackcn@sina.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值