3.2.2 按照部署场景分类
本书中第二篇对所有6类41种设计模式展开详细介绍,我们在进行架构设计时该如何选择?那么多设计模式我们该如何去推进学习呢?在这里按照业务部署的形态进行分类讨论。
• 首先,进行基于公有云从0到1的业务部署,我们需要选择云主机部署业务,实现可用区和地域级别的高可用,采用高可靠的非结构化数据及结构化数据存储,实现最基础的安全权限设置等。
• 其次,如果业务涉及全球部署,则会用到选择最优部署地域、网络加速、流量转发及全局负载均衡,也可能选择多家云服务商进行部署。
• 再次是私有化部署业务及通过混合架构进行扩展,这就会涉及私有化部署、混合架构连通、云平台管理、通过混合架构扩展本地能力、业务及数据迁移。
• 最后对应用架构进行扩展,包括采用Redis、CDN缓存加速进行性能的提升,通过应用性能管理APM和压力测试来掌握应用性能,通过网络、数据、主机、应用层、审计等多个维度加强安全防护能力及满足合规要求,对数据进行冷热分层存储,实现数据存储和调用的降本增效,通过持续运营来保证业务架构始终满足业务需求的发展。
3.2.2.1 在公有云上从0到1部署
在公有云上从0到1部署是指在公有云上部署新的业务,表3-3所示为在公有云上从0到1部署业务建议采用的设计模式,其中介绍了一个业务从最初部署到实现业务持续、提升性能效率、实现安全防护并对资源和事件进行监控的方案。对于很多适合采用公有云的业务来说,这是比较通用的部署发展路径。如果业务中需要涉及多个云平台、实现全球部署,那么在此方案的基础上再选用表3-4中的多地域部署的业务建议采用的设计模式中的方案。
表3-3 在公有云上从0到1部署业务建议采用的设计模式
3.2.2.2 多地域部署
在公有云上实现业务的基础部署之后,在面向全球用户时需要将架构从多个方向进行扩展,会涉及采用多个云平台或在全球范围内多个地域进行部署,这时涉及的网络环境更加复杂,需要配套的解决方案,增加了选择最优部署地域、网络优化、流量转发及全局负载均衡等,如表3-4所示。进行全球部署要注意加强网络层的安全防护,如防护海外DDoS攻击等,也应该掌握海外对业务和数据不同的合规要求,如在满足等保要求的同时也要满足GDRP要求。
表3-4 多地域部署的业务建议采用的设计模式
3.2.2.3 私有化部署
还有一些用户希望自己能够使用独立的计算平台,云服务商提供硬件加云计算操作系统给用户进行私有化部署。私有化部署能够实现用户独享平台,或自行分配给有限的用户来使用,满足业务发展的需求、行业监管制度及其他合规要求等。如表3-5所示,私有化部署一段时间后,可能会遇到扩展资源和服务能力方面的需求,连通公有云和私有化环境,将私有化环境中的部分业务迁移到公有云端,通过混合架构扩展本地的计算、存储备份、安全防护能力及更丰富的产品服务。私有化环境中可能有VMware、OpenStack等异构虚拟化平台,需要通过云管理平台进行统一纳管。当私有化环境和公有云连通后构建混合架构,则公有云上的合规等方案也可以拿来使用了,还有更多公有云扩展模式,如表3-6所示。
表3-5 私有化部署建议采用的设计模式
3.2.2.4 架构扩展进阶
业务架构在公有云上进行了从0到1的部署,并且实现了基础的业务高可用、数据可靠性存储,以及基础的安全防护和监控运营能力,随着业务的发展,会带来更大的流量和安全风险,对业务持续性、数据可靠性、性能效率、安全、持续运营等能力的要求也会更高。对于私有化部署也是这样,除非仅采用私有化部署,不采用公有云,否则涉及公有云或混合架构时,快速变化的业务也会给架构设计带来新的需求。
架构进阶扩展建议采用的设计模式如表3-6所示。进阶类的架构设计需要重点考虑性能效率,采用动静分离提升数据库的读写效率,采用CDN加速文件请求,采用Redis来缓存热点数据或进行高性能的数据读写,通过网络优化及在全球范围内选择最优的数据中心来降低用户请求延迟,最后通过应用性能管理来测试和监测业务系统。
表3-6 架构进阶扩展建议采用的设计模式
此外,还有弹性扩展中的系统解耦,将系统组件解耦之后,才能更灵活地对底层资源进行自动伸缩,针对性地提升性能。在基础部署时考虑更多的是实现业务持续,在架构进一步发展后要更加注重终端安全、数据安全、网络安全、应用安全,实现日志审计、数据库审计,满足等保、GDRP等合规要求。进阶架构设计还需要考虑对数据的合理存储、分析体现数据价值,通过巡检、定期评估、团队定期复盘等实现持续运营,保证架构满足业务需求的变化。