关于coffeescript:EDAS微服务应用同城容灾最佳实践

5次阅读

共计 2963 个字符,预计需要花费 8 分钟才能阅读完成。

简介:大多数业务利用只有做到同城双活,就能够防止掉大多数数据中心不可用故障。本实际就是帮忙大家高效、低成本地实现本人的业务利用具备同城双活容灾能力。

前言

上云目前曾经是绝大数企业首选的 IT 基础设施建设计划,然而云上依然存在一些不确定因素(机房硬件故障、网络故障、断网 / 断电、人为操作失误),导致各大云厂商每年在不同的数据中心都会产生一些故障,所以建设具备容灾能力的业务利用是必须的。公共云上容灾解决方案涵盖同城双活、跨 Region 容灾和异地多活等容灾场景,对公共云上大多数中长尾客户来说,更须要的是一种对利用侵入性小甚至通明,但又能保障高可用的容灾计划,同城双活无疑是首选的容灾计划,大多数业务利用只有做到同城双活,就能够防止掉大多数数据中心不可用故障。

本实际就是帮忙大家高效、低成本地实现本人的业务利用具备同城双活容灾能力。通过这篇文章能够基于 EDAS 高效的实现同城双活容灾,在实现这些容灾场景的同时须要其余的阿里产品配合,也会一并介绍对应的解决方案,能够参考上面架构图:

鉴于目前须要做容灾的支流架构都曾经拆分为微服务架构,而且微服务架构自身也是一种具备更强容灾高可用能力的架构。微服务架构个别由网关(对立接入层)、RPC 框架(Dubbo,Spring Cloud)、音讯(MQ)、分布式数据库、缓存等外围软件形成,通过 EDAS 能够高效地实现入口流量切流、RPC 路由容灾、多可用区部署等能力,参考下图:

计划次要产品介绍

EDAS

企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是利用全生命周期治理和监控的一站式 PaaS 平台,反对部署于 Kubernetes/ECS,无侵入反对 Java/Go/Python/PHP/.NetCore 等多语言利用的公布运行和服务治理,Java 反对 Spring Cloud、Apache Dubbo 近五年所有版本,多语言利用一键开启 Service Mesh。

云解析 DNS

云解析 DNS(Domain Name System,简称 DNS)一种平安、疾速、稳固、牢靠的权威 DNS 解析治理服务。云解析 DNS 为企业和开发者将易于治理辨认的域名转换为计算机用于互连通信的数字 IP 地址,从而将用户的拜访路由到相应的网站或应用服务器。

负载平衡 SLB

负载平衡 SLB(Server Load Balancer)是一种对流量进行按需散发的服务,通过将流量散发到不同的后端服务来扩大利用零碎的服务吞吐能力,并且能够打消零碎中的单点故障,晋升利用零碎的可用性。

云数据库 RDS

阿里云关系型数据库 RDS(Relational Database Service)是一种稳固牢靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和 SSD 盘高性能存储,RDS 反对 MySQL、SQL Server、PostgreSQL 等引擎,并且提供了容灾、备份、复原、监控、迁徙等方面的全套解决方案,彻底解决数据库运维的懊恼。

同城容灾各层解决方案

利用的多可用区部署

利用 EDAS 部署利用,能够疾速实现将利用节点部署到不同可用区。上面别离从 ECS 和 K8S 两种托管资源形式进行介绍。

ECS 集群部署

将不同可用区的 ECS 导入到 EDAS,放到同一个集群中,在利用列表中抉择创立利用:

点击下一步抉择倒入集群中的不同可用区的 ECS 节点,实现利用的创立,既能够实现利用不同可用区节点部署的能力。

K8s 集群部署

将创立好的 K8s 集群(node 多可用区)导入到 EDAS 中, 创立利用的时候,在利用高级设置,抉择多可用区部署,实现利用的创立,即能够实现利用不同可用区节点部署的能力。

流量接入层高可用

EDAS 部署的利用能够间接挂载多个 SLB 满足容灾的需要,齐全不依赖 SLB 本身的容灾机制(SLB 切换逻辑只产生在只有当主可用区整体不可用时,如机房整体断电、机房进口光缆中断等,负载平衡才会切换到备可用区),做到用户可管制,在一个地区内的多个可用区或多个地区内部署负载平衡实例和 EDAS 利用节,而后应用云解析 DNS 对拜访进行调度:

点击方才第一步多可用区部署的利用列表,进入具体的利用总览菜单页面,通过拜访形式给入口利用(网关)配置多个 SLB。

通过应用全局流量治理构建灵便的 DNS 解析计划,将上述创立的 SLB 增加到全局流量地址池中,基于健康检查后果,配置 DNS 容灾流量切换计划,能够做到在一个可用区不可用时,主动解析到另外一个可用的可用区 SLB,做到智能化的接入层流量容灾能力解决。

RPC 层面高可用

EDAS 反对多种微服务 RPC 框架,比方 Dubbo,Spring Cloud,当用户应用如上 RPC 框架的时候,当部署的多可用区利用产生可用区不可用的时候,能够利用 EDAS 微服务治理的离群摘除能力,主动将不可用可用区的节点摘除下线,等可用区网络等故障复原当前,主动将节点加回到利用集群中,做到智能化的故障解决。

上述图中利用 A 调用的利用 B、利用 C、利用 D 均被策略管制,如果被 A 调用的利用对应实例返回错误率达到上限,异样实例将被摘除不再被 A 调用(检测复原后重新加入被 A 调用)。

首先进入微服务治理抉择对应的 RPC 框架,比方这里抉择的 Spring Cloud,抉择离群摘除菜单,依照以下步骤进行配置:

其中 QPS 上限依照 EDAS 利用的可观测能力,依照平时的 QPS 配置下限值。错误率在容灾场景下配置 10% 到 50% 区间。摘除实例 <50%,保障集群的可用性,不引发上下游雪崩。复原工夫和累积探测次数都能够设置默认值,来保障可用区故障复原后,主动将节点复原。

除了下面提供的离群摘除性能,EDAS 还为部署的 Provider 利用提供了开启同机房优先调用的能力,在产生可用区的故障时,如果开启同机房优先调用,不会呈现跨机房调用,那么 RPC 层面的流量就不须要利用离群摘除等容灾能力进行从新的节点流量解决或者隔离,从而保障故障产生时刻,业务齐全没感知。

微服务基础设施高可用

EDAS 在部署利用的时候,背地曾经默认提供对应的微服务基础设施:比方注册核心,配置核心。这些对客户不裸露的微服务组件都曾经实现同城容灾,在产生可用区不可用的状况,能够持续保障服务的可用性,大大降低了客户对容灾组件的运维复杂度。

数据库层面高可用

在实现利用部署构造以及 RPC 层面的流量同城双活解决后,对于数据可靠性,RDS MySQL 提供高可用版本实例,采纳一主一备的双机热备架构,适宜 80% 以上的用户场景。主节点故障时,主备节点秒级实现切换,整个切换过程对利用通明;备节点故障时,RDS 会主动新建备节点以保障高可用。在创立实例的时候抉择高可用版,部署计划抉择多可用区部署:

创立多可用区实例时,备机房将创立与主机房雷同规格的 Replica 实例,主备机房的实例数据通过专门的复制通道同步。当主机房呈现电力或网络问题时,Replica 实例将降级为 Master 实例,底层零碎就会主动把申请路由到备机房,从而实现故障切换。

结束语

通过上述计划,咱们能够利用阿里云 EDAS 等相干产品,疾速低成本的搭建具备同城双活容灾业务利用,保障线上业务在可用区产生不可用时疾速实现流量数据切换,从而保障业务可持续性,该计划对公共云 90% 以上的用户都能满足其容灾需要。

作者:神鱼,阿里云解决方案架构师
原文链接
本文为阿里云原创内容,未经容许不得转载

正文完
 0