`
myreligion
  • 浏览: 205313 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多
可由1到100台机器组成,并用普通编程方式扩展的小型云计算平台。

干什么用的?

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

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

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

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

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

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

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

同时,欢迎加入。
分享到:
评论
42 楼 kevin2003sk 2011-05-30  
对于终端用户,云计算有价值么?

搞云计算平台的迟早被市场淘汰。
41 楼 破碎虚空 2011-05-18  
没有安装文档?
40 楼 myreligion 2011-05-10  
ray_linn 写道
感觉是个grid不是cloud.


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

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

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

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


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


其实吧,全世界也就美国人那几个云,其他的基本上都是扯淡。我们这个也是,只是取个非技术人员容易理解的名字,更像 服务 的概念。
39 楼 comsci 2011-05-10  
有时候比较迷惑,云计算到底是一种概念还是一种技术,如果是技术,那么技术的核心是什么,这种技术的理论基础又是什么?
38 楼 ray_linn 2011-05-10  
感觉是个grid不是cloud.


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

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

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

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


按这个定义来看,那些云杀毒,云输入法,统统是扯淡,就是多个在线存储和在线更新而已。
37 楼 kimmking 2011-05-09  
myreligion 写道
恩,是ESB的模型。

没看出来了跟esb有什么关系
36 楼 myreligion 2011-05-09  
恩,是ESB的模型。
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 .
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中都有封装,这个项目就没有继续封装。

33 楼 pengpeng99bill 2011-05-06  
建议楼主去研究下hadoop在去研究云吧,你的理解有些偏轨
32 楼 pengpeng99bill 2011-05-06  
何必这么复杂,搞个ESB和很多基础工具服务就OK了,在数据层面上,你又没做处理,项目没意义的,云的主要问题是数据层面,而不是应用层面。
31 楼 破碎虚空 2011-05-06  
下了源码,研究一下看看再评论
30 楼 prowl 2011-05-06  
lz火气很大,语气很强硬。大家探讨一下而已,不用大动肝火。

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

其次,我想了解一下lz如何实现100台机器的分布式部署的,像前面网友提到的100台机器是独立的么,集群之间相互有通信么,如何合理分配与硬件资源。还有lz提到了解决了WS的数据传输上的性能问题,也简单谈一下你的系统架构被。
29 楼 kimmking 2011-05-06  
个人观点: 一堆 tools 合成一个suite
28 楼 myreligion 2011-05-06  
我总结了下对此项目的质疑的朋友,基本上有两种:第一是觉得名字取的有问题,不配云这个词;第二觉得技术比较浅,没有做个和hadoop,GAE一样的东西,或者基于MapReduce做点什么,没啥技术含量。

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


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

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

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

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

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

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

26 楼 prowl 2011-05-06  
myreligion 写道
hadoop 是一个分布式文件系统

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

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




那么,hdfs为何物
25 楼 kimmking 2011-05-06  
myreligion 写道
我发现JE对 云 这个词有仇!只要不是google之类出来的,都觉得不配用这个词。

je讨论云的旧帖 也不少。你可以参考参考。
24 楼 myreligion 2011-05-06  
我发现JE对 云 这个词有仇!只要不是google之类出来的,都觉得不配用这个词。
23 楼 zzningxp 2011-05-05  
myreligion 写道
hadoop 是一个分布式文件系统

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

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




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

6. 云端最少只需要1台机器即可,多台机器之间没有任何关联,可以任意部署。也就是Share-Nothing架构。
你的意思就是整个系统中的节点各自为营,那怎么能成为云?

相关推荐

    halo-dev-halo-master_java_

    【标题】"halo-dev-halo-master_java_" 指的是一个名为 "halo" 的开发项目,其主分支可能是 "master",并且是用 Java 语言编写的。这个项目可能是一个开发框架或者是一个管理系统的代码库,尤其适合用于构建基于 ...

    Halo 开源建站工具 v2.13.1.zip

    Halo,这个开源建站工具的最新版本v2.13.1,为开发者和网站设计者提供了一种强大且灵活的平台,用于快速构建和管理高质量的网站。作为一个开源项目,Halo的核心优势在于它的开放性,允许用户根据自己的需求定制功能...

    Python库 | halo-app-0.10.58.tar.gz

    《Python库Halo-app-0.10.58详解》 在信息技术的海洋中,Python作为一门强大的编程语言,以其简洁的语法和丰富的库支持,深受开发者的喜爱。今天我们要探讨的是Python的一个特定库——Halo-app,具体版本为0.10.58...

    PyPI 官网下载 | halo-app-0.10.33.tar.gz

    “halo-app”这个名字听起来像是一个应用程序框架,可能专为构建云原生(Cloud Native)分布式系统设计。云原生是一种开发和管理软件应用程序的方法,它强调利用微服务、容器、声明式API以及持续交付与部署,来促进...

    halo-1.4.2.jar

    halo-1.4.2.jar版本,防止halo官方突然被封

    halo-dev-halo-master_java_源码.zip

    《深入剖析Halo Dev Halo Master ...总结,`halo-dev-halo-master_java_源码.zip`为Java开发者提供了一个宝贵的实践平台,通过深入学习,不仅能提升Java编程技能,还能积累实际项目经验,对于个人技术成长大有裨益。

    halo-dev-halo-comment-normal-master_java_

    标题"halo-dev-halo-comment-normal-master_java_"可能指的是一个项目或教程,它旨在教用户如何在Katalon Recorder的基础上开发和定制自动化测试脚本,特别是针对Selenide框架。"master"通常代表这是项目的主要分支...

    halo-2[1].0游戏破解

    halo-2[1].0游戏破解 java pao jie but some cannot

    halo-comment-sakura:halo-theme-sakura主题的配套comment

    适用于 halo-theme-sakura 的评论组件。可能也适用于其他主题,但不确保完全适配。使用指南进入后台 -> 系统 -> 博客设置 -> 评论设置将 评论模块 JS 修改为:...

    halo-java-快速建网工具

    1、halo-java-快速建网工具 2、快速开始 docker run -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.13

    halo-main.zip 强大易用的开源建站工具

    docker run -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.15 以上仅作为体验使用,详细部署文档请查阅:https://docs.halo.run/getting-started/install/docker-compose 在线体验 环境...

    Python库 | halo-app-0.10.68.tar.gz

    标题中的“Python库 | halo-app-0.10.68.tar.gz”表明这是一个与Python相关的库,名为“halo-app”,版本号为0.10.68,且已经打包成tar.gz格式的压缩文件。这种格式是Linux和Unix系统中常用的归档和压缩方式,通常...

    halo-1.4.11.jar

    halo-1.4.11.jar

    Python库 | halo-0.0.7.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:halo-0.0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    halo-1.3.2.jar

    halo-1.3.2.jar,本地查看halo博客系统,采用了应用与用户配置分离的模式。你仅仅只需要一条命令即可运行成功,同时也支持 Docker/Docker Compose 部署。完善的主题系统,支持在线安装和更新。开发主题也十分方便,...

    halo-theme-xue-1.4.4.zip

    标题中的“halo-theme-xue-1.4.4.zip”表明这是一款名为“Halo Theme Xue”的主题软件的压缩包,版本号为1.4.4。这个主题可能是针对某个特定平台或应用程序设计的,例如网站、操作系统或者桌面环境。在IT领域,主题...

    halo-theme-vno

    复制 https://github.com/halo-dev/halo-theme-vno。 进入后台 -> 外观 -> 主题。 点击右下方按钮选择安装主题,随后选择 远程拉取。 粘贴复制的链接到远程地址,点击下载即可。 更新方法 方法一 进入后台 -> 外观 -...

    前端开源库-eslint-config-halo

    `Halo`是一个轻量级且高效的前端框架,强调简洁、易用和高效,而`eslint-config-halo`与其设计理念相辅相成,确保了代码的整洁性和可维护性。 配置文件的命名遵循`eslint-config-<name>`的约定,这是一种常见的`...

    简易的Java开源博客Halo搭建教程.docx

    【Java开源博客Halo搭建教程】 Halo是一款基于Java开发的开源博客系统,以其简洁的界面、丰富的功能和易于操作的特性受到了许多个人博主的喜爱。本文将详细介绍如何一步步搭建一个属于自己的Halo博客。 ## 一、...

    halo-admin::desktop_computer:Halo管理员Web客户端

    halo-admin 是 的管理端项目。 部署方案 目前 Halo 的运行包内已经包含了构建好的页面,所以如果你不需要额外部署 admin,你无需做任何操作。 独立部署 方式一 直接下载最新构建好的版本,然后部署即可。 方式二 1、...

Global site tag (gtag.js) - Google Analytics