架构设计通用原则
架构设计是一个技术范畴,没有完美的架构,一个架构多根据业务和应用进行针对性优化改进,甚至有时被完全推翻,才能最终满足或超越需求。作为一项通用原则,必须考虑到原则的普适性,以及对业务和技术团队的支撑适应能力。
架构设计原则直接决定平台的复杂性和实施难度,一般情况下架构师需要在需求分析过程中引入服务级别协议以辅助确定设计原则。
一般来说,架构设计原则需要从非功能性原则和功能性原则两个维度进行考虑。非功能性原则侧重于平台本身的稳定性、安全性、易用性、可用性、可维护性、可用性等特性,一般在各家企业项目招标书中标注的原则主要是指此类原则;功能性原则主要是为了满足私有云平台对外提供的服务需求。
在架构选型上,私有云领域给企业的选择主要是 VMware 和 OpenStack 这两个选项,分别代表了商业产品和开源产品两个阵营。一旦我们选择了 VMware,那么后续通用原则基本也必须参考 VMware 原厂的一些产品设定,实施私有云的企业往往很难再进行突破,这时候开放性、可扩展能力、标准的符合能力往往是我们常常看到的通用原则。如果企业准备实施 OpenStack 私有云,则厂商或实施商对源代码的掌控能力、二次定制化能力就更为看重,同时开源产品在性能、安全性、可用性等非功能性需求的满足上往往不足,企业在设计通用原则时应该在这些方面更为侧重。
一些常见的非功能性设计通用性规则如下:
原则一:扩展性
平台集群便于横向扩展,并便于与其他平台资源(存储、网络、虚拟机等)进行交互。
指导细则:
集群横向扩展须包括计算节点、存储、网络资源的扩展以及扩展后的聚合;
计算节点新加入集群后,私有云上的现有业务不受影响,且均能在新节点上正常运行;
新节点的加入对用户来说是透明的,即用户不需要进行额外操作就可以正常使用。
原则二:稳定性
平台可感知计算、存储和网络以及技术组件的异常,并进行报警、自我修复。
指导细则:
基础架构支持一定规模下的压力测试;
具备完善的监控能力,可及时发现异常;
具备自我修复能力,包括在最小化影响业务的条件下在线迁移虚拟机、新建虚拟机等。
原则三:开放性
平台各组件具备开放的 API,便于与企业现有系统进行对接,实现信息互联互通。
指导细则:
API 支持 Restful;
API 升级具备良好的兼容性,不影响现有对接系统;
API 的信息访问支持加密和安全访问控制,具备详细的接口访问日志,便于审计。
在功能性原则方面,架构师首先需要明确平台本身的服务层次,即是 IaaS 云还是 PaaS 云,或是 SaaS 云,甚至是兼具多个层次的“复杂”私有云。其次,针对每个层次架构师需要确定对应的服务目录(service catalog),即该平台可以对外提供的服务内容。
版权声明: 本文为 InfoQ 作者【阿泽🧸】的原创文章。
原文链接:【http://xie.infoq.cn/article/daf8202197a5db0c13bf18139】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论