《OpenStack高可用集群(上册):原理与架构》—2.2.6 控制面板Horizon

举报
华章计算机 发表于 2019/05/28 22:10:43 2019/05/28
【摘要】 本书摘自《OpenStack高可用集群(上册):原理与架构》一书中的第2章,第2.2.6节,作者是山金孝。

2.2.6 控制面板Horizon

Horizon是OpenStack云平台的控制面板(Dashboard),Dashboard使得云管理员和用户能够通过Web界面进行云计算资源的创建、管理、监控等操作(图2-15)。Dashboard使用基于Web的API接口与OpenStack云控制器进行交互,从而获取云资源的实时状态,在OpenStack自定义使用过程中,普遍会对Horizon进行二次开发,由于Horizon是基于Django框架的Web应用程序,其架构设计遵循一般Web架构,其在开发过程中主要涉及前端UI等内容,相比OpenStack的其他核心组件,Horizon的开发难度相对较低,但是由于视觉效果的改变,往往使得用户更有兴趣对Horizon进行二次开发,另外对于OpenStack而言,凡是涉及新增Web UI显示内容,则通常都会涉及Horizon的开发集成工作。

Horizon最初只是管理OpenStack计算项目Compute的简单应用程序,因此为了管理Compute项目的需要,最初的Horizon只有视图、模板和API调用三个功能。随后,Horizon逐渐发展成为支持多个OpenStack组件和API的项目,并将这些功能严格划分到“dash”和“syspanel”组中,经过几年的社区发展,目前Horizon的设计和架构具有如下的特点:

image.png

图2-15 Horizon与OpenStack核心项目的交互

Core Support:目前发行版本中的Horizon都包含三个核心的面板(Dashboard),分别是用户面板、系统面板和设置面板,这三个Dashboard可以支撑几乎整个OpenStack的核心应用。为了向开发者提供一致、稳定和可重用的调用方法,Horizon还提供了核心OpenStack项目的API抽象集合,通过Horizon提供的抽象API,开发者无须透彻理解每个OpenStack项目的API。

Extensible:在Horizon中,任何人都可以添加一个组件到面板中。Horizon的面板是基于Dashboard类开发的,Dashboard类也被看成是Horizon的顶层导航条目。一个开发者可能要为自己的某个面板增加新功能(例如在用户面板中增加监控功能),那么开发者只需写一个Django的App并将其注册到Dashboard中即可,因此,Horizon具有很强的可扩展性。

Manageable:在Horizon中,开发者可以轻松地将Panel(导航条子项目)注册到Dashboard中,每一个Panel都包含了针对应用接口的必要逻辑(视图、表格、测试等),这种Panel级别的细粒度分解防止了成千上万行代码文件的出现,并且只需将代码功能与导航条直接关联起来就可轻易定位代码。

Consistent:Horizon提供了核心类别来实现表格,同时提供了可重复使用的固定模板集和其他的额外工具(表格基类、滑动条基类、模板标签甚至基于类的视图),用户可以很好地保证多个应用之间的一致性。

Stable:通过Horizon提供的核心类和组件的架构,Horizon保证了用户对这些组件的修改将以向后兼容性的方式进行,从而确保在整个Horzion生命周期中的稳定性。

Usable:Horizon向使用者提供了非常丰富的可用API接口,因此开发者可以更多地关注自己感兴趣的功能开发,而不是花费大量时间研究如何使用接口。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。