初探云上架构

在云上搭建架构的时候,需要从以下五点来进行考虑:

初探云上架构
弹性:架构能够根据系统的需求进行弹性的伸缩;
可用:要能够保证系统运行的连续性,避免出现业务中断的情况;
性能:要保证系统能够高效、快速地响应用户的请求;
安全:能够保证云上系统的安全,以防止被黑客攻击;
可管理行:搭建的架构能够便于后续的管理,节省管理的时间和成本。

传统架构和云上架构的设计方法是有明显不同,主要包括:**

初探云上架构
传统架构:解决有、无的问题,相对厚重,不连续
云上架构:解决多、快、好、省的问题,相对轻便,平滑

**

云上的高性能架构

**

性能是非功能需求,描述了系统传递服务的实时性:

  • 狭义的性能指运行速度的快慢;
  • 广义的性能涉及很多内容,如功耗、利用率、性能价格比、速度等;

不同视角看到的性能也是不同的:
初探云上架构

高性能架构设计的基本步骤是:性能目标->分析问题->解决问题->性能评估
初探云上架构

1.性能目标:制定性能的目标
初探云上架构

2.分析问题:分析系统中有哪些问题会影响性能目标的实现
初探云上架构

3.解决问题:从硬件和架构两个层次解决影响性能目标的问题
初探云上架构

4.性能评估:通过测试工具或者服务验证是否满足性能目标
初探云上架构

某客户在阿里云上的高性能架构如下所示:
初探云上架构

架构解读:

  • 使用CDN加速用户的访问,解决网络延迟的问题
  • 对热点数据进行缓存,加快数据的访问速度,并减轻数据库的压力
  • 通过DRDS实现数据库的水平扩容,提升数据访问的并发量

云上的高可用架构

高可用是为了减少停工时间,保持服务高度可用性;为了实现高可用,系统应该具备的能力有:自动侦测、自动切换和自动恢复。
初探云上架构

  • 自动侦测:通过冗余侦测发现运行的情况,将所汇集的讯息记录下来,以供维护参考。
  • 自动切换:确认对方故障,则正常主机代替故障主机工作。
  • 自动恢复:故障主机修复后,自动切换回修复完成的主机上

层次化和模块化设计是高可用设计的前提:

高可用设计包括三种不同的方式,分别是:主从方式、双机互备和集群工作方式。
初探云上架构

高可用架构设计的主要原则包括:

  • 假定失效设计:假定任何环节都会出问题,然后倒推设计;
  • 多可用区设计:尽最大可能避免架构中的单点故障;
  • 自动扩展设计:不进行设计调整,就能满足业务量增长;
  • 自我修复设计:内建容错及检查能力,应用能够在部分组件失效时自我修复继续工作;
  • 松耦合设计:耦合度越小,扩展性越好,容错能力越强

多可用区设计:
初探云上架构

  • 在SLB实例下绑定不同可用区的ECS,从而避免因为单个可用区的故障而导致对外服务的不可用
  • 多可用区的云服务器RDS可以实现同城的数据灾备
  • OSS存储的数据默认会保存在多个不同可用区中

健康检查自我修复:
初探云上架构

某台ECS实例不健康,导致健康总实例数低于最小值,弹性伸缩(原ESS)会自动创建健康的ECS实例代替不健康的实例

松耦合设计:
初探云上架构

  • 耦合度与灵活性相反,耦合度越小,扩展性越好,容错能力越大
  • 消息解耦将原应用拆分独立的模块,模块间影响小,不会因为部分失效导致整体的不可用

某客户在阿里云上的高可用架构:
初探云上架构

架构解读:

  • 在阿里云两个不同地域的三个可用区中部署业务系统,实现云端的两地三中心架构
  • 通过集群的方式提升系统的可用性:SLB本身是主备的架构、SLB后面挂载多个ECS实例等
  • 业务和应用系统分开部署实现系统的解耦
  • 通过数据同步的方式将数据备份到异地的存储服务中,提升数据的可靠性