架构源自需求
软件架构大部分都来自于需求,可以说,有什么样的需求,就会有什么样的架构, 虽然不同时期,不同的人来实现,可能不完全一样。但是总体来说, 架构不会相差太远。
现在假设如果需要自己来实现一个类似Openstack这样功能的软件,会是什么样的呢?
首先,还是再看看前一章中总结的最简单的需求
- 物理服务器的管理
- 服务器的选择
- 虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作
要对物理服务器进行管理, 至少要满足以下几个条件
通过上述的分析,通信时至少需要一种通信协议,但为了满足更多的需求,可以考虑支持多种协议, 远程的管理需要远程调用功能。
同样, 要根据客户的不同配置来选择服务, 至少需要满足以下几个条件
以上的需求,至少需要保存数据的数据库, 和协议有同样的问题,现在的数据库很多,可以考虑支持多种数据库。
在前一章中, 已经强调一点, Openstack只是管理平台,它是不会实现虚拟功能, 还有, 要创建一台虚拟机,至少需要CPU, 内存, 硬件三种硬件,而且虚拟本身就是为提供服务而存在,而现在的大部分服务,都是基于网络服务,所以网络也是必不可少的一种硬件。所以总体的需求大概如下
到此为此, 一些最基本的需求已经出来了。把所有的节点用图表示出来如下:
前面我们从需求的角度出发, 自己分析了如果要满足基本需求, 需要什么样的实现。 那么Nova的真实实现会和我们一样吗?
原文地址:http://blog.csdn.net/tanghuanan/article/details/44307435