首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

halo-cloud私有云开源啦,构建小型的黎民级的云计算平台

2012-09-08 
halo-cloud私有云开源啦,构建小型的平民级的云计算平台可由1到100台机器组成,并用普通编程方式扩展的小型

halo-cloud私有云开源啦,构建小型的平民级的云计算平台
可由1到100台机器组成,并用普通编程方式扩展的小型云计算平台。

干什么用的?

不是每个公司都像google、像淘宝、像新浪微博一样庞大,需要复杂的成千上万台机器组成的大型云计算平台,那样成本太高。

更没有多少中国公司会使用GAE、Amaze之类公共云平台,那样网络吃不消。

对于普通的公司,100台以内机器组成的私有云是最好的选择。规模适中、容易开发、易于维护。

我们对云不炒作,不报幻想,只是希望有了她,我在一个项目中写过一遍的功能代码,在以后的项目中可以直接用,不用重复开发。我也不需要什么公共规范,因为我也不打算开放成公共云,够我主要的项目用,速度快就好。

总的来说:我希望我的云是个云,没有单点问题;我希望我的云可以节省我的开发和维护成本,基础功能统统只用写一遍就可以复用;我希望我的云速度快,不要有SOAP Web Service之类的问题,当我真的需要性能的时候;我希望我的云能让现有的团队来维护和继续开发,不要学一大堆东西,甚至牵扯到个人悟性上。

这就是halo-cloud诞生的理由。私有的、小型的、简单的云计算基础服务平台。

我们的项目地址:http://code.google.com/p/halo-cloud/

同时,欢迎加入。
23 楼 zzningxp 2011-05-05   myreligion 写道hadoop 是一个分布式文件系统

halo-cloud是很多服务的集合,用于提供通用服务,这些服务按照分布式部署,但是服务本身可以使用分布式编程,也可以不使用,只做简单的集群。

halo-cloud应该是比hadoop之类的更上层的一个东西。




应该说hadoop并不是单单是一套分布式文件系统,还有mapreduce呢。
既然是hadoop高一个层次,你这个东东的下面一个层次是什么?java虚拟机吗?
另外你还是用到了数据库,如果用数据库的话你用的什么数据库,你是怎么支持大规模数据存储的?

6. 云端最少只需要1台机器即可,多台机器之间没有任何关联,可以任意部署。也就是Share-Nothing架构。
你的意思就是整个系统中的节点各自为营,那怎么能成为云? 24 楼 myreligion 2011-05-06   我发现JE对 云 这个词有仇!只要不是google之类出来的,都觉得不配用这个词。 25 楼 kimmking 2011-05-06   myreligion 写道我发现JE对 云 这个词有仇!只要不是google之类出来的,都觉得不配用这个词。
je讨论云的旧帖 也不少。你可以参考参考。 26 楼 prowl 2011-05-06   myreligion 写道hadoop 是一个分布式文件系统

halo-cloud是很多服务的集合,用于提供通用服务,这些服务按照分布式部署,但是服务本身可以使用分布式编程,也可以不使用,只做简单的集群。

halo-cloud应该是比hadoop之类的更上层的一个东西。




那么,hdfs为何物 27 楼 myreligion 2011-05-06   那我理解错了。一直一说hadoop就当成他著名的文件系统来想了。

看这边文章:http://www.infoq.com/cn/articles/questions-about-cloud-computing

我们应该属于SaaS层,但SaaS也不能说不算云的一种,这个还是要看理解。你觉得不是可以理解成不是;但也有人觉得是。

28 楼 myreligion 2011-05-06   我总结了下对此项目的质疑的朋友,基本上有两种:第一是觉得名字取的有问题,不配云这个词;第二觉得技术比较浅,没有做个和hadoop,GAE一样的东西,或者基于MapReduce做点什么,没啥技术含量。

对于第一种,这个情有可原。在开源此项目前,我们做了类似的内部使用的,我们叫他基础服务,但后来非技术人员叫他“云”。逐渐的,所有人都被洗脑了,叫云。客户认为这样容易理解。技术就是服务于业务需要的,有什么不好哪,客户明白什么东西不就行,非要说自己没本事进入新的云概念领域?而且服务类的东西难道就不是云的一种?这也不见得吧。


对于第二种,我觉得就是饱汉子不知饿汉子饥。大公司自然可以组建专有的团队,不管用得到用不到,去研究大范围的分布式,能支持一万台机器的,绝对不考虑只能支持1000台机器的方案和技术。这个没有问题,但你不能否认halo-cloud这个项目,这个项目不是给你们用的。我们定位就是“普通编程方式的小规范云计算平台”,你们有功夫去搞那些大的东西,不见得别人就有。简单,实用,容易上手就好,我们的方案不期望使用者懂GFS,懂MapReduce。

你懂当然好,你能做出来像taobao的分布式数据库那是你的本事,但我们的定位用户群和面向的项目不是这个。他们可能并需要这个东西,如果他需要,他就不会用这个项目。很简单的道理。

在否定之前,先看定位。你觉得中小企业,小型团队,说不好还有临时救火人员,他们需要什么?让他们加班写代码前,每个人先研究明白google的论文?站着说话不腰疼。

29 楼 kimmking 2011-05-06   个人观点: 一堆 tools 合成一个suite
30 楼 prowl 2011-05-06   lz火气很大,语气很强硬。大家探讨一下而已,不用大动肝火。

首先,对于fanq之后如蜗牛般的网速,面对lz发的googlecode实在是无能为力。其实我问第一个问题的出发点只是想详细了解一下lz的项目。

其次,我想了解一下lz如何实现100台机器的分布式部署的,像前面网友提到的100台机器是独立的么,集群之间相互有通信么,如何合理分配与硬件资源。还有lz提到了解决了WS的数据传输上的性能问题,也简单谈一下你的系统架构被。
31 楼 破碎虚空 2011-05-06   下了源码,研究一下看看再评论 32 楼 pengpeng99bill 2011-05-06   何必这么复杂,搞个ESB和很多基础工具服务就OK了,在数据层面上,你又没做处理,项目没意义的,云的主要问题是数据层面,而不是应用层面。 33 楼 pengpeng99bill 2011-05-06   建议楼主去研究下hadoop在去研究云吧,你的理解有些偏轨 34 楼 myreligion 2011-05-06   prowl 写道lz火气很大,语气很强硬。大家探讨一下而已,不用大动肝火。

首先,对于fanq之后如蜗牛般的网速,面对lz发的googlecode实在是无能为力。其实我问第一个问题的出发点只是想详细了解一下lz的项目。

其次,我想了解一下lz如何实现100台机器的分布式部署的,像前面网友提到的100台机器是独立的么,集群之间相互有通信么,如何合理分配与硬件资源。还有lz提到了解决了WS的数据传输上的性能问题,也简单谈一下你的系统架构被。


引用建议楼主去研究下hadoop在去研究云吧,你的理解有些偏轨


KK实际上比较具体的对这个项目做了一个描述“很多小tools组成的suite”。我其实对云不云的没什么兴趣,不过是一个非技术人员容易理解,技术人员也知道怎么回事的名字而已。在这个世界上,99.99%的项目相信都是一堆小功能的组装,按照KK的描述推广下“很多小tools组成的项目”。

假设我们来了一个项目,要由20个小tools组成,其中包含8个其他项目开发过的tools,另外12个业务紧密相关的tools。halo-cloud就是想统一的提供那8个tools。在halo-cloud之前,你做这个项目需要开发20个tools,有了halo-cloud你只需要开发12个tools。具体那8个tools是不是分布式的,是不是云的,要看tools的特性来决定。这个tool可能就是一个类,返回一些东西,像我们拿姓名和身份证号去xx部验证真伪的tool;也可能是一个大的分布式tool,好比写入用户上传的视频文件到分布式存储中,自动压缩转码并分发到全球CDN网络(假设我们是每个节点都跑单独的分布式存储,不是全球连成1个大存储)。

halo-cloud做了什么哪?就是提供一个你着手开始建立自己公共tools的基础项目。我们做了一些tool,并将继续增加。当然在tools内部,如果需要分布式和机器同步,我们也会用zookeeper呀之类的,这个要看具体的tool的需要。现在,在内部,我们主要是用zk做各个机器间的版本控制和同步,当服务需要协同版本的时候。

对于解决WS性能问题,halo-cloud提供的接口是基于长连接的Socket的,并且允许自定义参数和返回结果解析。理论上,你在需要的时候,可以达到网络编程的极限速度,完全的自定义协议和长连接。我们曾经拿IP查询做过测试,只启动1个socket连接,同步调用,性能是phprpc(与hessian类似的rpc框架,官方提供的测试报告性能更高)的15-20倍。资源消耗方面,通过netstat命令,服务器端和客户端只有1个连接,而phprpc一下子能刷出一大堆的连接,甚至还遇到过文件数过多的问题。这应该是正常的,自定义协议并且稳定socket长连接的性能和资源消耗对比HTTP肯定是数量级的差别。

对于长连接,客户端是基于标准socket的连接池,服务器端基于Mina的NIO。

当然也提供有HTTP短连接的。常规RPC协议的调用,在guzz和spring中都有封装,这个项目就没有继续封装。

35 楼 pengpeng99bill 2011-05-06   myreligion 写道prowl 写道lz火气很大,语气很强硬。大家探讨一下而已,不用大动肝火。

首先,对于fanq之后如蜗牛般的网速,面对lz发的googlecode实在是无能为力。其实我问第一个问题的出发点只是想详细了解一下lz的项目。

其次,我想了解一下lz如何实现100台机器的分布式部署的,像前面网友提到的100台机器是独立的么,集群之间相互有通信么,如何合理分配与硬件资源。还有lz提到了解决了WS的数据传输上的性能问题,也简单谈一下你的系统架构被。


引用建议楼主去研究下hadoop在去研究云吧,你的理解有些偏轨


KK实际上比较具体的对这个项目做了一个描述“很多小tools组成的suite”。我其实对云不云的没什么兴趣,不过是一个非技术人员容易理解,技术人员也知道怎么回事的名字而已。在这个世界上,99.99%的项目相信都是一堆小功能的组装,按照KK的描述推广下“很多小tools组成的项目”。

假设我们来了一个项目,要由20个小tools组成,其中包含8个其他项目开发过的tools,另外12个业务紧密相关的tools。halo-cloud就是想统一的提供那8个tools。在halo-cloud之前,你做这个项目需要开发20个tools,有了halo-cloud你只需要开发12个tools。具体那8个tools是不是分布式的,是不是云的,要看tools的特性来决定。这个tool可能就是一个类,返回一些东西,像我们拿姓名和身份证号去xx部验证真伪的tool;也可能是一个大的分布式tool,好比写入用户上传的视频文件到分布式存储中,自动压缩转码并分发到全球CDN网络(假设我们是每个节点都跑单独的分布式存储,不是全球连成1个大存储)。

halo-cloud做了什么哪?就是提供一个你着手开始建立自己公共tools的基础项目。我们做了一些tool,并将继续增加。当然在tools内部,如果需要分布式和机器同步,我们也会用zookeeper呀之类的,这个要看具体的tool的需要。现在,在内部,我们主要是用zk做各个机器间的版本控制和同步,当服务需要协同版本的时候。

对于解决WS性能问题,halo-cloud提供的接口是基于长连接的Socket的,并且允许自定义参数和返回结果解析。理论上,你在需要的时候,可以达到网络编程的极限速度,完全的自定义协议和长连接。我们曾经拿IP查询做过测试,只启动1个socket连接,同步调用,性能是phprpc(与hessian类似的rpc框架,官方提供的测试报告性能更高)的15-20倍。资源消耗方面,通过netstat命令,服务器端和客户端只有1个连接,而phprpc一下子能刷出一大堆的连接,甚至还遇到过文件数过多的问题。这应该是正常的,自定义协议并且稳定socket长连接的性能和资源消耗对比HTTP肯定是数量级的差别。

对于长连接,客户端是基于标准socket的连接池,服务器端基于Mina的NIO。

当然也提供有HTTP短连接的。常规RPC协议的调用,在guzz和spring中都有封装,这个项目就没有继续封装。



所以我说你的不是云啊,你的只是处理交互,那就用ESB好了,何必那么复杂,云的重要问题是数据的处理,所以才有了mapreduce .
36 楼 myreligion 2011-05-09   恩,是ESB的模型。 37 楼 kimmking 2011-05-09   myreligion 写道恩,是ESB的模型。
没看出来了跟esb有什么关系 38 楼 ray_linn 2011-05-10   感觉是个grid不是cloud.


GRID即网格计算,即由多个节点机构成的一个虚拟CPU,分节点计算,结果汇总。

Cloud是更强大的概念,即包括虚拟硬件平台,虚拟OS平台,虚拟数据库平台,虚拟文件存储,而且这四个方面是一起存在的,不可分割的,是用来开发高层次应用的例如企业软件系统的架构。

(以上定义是我个人下的)

这个离云,差得十万八千里,顶多算是个水蒸气而已。


按这个定义来看,那些云杀毒,云输入法,统统是扯淡,就是多个在线存储和在线更新而已。 39 楼 comsci 2011-05-10   有时候比较迷惑,云计算到底是一种概念还是一种技术,如果是技术,那么技术的核心是什么,这种技术的理论基础又是什么? 40 楼 myreligion 2011-05-10   ray_linn 写道感觉是个grid不是cloud.


GRID即网格计算,即由多个节点机构成的一个虚拟CPU,分节点计算,结果汇总。

Cloud是更强大的概念,即包括虚拟硬件平台,虚拟OS平台,虚拟数据库平台,虚拟文件存储,而且这四个方面是一起存在的,不可分割的,是用来开发高层次应用的例如企业软件系统的架构。

(以上定义是我个人下的)

这个离云,差得十万八千里,顶多算是个水蒸气而已。


按这个定义来看,那些云杀毒,云输入法,统统是扯淡,就是多个在线存储和在线更新而已。

其实吧,全世界也就美国人那几个云,其他的基本上都是扯淡。我们这个也是,只是取个非技术人员容易理解的名字,更像 服务 的概念。
41 楼 破碎虚空 2011-05-18   没有安装文档? 42 楼 kevin2003sk 2011-05-30   对于终端用户,云计算有价值么?

搞云计算平台的迟早被市场淘汰。

热点排行