每天5分钟精通公有云架构|管理接口的可用性设计
管理接口服务是整个公有云服务的入口,且用户众多,因此管理接口服务的设计显得尤为重要。设计管理接口服务重点需要考虑如下几个方面的内容:
- 服务的整体可用性,不能因为局部故障导致整个服务的不可用
- 服务的性能,由于公有云用户众多,因此该服务必须能够承担足够的负载,且可以横向扩展
- 用户的合法性,作为入口必须能够识别非法用户,避免非法用户对系统产生伤害
由此,公有云的管理接口服务需要能够做到全局高可用,也就是说管理接口服务需要部署在物理上隔离的多个数据中心。这样,即使在一个数据中心出现故障的情况下(例如挖掘机挖掉光纤,地震,停电等等),仍然能够对外提供管理服务,避免由于单个数据中心的故障导致的整个公有云服务的不可用。本文从两个方面介绍
图1 公有云物理部署图
公有云通常在地理区域上分为多个区域,大部分公有云提供商成为Region。Region通常是地理上相隔比较远的区域,通常在几百公里以上。如图所示是包含2个Region的物理部署示意图。在高可用设计方面需要考虑两个层面的可用性设计,一个是全局的可用性,另外一个是数据中心内部的可用性。
全局可用性
全局可用性首先要数据中心多物理区域(Region)部署,物理部署模式是实现全局可用性的基础。其次,当前全局可用性采用的技术通常为GSLB(Global Server Load Balance)也即全局负载均衡。GSLB是基于DNS解析的一种负载均衡方式,可以制定具体的解析规则。这样实际上可以实现多数据中心热备技术,也即当某个数据中心无法提供服务时GSLB将不会再将请求解析到该数据中心,从而实现整体的可用性。
图2 GSLB请求流程示意图
数据中内可用性
GSLB是解决全局可用性的问题,但数据中心内部也存在单点问题。首先是从物理部署上要做到冗余部署。如图除了核心交换机和核心路由器要主备部署外,承载管理接口服务的服务器要集群部署,其前端需要主备部署的负载均衡器,而存储数据的数据库服务也要主备部署。
负载均衡器在管理接口服务集群前有2个作用,一个是实现负载均衡的作用,因为公有云用户访问负载较高,因此存在动态增加服务能力的需求,接口服务需要集群化部署(或者容器化部署),因此前端负载均衡器起到分发负载的作用。另外一个作用是实现故障容错,接口服务集群难免存在服务器故障的情况,通过负载均衡器的健康探测,可以剔除故障服务器,进而实现用户无感的故障容错。
图3 数据中心内高可用部署
数据库服务是接口服务的核心依赖,用户资源及资源配置信息全部存储在数据库中。因此,数据库在部署上也是需要进行主备部署,从而避免数据库的故障导致服务的不可用。
图3 软件架构图
另外比较重要的一点是在软件设计上。整个接口服务划分为流量监控层、鉴权层和业务服务层三层架构。其中流量监控层实现租户粒度的访问流量监测和控制,避免出现租户恶意访问;另外是实现不同级别用户的服务质量管理,给VIP用户更好的体验(具体实现细节另行介绍)。鉴权层采用基于token加密的内部鉴权机制,避免和鉴权服务器通信,降低鉴权服务器的负载。而下面的业务服务层才是真正的业务逻辑实现,包括对资源的增删改查等操作。
内容太多了,今天先到这。
相关前文:
每天5分钟精通云计算架构|整体架构
每天5分钟精通公有云架构|计算子系统整体架构