Cloud Compute Manager

Written on May 31, 2014 View on GitHub

暂时还没想好它应该叫什么名字,姑且暂时这么叫着,Cloud Compute Manager, 鉴于随时可能会水掉所以不用太在意名字。

历史

部署环境管理器

2011年的时候,我为一家创业公式写了一套简易的部署环境管理器。因为给客户的硬件是通用的,软件和数据不一样。所以我就针对每次部署,利用 Hyper-V 弄了一套虚拟环境,数据和编译好的程序都在里面。需要用的时候直接把硬盘镜像写入硬盘。同时,每个项目自动生成SVN目录、客户论坛板块,论坛用户、SVN用户以及日报管理器(自己蛋疼写的)同步。 除了不能直接使用ISO装系统外,我自我感觉这是一个挺好用小东西(不过据说我走后就没再使用,这是题外话)。

OpenStack

当时我只接触过AWS、阿里云,还不知道 OpenStack,工作之后研究 OpenStack,感觉这玩意儿在 Nova 部分的实现方式跟我那小东西很像。顿时觉得 OpenStack 就是规模大,没啥不可替代的地方。无可厚非 OpenStack 是个非常大而严谨的项目,但是似乎太过庞大了,不适合纯粹的管理 QEMU 集群什么的。

用 PHP 重写部署环境管理器

那个部署环境管理器虽然是我一个人写的,但是毕竟是给别人做的。另外 ASP.NET 也严重限制了其使用环境,顿时萌生用 PHP 重写的想法。怎么说虽然不知道能不能成,但是可以试试看。一年来改进OpenStack也使我在这方面有很多想法,可以在这里尝试一下。 在 PHP、Go、C#(Mono)之间我选择了很久。 C# 虽然库很全,性能也很可控,但是毕竟 Mono 非官方且不方便脚本调试。 Go在我看来是最佳选择,但是毕竟我没用Go搞过大项目,有点担心。 所以目前先使用PHP,虽然没有脚本调试,但是可以打桩输出,并且调用方便。后台常驻进程可以使用Worker实现,如有比较,可以使用其他语言改写。 我不排斥使用混合技术,但要减少对部署环境的排他性要求。 目前源码地址为 [url]https://github.com/yangxiaohao/cloud-compute-manager[/url]

碎碎念

QEMU-KVM 和 XEN 是主要的备选HVM和PVM方案。这两者的接口也比较接近。 同是也很看好Docker、Hyper-V和VMWare。但是似乎接口区别较大,但是在我看来没必要吧他们完全封装成一致接口,只要他们对外表现一致即可。 利用数据驱动的模型,把数据分两类,一类是基础数据,一类是参考数据。基础数据要求原子性,参考数据仅供显示用。仅仅把基础数据的操作严格封装即可,实现起来也会比较轻松。