Openstack的Icehouse,4月17日发布,目前Horizon的所有Blueprint都已经发布。Icehouse,对于Horizon来说,大概完成了70%的工作量,很多重要的功能,都需要等待下一个版本去实现,如果全部都实现,其实还是非常酷的。
Openstack目前已经有10个项目,要对每个项目深入了解,其实都是需要花费大量的时间和精力,Horizon项目是比较简单,也是我最关注的,我整理一下。也希望国内的朋友一起努力,把其他项目的Blueprint都整理一下,方便大家对Openstack的新版本的理解。
基本把所有的Bueprint (BP)都过了一遍,应该算是看懂一大半以上吧。
BP看起来比较闷,就先八卦一下。
我特别喜欢蒋清野这句话:开放源代码作为一种新的商业模式,并不比传统的闭源模式具有更高的道德水准。同理,在道德层面上对不同的开放源代码实践进行评判也是不合适的。
目前Horizon项目是Redhat和HP在主导。以前HPcloud,自己开发了一个Dashboard,目前已经放弃,专用Horizon来对外提供服务。Redhat自己的Openstack版本,Dashboard也不会自己开发,会使用Horizon。所以他们两家投入大量的力气来修改Horizon。Redhat为了让Horizon的UI符合Redhat企业软件的需求,也就投入大量人手去改善Horizon的UI。
Contents [hide]
- 1 Router Rules Support for Horizon
- 2 Add support for public container
- 3 Support for Live Migration
- 4 Allow users to create pseudo directories independent from object upload
- 5 Horizon reusable charts
- 6 Inline editing for DataTables
- 7 Introduce AngularJS as Frontend Javascript Framework
- 8 Implement RBAC support for volume
- 9 Automate style checking for javascript files
- 10 Introduce a plugin architecture for Horizon
- 11 DataTable with support for Django Formset
- 12 Wizard UI for workflow modal dialog
- 13 Remove the underscore library from Horizon
- 14 Hyper-V RDP console access
- 15 Add cinder ‘extend’ volume functionality support
- 16 Allow tables to be filtered based on criteria
- 17 Create a volume as a copy of a volume
- 18 Enhance UX of Navigation
- 19 Extend the plugin-based config for Panel
- 20 Implement RBAC support for image
- 21 Modals and supporting different screen sizes
- 22 Checks min requirements before trying to launch an instance
- 23 Preset the “Devize size” field in the “Launch Instance” form with the min_disk properties
- 24 Provide an interface for managing host aggregates and availability zones
- 25 Support Cinder v2 in Horizon
- 26 Support different kinds of pie charts
- 27 Write selenium tests for Horizon running in a Devstack
- 28 Allow user to view daily usage report
- 29 Heat Stack Update Action
- 30 Integration of the testing library Jasmine
- 31 ‘Update’ options for Neutron VPNaaS Horizon Support
- 32 Add disk config option support
- 33 Create metadata only object without a file
- 34 Flavor Extra Specs key templates
- 35 Modify object object
- 36 Test coverage improvement and refactoring
- 37 Enhance layout of headers (page title) in all views
- 38 Django 1.6 support
- 39 Decrypt and display VM generated password
- 40 Add an environment file to Stack creation/update
- 41 Heat Fix Status Column
Router Rules Support for Horizon
这个功能看上去很酷,租户可以设置自己的路由器规则,不过我在router没有找到任何地方可以设置。详细看了一下Blueprint,原来这个功能,是需要Neutron BigSwitch plugin。你用ovs是没戏。
现在Openstack上很多功能,都是厂商增加的,很大程度都会和硬件捆绑。
Add support for public container
这是swift相关的功能,当你创建一个容器的时候,你可以设置他的用户的访问权限ACL。这个功能,其实Rackspace和AWS都是有,尤其AWS上的ACL控制,功能是非常强悍的。
Support for Live Migration
这个功能比较酷,国内关心这个的,实在太多。以前Dashboard里提供的迁移,其实是冷迁移,现在已经可以热迁移,不过我还没测试。
Openstack上现在的本地存储是支持,冷迁移和热迁移,只是如果是本地存储,迁移很慢而已。演示是比较酷的。
Allow users to create pseudo directories independent from object upload
这也是swift的功能,其实你在dashboard里看到swift上的文件夹,都是假的,对象存储是没有目录的概念。
Horizon reusable charts
Dashboard要看的比较好看,就需要有各种的图来显示相关数据。这里提供了柱状图和饼图。以后大家要创建图,就可以直接使用。
Horizon项目为了让所有的代码都符合License,付出很大的代价,凡是不满足License要求的都不用。
Inline editing for DataTables
如果我们希望编辑一些属性,我们需要点击edit的按钮,跳出一个页面进行编辑,这个显得有点不太友好。有些情况下,可以直接在显示的页面里,直接进行编辑。
Introduce AngularJS as Frontend Javascript Framework
以前Horizon对输入的数据是不进行前端的校验,经常造成提交后报错。最典型的一个案例,就是如果你的falvor小于你的镜像要求,那么就会出错,如何在前端去避免这个错误呢。
引入这个Blueprint后,前端就可以做的更加丰富,用户体验更好。不过目前页面里,还没很好使用这个功能,希望下一个版本,能全部实现。
Implement RBAC support for volume
RBAC,基于角色的访问控制(Role-Based Access Control),这个功能,对于一个租户下,多个用户,进行权限划分,就非常重要。
假设A用户是管理员,b用户只有查看的权限,C用户可以创建虚拟机,维护自己的虚拟机。这些企业比较需要的功能,都需要RBAC来实现。甚至某个用户只能看网络,存储。
所以Openstack所有的组件都需要RBAC,这样才算比较完善,目前只有几个组件支持,后续的完善需要到J版本。如果你想相信了解这块,可以去Rackspace看看,他们已经在Web端实现。
Automate style checking for javascript files
这个应该是和JS的代码要求。写代码和Js的朋友可以深入研究一下。
Introduce a plugin architecture for Horizon
引入插件的机制,让别的项目可以利用使用这个机制,扩展Dashboard。日后Openstack的其他项目,估计都会通过插件的方式,添加到Horizon里。
现在比较流行所谓的APP Store,我想比较类似,如果你启用某个插件,就会具备某个功能。
DataTable with support for Django Formset
这应该也是让表格的数据显示更加友好,和上面可以直接编辑表格数据比较类似。
Wizard UI for workflow modal dialog
这个功能很酷,引入的向导和工作流。例如虚拟机创建流程和网络创建过程。
这是一个很好的开始。虚拟机的创建流程需要到J版本,才能实现。
Remove the underscore library from Horizon
这个应该是代码清理,说明真的很多人真的在干活啊。
Hyper-V RDP console access
Dashboard里,你可以通过console访问linux的虚拟机,如果是windows的虚拟机,那么以前是没啥办法的,如果这个windows的虚拟机的RDP端口没有打开,那你就彻底没戏。
通过这个,你可以通过console访问到虚拟机,基本啥都可以做,类似你坐在机器前面,接显示器在干活。
Add cinder ‘extend’ volume functionality support
现在卷,已经可以扩大,这个功能,已经在Dashboard里实现。
Allow tables to be filtered based on criteria
当你虚拟机多了时候,页面如何显示和搜索,就是一个问题。增加了一个过滤条件,可以基于project来搜索。
这里其实还有点小问题,无法搜索全部。让同事提交一个bug。
Create a volume as a copy of a volume
这个倒是很好理解,看图
这个Blueprint,非常大,是Redhat主导,让Dashboard的风格,更加符合企业的使用习惯。
看起来非常爽,至少我是这样的感觉。
Extend the plugin-based config for Panel
这个功能我和同事验证了一遍,以后对Dashboard做减法,就更加方便。什么是Panel?
1级菜单:project,admin,setting
二级,admin下的:system Panel和Identity Panel
3级:就是system panel下的菜单。你可以通过配置,让这些菜单是否显示。
/opt/stack/horizon/openstack_dashboard/enabled
里面提供了一个例子
cp _60_admin_remove_panel.py.example _60_admin_remove_panel.py
重启apache,就会发现System info的那个菜单没有了。
Implement RBAC support for image
镜像服务的RBAC,和RBAC的功能,都是HP提交的。
Modals and supporting different screen sizes
现在的显示器分辨率大家差异还是不小。以前的做法就用大家最常用的1366×768来设计页面,那么在大显示器显示,效果并不太好。
这个功能我的理解是根据显示器分辨率来显示,改善显示的效果。不同分辨率效果图
Checks min requirements before trying to launch an instance
以前用户登录后创建虚拟机失败,很大一部分原因就是选择Flavor和镜像要求不一致,硬盘或者内存不满足需求。
如何解决这个问题呢?那就是你上传镜像的时候,设置好最小内存和最小磁盘,同时在创建虚拟机的流程里,加上各种判断。
填写完这两个参数,你就会发现虚拟机创建流程,当你选择image以后,Flavor会调整,并且小于需求的Flavor无法选择。
Preset the “Devize size” field in the “Launch Instance” form with the min_disk properties
看图就明白,这其实是对上面的BP一个完善
Provide an interface for managing host aggregates and availability zones
把以前需要命令配置的在Dashboard里实现,这些都是管理员设置的。
Support Cinder v2 in Horizon
Dashboard是根据keystone的endpoint来决定使用api的版本的。Horizon支持Cinder的最先版本的API。
Support different kinds of pie charts
支持不同的饼图,
Write selenium tests for Horizon running in a Devstack
这个就和测试,devstack有关。
Allow user to view daily usage report
以前只能管理员看到全部的使用情况,用户可以看到自己每天的使用情况,就是也有一个Overview的页面
Heat Stack Update Action
就是创建完的heat 的stack,现在可以update。
Integration of the testing library Jasmine
这个和测试有关,AngularJS相关的测试,比较有学问,没搞懂。
‘Update’ options for Neutron VPNaaS Horizon Support
VPN服务相关。可以对创建的vpn进行修改。
Add disk config option support
虚拟机创建的过程中,默认会根据你选择的Flavor,把虚拟机的硬盘的根分区调整到最大。不过有些用户并不希望这样,他们希望自己手工区分区。
假设一个镜像他的磁盘是20G,那么他选择一个40G的flavor,选择手动分区,那么你创建完的虚拟机,磁盘是20G,你需要手工的方式把剩下的磁盘20G,进行分区,添加到系统里。
Create metadata only object without a file
这个和swift有关
Flavor Extra Specs key templates
经常有人问:如何限制虚拟机的磁盘IO和网络带宽,方法很多,不过最简单的就是通过Flavor。
你可以设置某个flavor的cpu,网络速度和磁盘IO。这个功能,大家要好好测试。
Modify object object
swift有关,可以update 对象的信息。
Test coverage improvement and refactoring
代码清理工作
Enhance layout of headers (page title) in all views
前端的,就是让左边的导航,可以收缩起来,更加方便。
Django 1.6 support
现在最新的Django,应该是1.7,J版本,就会升级。Horizon项目更新还是很及时的。基本保证所有的组件都是最新的。
Decrypt and display VM generated password
这其实是windows镜像的功能,把虚拟机创建随机生成的密码,可以进行加密。这个做法和AWS是一样的。
Add an environment file to Stack creation/update
Heat Fix Status Column
感觉着更多是一个bug fix。
原文链接:http://www.chenshake.com/openstack-horizon-described-icehouse-blueprint/