Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10171132
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 云计算

2014-05-19 19:11:41

  
Mar202014
 

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。

 

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端实现。

这个应该是和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版本,才能实现。

这个应该是代码清理,说明真的很多人真的在干活啊。

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。

支持不同的饼图,

这个就和测试,devstack有关。

以前只能管理员看到全部的使用情况,用户可以看到自己每天的使用情况,就是也有一个Overview的页面

就是创建完的heat 的stack,现在可以update。

这个和测试有关,AngularJS相关的测试,比较有学问,没搞懂。

VPN服务相关。可以对创建的vpn进行修改。

Add disk config option support

虚拟机创建的过程中,默认会根据你选择的Flavor,把虚拟机的硬盘的根分区调整到最大。不过有些用户并不希望这样,他们希望自己手工区分区。

假设一个镜像他的磁盘是20G,那么他选择一个40G的flavor,选择手动分区,那么你创建完的虚拟机,磁盘是20G,你需要手工的方式把剩下的磁盘20G,进行分区,添加到系统里。

Snap16

 

这个和swift有关

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

Snap18

你可以设置某个flavor的cpu,网络速度和磁盘IO。这个功能,大家要好好测试。

swift有关,可以update 对象的信息。

代码清理工作

前端的,就是让左边的导航,可以收缩起来,更加方便。

 

Django 1.6 support

现在最新的Django,应该是1.7,J版本,就会升级。Horizon项目更新还是很及时的。基本保证所有的组件都是最新的。

这其实是windows镜像的功能,把虚拟机创建随机生成的密码,可以进行加密。这个做法和AWS是一样的。

Snap19

感觉着更多是一个bug fix。

 Posted by  at 3:53 PM Tagged with: 

 16 Responses to “Openstack Horizon Icehouse Blueprint介绍”

  1. 如果只用AngularJS做个数据校验,还不如不用。这两个玩意怎么看怎么配不到一块去

    • 前端的东西不太懂,感觉现在这个还很时髦。

  2. 我怎么感觉horizon进展不大,更新的东西都是边边角角

    • 不是啊,现在Horizon项目受到的很多公司的重视。这个版本做的东西少,主要是因为圣诞和春节,另外还有一个事故导致。相信J版本,会有让人惊喜的变化。未来J版本的改进,在I版本,已经打好的基础。

      • 恩,确实horizon越来越受重视,hpcloud就是完全基于horizon。

  3. 为什么不直接用angularjs作为前端加openstack的restful api作为后端调用的模式开发dashboard?

    • angularjs是刚刚引入,后续说不定会有大动作。

      • Angularjs和Horizon的理念相似,前者的directive和后者的控件封装都是遵循DRY,但是他们注定是水火不容的:
        1 前者是浏览端渲染,后者是服务端渲染
        2 前者只需关注数据如何pull/push、定义数据和布局的关系,剩下的都是Angularjs可以自动处理。 后者除了关注数据的pull/push,定义布局,每个数据的更改对布局影响都要人为干预。
        3 Angularjs纯JS实现,非常符合UI开发的自由灵活理念,Horizon写个UI还要学python,写完python还要学如何封装。。

        作为一名正在学习Horizon的Angularjs粉,非常希望这个框架把整个Horizon的python封装踢掉。。

        • 社区以前曾用过 JS 写 Dashboard,后来才迁到 Python 写的 Django 上,再转为 Angularjs 可能性不大……

          • 我也看不到这个希望,我司产品也在转型上Horizon,被逼离开JS的舒适区好难受 o(╯□╰)o

        • Horizon 的重度python是个很大的问题,不利于扩展。

  4. 实例显示还没不能搜索全部吗?
    H版这个确实是个大BUG,只能搜索当前页面,当实例多了,很麻烦
    现在只是增加项目过滤,也还是不能搜索这个项目所有实例?

  5. PS一句,live-migration在命令行上是有的,若采用共享存储,如GlusterFS等,切换的速度是很快的。不过,切换的节点间,CPU架构要兼容,最好是一致,否则,可能会失败,切换前会进行校验的。
    Horizon 还有很大的问题是,执行错误没有反馈日志,直接一个Error就算了。

    • 迁移的要求,cpu相同,基本所有的虚拟化迁移的要求都是一样的。执行错误没日志,应该说是没把日志很好展现出来,到底错误的原因是啥。目前应该在努力改进中。

  6. 请问:
    为什么非要登录控制器后才能调用restful api? 如何不登录也可以调用restful api?

  7. 请问如果要跨域调用openstack restful api,openstack该如何设置?

阅读(1000) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~