一直以来认为基于服务器虚拟化的IAAS平台,没有改变软件系统架构的设计,然而,随着自身对服务器虚拟化环境的逐步深入,逐渐感到,其实,基础设施,决定了上层架构。
静态组件和动态组件
软件架构在设计时,要对软件的各个组件进行静态组件和动态组件的分析,经常变化的组件为动态组件,如:日志、数据库等。不经常变化的组件为静态组件,如:软件版本,只有在版本升级时,才变化的组件。
对动态组件和静态组件的规划,可以基于如下因素:
(1)基于不同类型的存储。
目前市场上的存储类型一般分为NAS和SAN,SAN一般是基于光纤的,价格比较昂贵,读写性能较好。NAS是基于标准的网络拓扑,提供基于网络协议的解决方案, 一般来说,价格比较划算,单读写的效率比如SAN。
动态组件,由于在日常工作中,要经常读出数据,写入数据,因此一般部署到SAN上。而静态组件,一般部署到NAS上。当然,在实际部署时,也要要考虑到各个方面的因素,比如:数据的重要成都,动态组件在进行读写时,对效率的要求等。一般来说,对于数据库级别的动态组件部署到SAN上。而日志信息一般部署到NAS上,但是有些系统,日志信息比较重要,经常用来作为分析使用,那么就要根据自己的情况进行部署。
业务程序,应该要部署到SAN上,因为计算机有可能需要频繁的读取数据到内存实现交换。
(2)基于备份的频率。
一般来说,静态组件,在备份时,只要备份一次即可,只有在系统升级时,才可能进行再次备份。
动态组件,是经常变化的,因此需要经常备份。
静态组件和动态组件在完成规划后,如何实现部署,在服务器虚拟化环境下,存储的分配一般是以LUN或者iSCSI或者是NFS存储块。虚拟机在申请资源时,直接在存储块上申请,因此,在组件部署时,静态组件和动态组件一般不会部署到一台虚拟机上。