《OpenStack高可用集群(上册):原理与架构》—2.2.6 控制面板Horizon
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接口,因此开发者可以更多地关注自己感兴趣的功能开发,而不是花费大量时间研究如何使用接口。
- 点赞
- 收藏
- 关注作者
评论(0)