《OpenStack高可用集群(上册):原理与架构》—2.2.6 控制面板Horizon
【摘要】 本书摘自《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的设计和架构具有如下的特点:
图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)