国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > 陈沙克:Openstack Horizon Icehouse Blueprint简介

陈沙克:Openstack Horizon Icehouse Blueprint简介

来源:程序员人生   发布时间:2014-09-14 18:45:19 阅读次数:2139次

【编者按】在之前 报道中,我们有简单的介绍过OpenStack新版本Icehouse,提到:“在OpenStack Icehouse版本正式发布之前的6个月里,有来自全球超过120家公司与机构的员工参与其中,代码贡献者超过1200名,比2013年的Havana版本提高了32%。”如此多机构参加长时间的参加,Icehouse版究竟有什么值得关注的地方,这里我们看陈沙克分享的博文。


以“ 云计算大数据 推动智慧中国 ”为主题的 第六届中国云计算大会 将于5月20-23日在北京国家会议中心隆重举办。产业观察、技术培训、主题论坛、行业研讨,内容丰富,干货十足。 目前还有优惠,需要购买的朋友,请抓住这最后的机会,点击报名!  


以下为博文:

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 (跳转目录)

  • 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控制,功能是非常强悍的。

swift

Support for Live Migration

这个功能比较酷,国内关心这个的,实在太多。以前Dashboard里提供的迁移,其实是冷迁移,现在已经可以热迁移,不过我还没测试。

Openstack上现在的本地存储是支持,冷迁移和热迁移,只是如果是本地存储,迁移很慢而已。演示是比较酷的。

Snap1

 

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的按钮,跳出一个页面进行编辑,这个显得有点不太友好。有些情况下,可以直接在显示的页面里,直接进行编辑。

Snap3

 

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

这个功能很酷,引入的向导和工作流。例如虚拟机创建流程和网络创建过程。

Snap4

这是一个很好的开始。虚拟机的创建流程需要到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里实现。

Snap5

Allow tables to be filtered based on criteria

当你虚拟机多了时候,页面如何显示和搜索,就是一个问题。增加了一个过滤条件,可以基于project来搜索。

Snap6

这里其实还有点小问题,无法搜索全部。让同事提交一个bug。

Create a volume as a copy of a volume

这个倒是很好理解,看图

Snap7

 

Enhance UX of Navigation

这个Blueprint,非常大,是Redhat主导,让Dashboard的风格,更加符合企业的使用习惯。

Snap8

看起来非常爽,至少我是这样的感觉。

Extend the plugin-based config for Panel

这个功能我和同事验证了一遍,以后对Dashboard做减法,就更加方便。什么是Panel?

Snap11

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和镜像要求不一致,硬盘或者内存不满足需求。

如何解决这个问题呢?那就是你上传镜像的时候,设置好最小内存和最小磁盘,同时在创建虚拟机的流程里,加上各种判断。

Snap12

填写完这两个参数,你就会发现虚拟机创建流程,当你选择image以后,Flavor会调整,并且小于需求的Flavor无法选择。

Snap13

Preset the “Devize size” field in the “Launch Instance” form with the min_disk properties

看图就明白,这其实是对上面的BP一个完善

Snap17

Provide an interface for managing host aggregates and availability zones

把以前需要命令配置的在Dashboard里实现,这些都是管理员设置的。

Snap15

 

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,进行分区,添加到系统里。

Snap16

Create metadata only object without a file

这个和swift有关

Flavor Extra Specs key templates

经常有人问:如何限制虚拟机的磁盘IO和网络带宽,方法很多,不过最简单的就是通过Flavor。

Snap18

你可以设置某个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

Snap19

Heat Fix Status Column

感觉着更多是一个bug fix。

原文链接: Openstack Horizon Icehouse Blueprint介绍(责编/仲浩)

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生