那么,在设计一款IaaS软件的时候,有哪些难点呢?总结下来主要为以下4个方面。
(1)稳定性。
(2)易用性(简单)。
(3)可伸缩性(弹性)。
(4)智能灵活性。
稳定性意味着IaaS软件需要能经受住客户复杂的场景验证,笔者遇到过各类使用云平台的客户,有的客户每天晚上云平台都需要断电以节约成本;有的客户机房供电不稳定,在使用云平台初期机房出现突然断电;还有的客户云平台业务请求压力非常大,业务需要大规模对云平台发起请求等等。因此,稳定性在设计之初是最难满足的一个难点问题,但也是客户最看重的一个方面。(www.xing528.com)
易用性,意味着客户上手简单,无需太多学习成本即能安装、搭建、运营一个IaaS软件。而前文提过,IaaS软件本质上是一个集成软件,需要管理种类繁多的硬件,如何屏蔽底层硬件的复杂性,只暴露给用户一个简单的UI和全自动的操作过程,是IaaS软件设计的一个难点。
可伸缩性是IaaS软件区别于传统IT架构的重要特征,可伸缩性包含了横向伸缩和纵向伸缩,横向伸缩指云平台在添加(或减少)硬件后,资源池的容量自动扩展(或缩小)。纵向伸缩是指单个业务云主机能够增加(或降低)业务主机的硬件配置。目前依赖于成熟的虚拟化技术和分布式存储技术,可伸缩性在IaaS软件设计的过程中,难度较低。当然,业界还存在一些亟待解决的可伸缩问题,例如,如何跨物理机去访问并伸缩业务云主机的CPU和内存,这些不在本章讨论范围内。
智能灵活性是IaaS软件给用户的最终体验,智能性相对来说涉及的面比较广,笔者总结为以下三个方面,第一,用户在使用IaaS软件过程中,IaaS平台需要屏蔽底层复杂的硬件信息,给用户提供良好的UI交互和智能提醒,虽然2B软件目前还无法做到2C软件一样,没有任何说明书即能让用户操作,但用户在使用2B软件的过程中,也希望不看说明书即能完成基本操作。第二,当错误发生时,IaaS软件需要能够自动回滚已经完成的操作,不需要用户手动去清理垃圾文件,并保证整个系统的元数据一致。第三,提供用户稳定、无缝的升级体验,虽然升级是一个软件该有的基本功能,但是根据前文所述,IaaS软件是一个集成软件,内部集成了大量的子系统,如何帮助用户稳定、无缝的升级这些子系统,并保证升级过程快速且升级过程对业务不产生影响,是IaaS软件设计的又一个难点。
以目前市场上主流的几款IaaS软件为例,我们在下个章节对他们的架构设计做一个概览。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。