Sep 022014
 

说起来比较惭愧,整天吹API的重要性,其实我自己没怎么去调用过API,虽然我是知道web都是通过调用API来实现各种功能的。

测试API或者简单使用一下,可以用curl命令。下面就用这个来学习一下。

UOS API手册 https://docs.ustack.com/api_doc/index.html

获取token

想使用API,那么你第一步就是要获得token。

curl -i -X POST https://identity.api.ustack.com/v3/auth/tokens \
     -H "Content-Type: application/json"  \
     -H "Accept: application/json" \
     -d '{"auth": {"scope": {"project": {"id": "4ad2f0575a55403484b71f42f4d8696c"}}, "identity": {"password": {"user":{ "password": "2a20bd66", "id": "d29a6f1b37af49ddbd17e554c9245f30"}}, "methods": ["password"]}}}'

登录UOS的Dashboard,在右上角的个人设置里,你会看到你的project ID和User id

 

Snap3

你需要把user id和project id,你登录控制台的密码,输入就可以。

Snap4

第一个就是project的ID,第二个框就是你登录UOS的密码,第三个就是User ID。

返回 X-Subject-Token: 后面的就是token。

token是有有效期,通常好像是24小时,并且如果你请求新的token,那么旧的token就作废。

查看ports

api的文档 https://docs.ustack.com/api_doc/network_api.html#ports

curl -s -X GET https://bj1.network.api.ustack.com/v2.0/ports \
     -H "X-Auth-Token: ecfb13ef3d804d31b6a7a829b963b22a" \
     -H "Content-Type: application/json" \
     -H "Accept: application/json"

你只需要把token更改就可以。运行完这个命令,会出来一串东西,非常不好阅读。

curl -s -X GET https://bj1.network.api.ustack.com/v2.0/ports \
     -H "X-Auth-Token: ecfb13ef3d804d31b6a7a829b963b22a" \
     -H "Content-Type: application/json" \
     -H "Accept: application/json"  | python -mjson.tool

让输出符合python的格式。

假设我们需要修改某个port的属性,对我的需求来说,就是修改网络节点的eth2,这个port的某个特性

https://docs.ustack.com/api_doc/network_api.html#ports

默认一个port,只会运行固定的mac地址和IP地址访问网络。我们需要添加一个IP和mac地址通过这个port可以访问网络。专业名字是:allowed_address_pairs。

Snap7

注意那个uuid,

curl -i https://bj1.network.api.ustack.com/v2.0/ports/b15602f9-fab7-47f3-a635-eaf2cd6fd233 -X PUT -d '{"port":{"allowed_address_pairs":[{"ip_address": "192.168.100.102","mac_address": "fa:16:3e:c5:ce:aa" },{"ip_address": "192.168.100.101","mac_address": "fa:16:3e:c5:ce:aa"}]}}' -H "X-Auth-Token: 05cfb90df9ef4832b0bf9415298a630d" -H "Accept: application/json" -H "Content-Type: application/json"

大家把这个curl请求修改一下就可以,注意那个链接ports后面的是UUID,和上图是一样的。

Sep 012014
 

其实这篇文章,是UnitedStack UOS安装多节点OpenStack延续,不过那篇文章太长了,所有就把heat的安装独立出来一篇文章。

必须强调,这几篇文档,都是翻译老外的文档完成https://github.com/MarouenMechtri/OpenStack-Heat-Installation/blob/master/Create-your-first-stack-with-Heat.rst

其实我是无比佩服他们,那么长的文档,我居然没发现一个错误。这要花费多少时间才能做到这种程度。

等我完全搞定在UOS下测试,一定联系这位朋友,告诉他的好消息,在OpenStack下安装OpenStack。

前段时间,有朋友微博发heat工程师招聘,2w的推荐费,看的真的很激动,牙痒痒,后悔怎么不早点让弟兄们开始研究这个呢?真的很后悔,所以今晚好好把heat安装整理一遍。

Heat,其实对于很多Openstack开发工程师,都是比较陌生的一个东西。不过Openstack的未来,很多故事都是需要Heat的完成,例如所谓的弹性扩展,没有Heat,是搞不定的。最热门的App Store,其实都是要考Heat去实现。这也就为啥大家都在下注Heat。当你的IaaS平台稳定后,你感觉还是无法满足你的需求,还是很麻烦,那么你就需要Heat,帮助你减轻负担。

下面这个例子是创建虚拟机,其实还可以帮助你安装,部署虚拟机里的应用。

controller heat

下面的操作都是在控制节点进行就可以。

安装heat

apt-get install -y heat-api heat-api-cfn heat-engine

创建heat数据库 mysql –u root –p

CREATE DATABASE heat;
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' IDENTIFIED BY 'HEAT_DBPASS';
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' IDENTIFIED BY 'HEAT_DBPASS';
exit;

创建服务用户

source creds

keystone user-create --name=heat --pass=service_pass --email=heat@domain.com
keystone user-role-add --user=heat --tenant=service --role=admin

注册服务和endpoint

keystone service-create --name=heat --type=orchestration --description="Orchestration"
keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ orchestration / {print $2}') \
--publicurl=http://192.168.100.11:8004/v1/%\(tenant_id\)s \
--internalurl=http://10.0.0.11:8004/v1/%\(tenant_id\)s \
--adminurl=http://10.0.0.11:8004/v1/%\(tenant_id\)s

keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ cloudformation / {print $2}') \
--publicurl=http://192.168.100.11:8000/v1 \
--internalurl=http://10.0.0.11:8000/v1 \
--adminurl=http://10.0.0.11:8000/v1

创建heat_stack_user 角色

keystone role-create --name heat_stack_user

安装Openstack客户端

apt-get install -y python-openstackclient

创建heat domain

source creds

OS_TOKEN=$(keystone token-get |awk "/ id / { print \$4}")

KEYSTONE_ENDPOINT_V3=http://10.0.0.11:5000/v3

HEAT_DOMAIN_ID=$(openstack --os-token $OS_TOKEN --os-url=$KEYSTONE_ENDPOINT_V3 \
--os-identity-api-version=3 domain create heat \
--description "Owns users and projects created by heat" | grep ' id ' | awk "{ print \$4}")

创建 heat_domain_admin 用户

openstack --os-token $OS_TOKEN --os-url=$KEYSTONE_ENDPOINT_V3 \
--os-identity-api-version=3 user create --password service_pass \
--domain $HEAT_DOMAIN_ID heat_domain_admin \
--description "Manages users and projects created by heat"

openstack --os-token $OS_TOKEN --os-url=$KEYSTONE_ENDPOINT_V3 \
--os-identity-api-version=3 role add --user heat_domain_admin \
--domain $HEAT_DOMAIN_ID admin

Create heat_stack_owner role and give role to users (admin and demo) who create Heat stacks:

keystone role-create --name heat_stack_owner

keystone user-role-add --user=demo --tenant=demo --role=heat_stack_owner
keystone user-role-add --user=admin --tenant=demo --role=heat_stack_owner
keystone user-role-add --user=admin --tenant=admin --role=heat_stack_owner

编辑 /etc/heat/heat.conf文件

下面修改需要注意的是stack_user_domain的id,这个你需要用命令去获得

echo $HEAT_DOMAIN_ID

 

[DEFAULT]

instance_user=heat

deferred_auth_method=trusts

heat_metadata_server_url = http://10.0.0.11:8000

heat_waitcondition_server_url = http://10.0.0.11:8000/v1/waitcondition

stack_user_domain=82908ff8d4b4480e8492b63ae12bbb45

stack_domain_admin=heat_domain_admin

stack_domain_admin_password=service_pass

log_dir=/var/log/heat

rabbit_host=10.0.0.11

[database]

connection = mysql://heat:HEAT_DBPASS@10.0.0.11/heat


[ec2authtoken]

auth_uri = http://10.0.0.11:5000/v2.0

[keystone_authtoken]


auth_host = controller
auth_port = 35357
auth_protocol = http
auth_uri = http://10.0.0.11:5000/v2.0
admin_tenant_name = service
admin_user = heat
admin_password = service_pass

初始化数据库

heat-manage db_sync

删除sqllite数据库

rm /var/lib/heat/heat.sqlite

重启服务

service heat-api restart
service heat-api-cfn restart
service heat-engine restart

这样heat就装好了

source creds
heat stack-list

这时候应该什么都没有。下面就使用模板创建一个虚拟机

模板地址

https://raw.githubusercontent.com/MarouenMechtri/OpenStack-Heat-Installation/master/heat%20templates/first-stack.yml

创建一个文件  first-stack.yml

这个yml文件,大概是需要完成下面的工作

  1. 创建一个私有网络
  2. 创建一个路由器
  3. 连接好外部网络和内部网络
  4. 创建两个虚拟机,绑定floating ip

这些工作手工完成,估计工作量不小,下面就一个文件搞定。

stack-resources

运行下面命令就可以

 

source creds

NET_ID=$(nova net-list | awk '/ ext-net / { print $2 }')

SEC_ID=$(nova secgroup-list | awk '/ default / { print $2 }')

heat stack-create -f first-stack.yml \
-P image_id=cirros-0.3.2-x86_64 \
-P public_net=$NET_ID \
-P secgroup_id=$SEC_ID First_Stack

这个时候,虚拟机就开始创建

root@controller:~# heat stack-list
+--------------------------------------+-------------+-----------------+----------------------+
| id                                   | stack_name  | stack_status    | creation_time        |
+--------------------------------------+-------------+-----------------+----------------------+
| 77a63774-239b-4690-89a6-6564e4c58172 | First_Stack | CREATE_COMPLETE | 2014-09-01T14:06:25Z |
+--------------------------------------+-------------+-----------------+----------------------+

看看创建的虚拟机

root@controller:~# nova list
+--------------------------------------+-----------+--------+------------+-------------+-----------------------------------------+
| ID                                   | Name      | Status | Task State | Power State | Networks                                |
+--------------------------------------+-----------+--------+------------+-------------+-----------------------------------------+
| e339f36c-d07d-4906-b589-bef883030758 | Server1   | ACTIVE | -          | Running     | private-net=172.16.2.2, 192.168.100.105 |
| e7b8fedc-ef80-42cc-8e5e-22676ff81d96 | Server2   | ACTIVE | -          | Running     | private-net=172.16.2.3, 192.168.100.104 |
| bf4bca5b-c22e-4a6b-b4c5-869de3723d23 | instance1 | ACTIVE | -          | Running     | int-net=172.16.1.2, 192.168.100.102     |
+--------------------------------------+-----------+--------+------------+-------------+-----------------------------------------+
root@controller:~# 

Aug 272014
 

平时大家IaaS圈聚会,大家都离不开的话题就是青云。那么青云到底对中国的IaaS做了多大的贡献,搞了那些创新呢?那么就整理一下,大家以后探讨。

如果说青云让中国IaaS发展,提前了至少2年,估计不会太过分。青云的产品是2013年7月份正式对外,明年现在,估计市场上也不见得有产品可以做到青云当时发布的时候的样子。

可以说,下面这些都是青云以前没人敢做,青云以后,必须做,好像也只能这样做的。

Continue reading »

Aug 262014
 

搞IaaS的,有一点是比较讽刺的,开发,测试都是用硬件,并且也饱受设备的痛苦。我们本来是为了帮助用户解决使用资源的各种问题,结果我们自己还饱受折磨。

这个问题其实由来已久。2007年的时候,我当时测试ESX3.0,其实这个东西真没多复杂,就是需要硬件,当年vmware workstation根本就不支持。当年的ESX的培训,都去美国实验室,够恶心了吧。后来解决了worstation安装ESX的问题后,vmware的ESX就真正在企业普及起来。普及的速度真的很快啊。

今天Openstack非常热,Openstack要很好推广,那么培训就是必要的。只有培训推广的好,企业才能有信心去使用Openstack。能不能用Openstack培训Openstack,真的很关键。

UnitedStack团队推出了共有云,UOS,这下子有机会大家都有一个相同的环境。说实话,以前所谓测试IaaS,基本都是点击几下,没真正变成用户,没真正帮助我解决问题。我希望日后可以用这个Openstack下培训Openstack,让大家能认识到IaaS,其实有很多好玩的玩法,可以帮助你改变以前很多无法解决的问题。当然需要大家一起想想。

我子所以那么关注培训,其实是因为我自己的IT的技能很大部分都是通过参加IT培训获得的,所以也算是比较了解这个行业。

这次安装Openstack,是参考国外文档:https://github.com/ChaimaGhribi/OpenStack-Icehouse-Installation/blob/master/OpenStack-Icehouse-Installation.rst

我已经把所有安装的配置文件放到github下,大家安装过程,如有一位,那么就直接参考一下

https://github.com/shake/Openstak-on-openstack

我希望任何人,都可以利用UOS,重复我文档的所有操作,可以实现下面的目标

  1. 搭建一套完整的Openstack
  2. 基于Neutron创建虚拟机
  3. 虚拟机可以访问公网
  4. Horizon的功能都可以正常使用,包括迁移

看看UOS生成的网络拓扑图,应该可以改的更加好看,大家多去给他们提提意见。

Snap12

Continue reading »

Aug 182014
 

上周六和10年前的同事一起吃饭,聊聊往事。朋友一直都还在一线媒体干活,真的比较佩服啊,还能有那么好的精力。头脑风暴,还是很有意义的,把那天晚上风暴的结果记录一下。

作为一个IaaS从业人员,整天想着除了技术,还天天想的就是什么场景下,最需要IaaS,IaaS最能体现他的价值。目前想到的就是IT培训行业。朋友所在的公司目前主要的盈利来源也是培养。

经过了那么多年的发展,国内的IaaS技术其实进步还是很大的。目前看到的很多方面,并不比国外同行差。

  1. 解决了虚拟机创建时间过长的问题。10秒内就可以搞定,这个和我当年2010年需要10分钟创建一个虚拟机,真的是天翻地覆。
  2. 解决了虚拟机的性能问题。目前虚拟机的磁盘IO读写速度,已经超过普通的物理服务器,128M,很吓人的数字。
  3. 解决虚拟机存储的可靠性。通过分布式的文件系统,已经是解决了以前无法回答的使用本地存储,如何保证数据的安全的问题,在极端的情况下,不会出现数据的丢失。
  4. 解决了虚拟机快照,备份,回滚的问题。
  5. 解决了网络的问题。利用SDN的技术,用户可以自己创建网络,路由,并且进行组网。
  6. 提供全部功能的API

目前IaaS的最需要去解决的不是技术问题,而是如何让更多的行业用上,用好,真正体会到IaaS带来的革命。

这就让我想起15年前的旧事。

我是新东方的学员,不过我没在新东方学过英语,而是学计算机。我算是新东方第一期IT培训班的学员。当年的新东方投入去做IT培训,可以说学血本。1999年,给我们讲课的,都是CCIE,记得当时讲课的4个老师,其中3个都是博士。真的是很资深,负责的老师。

新东方做IT培训,我相信他是想对传统的IT培训进行革命。新东方搞IT培训,是希望利用自己的生源的优势,复制英语培训思路,请最好的老师,给最高的待遇,通过规模来降低成本。这招在英语培训中非常有效。不过在IT培训里,就遇到问题。

老师上课,50人和500人,其实是差不多的。不过IT有一个要求,所谓的上机练习。这对培训的效果,起到很重要的作用。导致IT培训里,有一个规矩,一个班,不能超过50人,否则你很难保证效果。所谓的多媒体教学,远程协助,其实解决不了太多问题。

其实你可以想象,老师的讲课,试验的过程,你可以通过视频,录像记录下来。但是学员操作的过程,就很难保证他不出现别的问题,当时我记得我学那些开发工具的时候,点几下,好像就和老师差异很大,再也不知道如何恢复到开始的状态,根本就无法完成老师讲课的试验过程。

这就导致新东方的IT培训,一直都无法做大。同时采购的上机设备,折旧很快,无法充分利用。我相信这些都是困惑当年新东方的IT培训班的管理者。

这几年虚拟化发展很快,有培训公司就想到提供虚拟机镜像让学员学习,提供视频来做IT培训。著名的WinOS社区就是通过这种方式来提供微软的培训。不过对学员的机器配置还是很高,能同时跑几个虚拟机,才能完成虚拟机的试验。并且学员下载镜像也是很费劲,也很难大规模推广。

目前国内的IT培训课程,线上视频已经很普及。不过还是很多人参加线下的培训,主要原因我想上机,没有人指导下,你很难完成老师讲课的内容。

假设一种很理想的场景

老师为了一个IT培训课程,精心准备视频,PPT,和一个镜像。参加学习的学员,可以反复看视频,PPT,同时可以很方便的上机,和老师的操作是同步的,完全相同,出现问题,可以很容易回滚回去。学员遇到无法解决的问题,可以请求老师的线上现场支持。

教程除了在线参加,也可以离线教程。学员选择自己合适时间去学习。有问题可以提问。这样一个课程,参与的学员,就没有任何数量的限制。这样也促进老师花费更多的心思去准备课程。

现在的IaaS都是按秒计费,都提供API接口。作为培训机构,你有很大的想象的空间,基本不需要太多的开发的工作量,就可以和你的在线教育平台结合起来。

传统IT培训机构的特点

  1. 固定的教室
  2. 上机设备,
  3. 培训老师,一位培训行业的老板说过,你培训老师的板凳深度,决定你的培训质量。

如果能很好结合IaaS,那么上面的内容,基本都是不需要。老师也不需要去挂靠各个培训自己机构,自己就可以创业,或者把课程卖给大的机构,让他们帮忙招学员,你就等着分成就可以。

这个时候,老师的知名度,威望,决定他的学员的数量和收入。这个时候,媒体的擅长玩的东西就有的,培养几个明星讲师,这个应该是很自然的事情。

很多IT媒体其实都希望进入IT培训行业,利用自己在IT行业的优势。不过传统的IT培训的投入,规则,让很多媒体处于观望阶段。如果可以结合IaaS,利用自身的优势,那么其实是很容易把传统的IT培训干掉的。因为传统的IT培训机构,他们是很难抛弃自己已经投入的这一切。

这顿饭吃了两个多小时,最后朋友问一句,如果公司真的按照你的设想去做,你的利益如何体现呢?真的是自家兄弟。我说:如果IT的培训,都用IaaS,那么我的饭碗肯定就不是问题了。

如果这一切真的发生,那其实真的是革命,让IT的知识普及更快,吃老本的时间更短。把自己的命也给革了。

以前IT培训里,网络培训是比较昂贵,主要原因是因为设备,现在模拟设备已经做的很好,说不定哪天你可以在IaaS的虚拟机里,完成所有的CCIE的课程呢?

Aug 082014
 

上个月参加Openstack的北京聚会,当时谈到Openstack的贡献,会场上有点争议,到底是Redhat第一,还是HP更多,由于Scope不同,所以得出的结论是不一样的。

Openstack所有的资料都是公开的,包括他们开会,代码提交,审核。那么如何评估那个公司贡献最大,那么这个应该是玩大数据的擅长的东西。我本人压根不懂什么大数据,不过如果你不熟悉开发项目的流程,不熟悉Openstack,仅仅是靠Hadoop,还是没戏的。

Openstack所有的资料都是公开,获取数据不是问题,如何去分析,那就是一大难题。不同的角度,不同的时期都会不一样,代码的贡献,影响力的贡献都是不同的,如何算出一个最大,估计没人可以回答这个问题。这就是说,大数据不是什么万能的药。

对Openstack的贡献,也不需要紧紧理解成代码的贡献,你推广的贡献,文档的贡献,都是必不可少的。中国对Openstack的贡献也不少,代码上不多,不过在Openstack使用上是很多的。你无法相信,Openstack官方网站,访问最多的是来自中国,有几个英文的网站会是这样的呢?

还有一点就是在Openstack讨论贡献最大,是一个比较残酷的事情。因为Openstack 1年2个版本,一直在不断更新,如果你不跟进,很快就会没有人能记住你。这样的故事已经不少了。当年Nebula拿到2500万美金,风光一时,现在基本已经没啥消息。

影响力贡献

现在大家都在谈论Openstack,关注Openstack。那么哪家公司对这个贡献最大呢?

  1. HP推出自己的HPcloud,让大家可以直接体验Openstack
  2. Rackspace把自己的云平台迁移到Openstack上,让大家对Openstack有信心
  3. Mirantis把Openstack包装成产品,服务客户,成为Openstack最大集成商。
  4. Redhat派出大量的工程师,给社区贡献代码,完善自己的产品
  5. IBM,抛弃自己的smartcloud,整个公司的方向都转移到Openstack上。

如果你说上面那家公司对Openstack影响最大呢?我个人观点,其实还是IBM。他体型庞大,对业界的影响是难以估量的。Openstack的基金会可以成功成立,IBM在作用的非常大的。

Redhat加入基金会,我个人相信都是受IBM影响。

目前每个月一次北京这边的Openstack聚会,都是IBM赞助,也是提高自己的影响力。

代码贡献

谈到代码贡献,那么你就肯定要看看http://stackalytics.com/ ,这是Mirantis维护的网站,也是Openstack的代码贡献的一个风向标。一个公司投入多少,基本可以通过这里获得。不过由于不同的维度,结论是不一样的,那个维度是最重要的,很多时候,需要你自己去判断。

Stackalytics的统计变化的过程是非常有意思的。这个统计是从Openstack基金会成立后搞的,印象中应该是G版本有的,大家都是通过这个,了解别家干了多少,我做了多少。

下面的图是我2014年8月11日截的,我个人感觉应该还是非常能代码当前Openstack代码贡献的排行榜。

HP和Redhat是一个级别

Mirantis,Rackspace,IBM是一个级别。后面的差距都已经有点大。

Snap6

代码行数

这是最开始的时候,评估一个项目的贡献指标。这个也比较直观。在Grizzly版本的时候,Openstack功能还是缺少很多的年代。当时Redhat刚刚加入,所以这个版本代码量衡量贡献,其实是没啥问题的。

不过很快就有人发现问题,移动一个目录,相当于删除和增加一堆代码,所以大家当时认为Redhat在灌水。不过我同事还是肯定的态度,经过Redhat的调整,目录是比以前清晰很多,效果还是很好的。

 

commit次数

到了H版本,Openstack有大量的bug需要修复,如果你修改一个bug,可能就是几行代码。后来经过研究,默认的贡献是用commit次数来衡量。

这个时候,大家都比较关注排行榜,有的公司甚至通过这个榜单来做员工的质效考核。也就导致不少公司在刷榜。一个经典的案例就是:把openstack改成OpenStack,也是一个commit。不是不可以修改,而是不应该为了数量而去做这些修改,这些要让新手,第一次提交的人来做。

如果commit是为了获取一张门票,那其实还是可以理解,如果是为了刷榜,意义不大,群众的眼睛是雪亮,项目的PTL负责人其实心里都明白,知道那个是刷榜,那个是能干活的。

在Icehouse版本里,还是用commit次数作为指标,这个时候,已经显得不太符合Openstack现状。

Reviews

Openstack的开发者都有点痛苦,提交的代码,很难找到人reviews,来回的修改,reviews,时间太漫长。一段代码需要2位core review,同意,才能merge。很多人因为坚持不下去,放弃。这个阶段是写代码的人太多,Review代码的人太少。

Mirantis肯定也注意到这个问题,在Juno版本里,把网站的贡献统计改为Reviews次数。鼓励大家去reviews代码。可以发现目前Juno版本的Review大大改善,BP merge的速度也大大提升。

比较一下,这是Icehouse发布后的review数量。

icehouse

这是目前Juno版本,还有2个月的时间,才正式发布。

Snap5

Juno正式发布的时候,review数量,应该会比Icehouse版本高出很多。大家可以重点关于Nova,Neutron,和Horizon。Juno版本的Neutron和Horizon的review数量,已经基本达到Icehose发布时候的数量级别。说明这两个项目的PTL很给力。Neutron的PTL刚换成思科的。

通过Reviews数量,其实你可以了解到更多信息

  1. 项目的活跃程度
  2. 项目的core的数量
  3. 项目的成熟程度

当然,Reviews数量,肯定也有人想到钻空子的办法,看到PTL+2,赶紧上去给一个+1,这个时候是没任何风险的,而且代码都不用看,哪家公司的就不说了,所以有时候大公司的,真的要管好,不然也挺丢人的。

总结

目前Openstack的所谓核心项目大概有10个左右,每个项目都有一个负责技术的PTL,大概有10个左右的core。Neutron和nova,core数量相对多一点,达到15个左右。Openstack真正Core,在干活的,应该就100位左右,目前中国区应该在5到8个左右。

如果从代码贡献来说,尤其是Redhat把eNovance收购以后,我个人的观点目前排名应该是

  1. Redhat
  2. HP
  3. Mirantis
  4. IBM
  5. Rackspace

目前HP投入很大,基本能和Redhat一个档次上。不过能持续多久,这个就不好说。

国内的代码贡献

如果说Openstack是下一个linux,那么国内目前在代码贡献上,其实不算太落后。还没有产生项目的PTL,不过Core的数量,其实已经不算太少了。

国内外企

目前国内IBM,Intel,Redhat,Ubuntu都是有中国区的员工在提交代码,Intel还有4位的Core(没记错,cinder 1位,Ceilometer 2位,Olso 1位)IBM中国区Core基本都已经流失了不少,认识的2个中国区core,都已经离开IBM

国内企业

目前国内参与Openstack社区开发的不少。要多说的是以前华为一直都是给自己产品增加驱动,对Openstack贡献不大在Icehouse版本里没有完成一个BP。在Juno版本里,目前已经完成了18个BP,在这真的是一个非常大的进步。在Juno版本完成18个BP和以前的版本完成是不一样的概念,现在Openstack的组件的功能,已经相对完善,要去完成一个BP的难度其实很大,我相信下面很多BP,不少应该都是已经搞了1年。华为在没有自己项目的Core的支持下,完成那么多BP,是非常难得的。

Snap7

上图是华为完成的BP,和以前已经很大不一样了,例如Cinder完成的BP,并不是加自己的存储的驱动,而且真的在做东西,给社区做东西。都是很有价值的东西。

下面就是华为完成的Cinder的BP介绍,至少我感觉是很有价值。

Snap8

  1. 华为
  2. unitedstack
  3. easystack
  4. 麒麟
  5. 网易

对Openstack项目有真正有点影响力的是Horizon,Ceilometer,Heat。至少项目的负责人记住你,你真的是对项目做过贡献。对于开源社区来讲,都是个人,不看你公司。

整体来说,我想中国区对Openstack的代码贡献,应该在5%左右,华为应该3%,超过一大半以上。这也是完全是自己个人感觉的结论。