许多图书和云服务提供商的官方文档都介绍了云计算的概念、发展历史和产品体系,但不再赘述。 我们可以从另一个角度了解云计算的整体架构和服务能力,也就是云计算架构体系。 如图1所示,云计算的自下而上的配置结构、基础架构、云计算操作系统、产品体系(包括安全性和合规性、监控和管理)、解决方案体系、服务体系
图1
完整的技术架构设计也有步骤,首先收集需求分析,根据需求分析进行架构设计,进行评价改进和实施,然后继续运营。 如图2所示。
图2
在体系结构设计的每个阶段,每个阶段都引入前一阶段的结果,经过现阶段的处理后输出设计方案或构建环境,逐步推进完整解决方案的设计。
(1)需求分析阶段用户输入需求的痛点,经过分析后输出需求分析表。
)2)架构设计阶段,根据需求分析表匹配合适的设计模式,形成完整的架构设计方案。
(3)在评估改进阶段,评估已完成的体系结构设计方案,评估良好的体系结构设计原则,并参考输出改进的体系结构设计方案。
(4)交付阶段,根据评估改进的架构设计方案在云平台上搭建环境,开展业务,提供与架构设计相适应的云环境。
)5)在体系结构持续运行中,输入解决方案和当前业务运行情况,继续巡检、分析、评估(见《云端架构》本书第11章),输出改进措施,进行重构改进,反复根据新需求提供方案。
在基于云计算的体系结构设计中,所有技术解决方案都遵循一定的原则,这也是体系结构设计追求的目标。
图3显示了体系结构设计的六个原则,包括合理的部署、业务连续性、灵活的可扩展性、性能效率、安全合规性和持续运营。
图3
这六个原则体现了体系结构设计中需要考虑的不同角度,只有同时遵循这些原则才能设计出完善的体系结构方案,但实际上,所有体系结构设计中均嵌入了所有设计模式,实现了复杂的体系结构方案逐一介绍这六个原则,从各个原则的子项中进行设计。
1 .合理部署
在公共云中部署业务系统包括使用虚拟机的云主机,以及性能更高的物理云主机,如主机APP应用程序和托管物理服务器。
基于IT的历史资源状况、法规遵从性要求等,很多企业还没有上云。 针对这种情况,提取云计算操作系统并打包为独立的软件和服务,引入用户的私有化环境。 公共云面向“任何”用户开放,而专用部署仅面向少数指定用户。混合体系结构允许统一管理和调度公共云和专用部署平台、传统VMware、OpenStack虚拟化平台或物理服务器等资源,从而改变本地环境混合架构也是当前企业转型中云的中间状态,长期存在。
在跨境电子商务和游戏进军海外等方面,可用于全球多个地区,将业务和数据靠近用户进行部署,以减少网络延迟,提高可访问性。 因此,重点是如何融入全球部署,解决在全球范围内尽可能接近用户的部署问题,实现数据同步存储和处理。
不能相信所有的硬盘、云主机、可用区域、区域和云服务提供商。 开展业务时,需要选择多个公共云平台,提高业务连续性,弥补各个云服务提供商资源和服务的不足,切断云服务提供商的技术锁定和商业联系。
2 .业务继续
业务连续性主要指高可用性、高可靠性和灾难恢复三个方面,在设计模式中也遵循这一逻辑进行部署。
高可用性(High Availability )是指在运行业务的资源发生故障时,通过冗馀等设计来避免业务中断。
高可靠性(Continuous Operations )是指业务运营的资源没有障碍,业务可以持续提供服务。
灾难恢复(Disaster Recovery )是指在业务环境受到破坏的情况下,在不同的环境中恢复APP应用程序和数据的能力。
体系结构设计的每一层都必须实现冗馀和业务可持续性。 如果没有冗馀,就意味着会发生单点,如果单点发生故障,局部服务就会终止。
存储产品:块存储在三个拷贝中提供冗馀,当一个拷贝出现错误时,在另一个拷贝中检查并恢复数据对象存储中,通过修改删除代码来检查数据的冗馀, 提供可恢复性的对象存储提供区域间复制功能,从而防止单个区域成为对象存储的单个点。
备份方案:在混合体系结构中,云通过可用空间、区域间的数据备份来提高可靠性,不存储单个数据;在混合体系结构中,将数据备份到云中,并在本地环境中的数据损坏时进行群集
灾难恢复计划:实现业务系统灾难恢复,避免当前业务环境成为单点,提高业务整体可用性和风险承受能力。
高可用性—通过跨可用区域的负载平衡部署,实现云主机和可用区域冗馀;通过全局负载平衡,实现跨区域、云平台的高可用性。3 .灵活扩展
合并后的系统难以扩展,出现软件错误或系统故障时,问题难以排除,调用各系统组件的压力不同,小问题逐步扩大,容易导致业务整体中断。 要保持系统的弹性扩展,首先要解除系统组件的绑定,包括解除动态数据和静态数据的绑定。 解除结合后的组件可以功能单元化,履行各部门的职责。
解除绑定后,扩展组件和服务。 这意味着计算资源的横向扩展、横向扩展、自动横向扩展、数据库层扩展、本地环境通过混合体系结构的扩展计算、存储备份、安全保护和产品迁移APP应用程序和数据也视为整个系统的扩展,要从一个环境迁移到另一个环境,系统必须保持灵活的可扩展性,并在需要迁移时快速进行迁移。 最后进行均衡,在组件解耦、资源和服务扩展后,为了屏蔽底层解耦和扩展导致的接口不统一等问题,需要统一的接入入口,将它们纳入均衡和全局负载均衡进行介绍。
要实现各个级别的解耦,并使用共享存储状态数据(如Redis )和解耦计算资源的云主机部署业务,Redis通过消息队列解耦组件之间的通信和解耦事件配备可灵活装载和可拆卸的云驱动器,并使用本机计算和存储能力(使用可绑定和可解除绑定的EIP的存储DDoS防护、WAF防护等)来解除安全防护和计算资源的绑定
组件解耦是实现可扩展性的前提,可以通过以下方法进行解耦:
在无状态的情况下将状态数据保存到Redis中。
算上负荷分散,扩张、缩小不会影响整个业务。
消息队列、API网关解耦使生产者、消费者可扩展,互不影响。
实现全球业务负载平衡,后端业务可在混合体系结构、多云环境中扩展
4 .性能效率
许多解决方案和案例都涉及到由于高并发流量激增而带来的性能挑战。 在性能效率中,主要目标是发现和提高APP应用程序的性能,提高资源和组件的效率。
首先是计算性能,通过采用高配置的云主机或物理云主机来提高单体性能,以集群形式扩展整体服务性能。
其次是存储和缓存。 Redis可以通过缓存热点数据、存储临时状态数据和在内存中进行计算来提高业务性能。 Redis缓存数据库在每一层使用缓存,在CDN中缓存静态文件,并将未命中的文件返回到源,从而在Redis中使用热点配置文件、热点数据以加快数据库访问速度再次优化网络性能,选择最适合业务实现全球部署的数据中心,并基于加速全球基础网络、CDN和全球APP应用提高网络性能,加速要求
最后介绍了应用性能监测和压力测试,从应用角度评价目前的性能状况,发现问题瓶颈,明确解决问题。
文/上海蓝盟 IT外包专家