gydtep 发表于 2021-1-8 16:43:10
蚂蚁的大部分业务已经实现云盘存储,也就是将日志存储到远方磁盘。此前,单体应用通常将数据存储于本机磁盘,并且不提供其它冗余备份;而云盘则默认提供数据冗余,这在基于日志不可靠假设进行应用设计时带来了很多变化。gydtep 发表于 2021-1-8 17:02:06
应用程序存在着许多监控操作。随着Sidecar将很多能力下沉,包括访问RPC和DB,此前以中间件形式实现的监控操作,现在则以切面形式来实现,二者有很大的区别。gydtep 发表于 2021-1-8 17:19:54
云原生时代带来的最大变化在于基础设施和业务逻辑的真正解耦。此前,中间件逻辑存在于应用程序的进程中,而现在压测、限流等都可以在Sidecar中实现,从而解耦了基础设施和业务逻辑。gydtep 发表于 2021-1-9 14:42:10
应用程序可能有多个机房,如果多个机房间存在数据冗余,那么一个位置的错误就能够由另一个位置的数据来弥补,从而保证系统的持续可用。读写分离也是一种冗余设计,缓存和DB间存在数据冗余,当缓存宕机时,可以从DB回源到缓存。gydtep 发表于 2021-1-9 15:20:53
异步要求将业务流程的核心部分抽象出来,使其不与非核心的内容耦合。从理论上看,核心部分越精炼,系统出错误的概率越小。比如,支付宝的支付业务背后有一百多个业务处理节点,在微服务时代,其背后可能有几百个甚至上千个业务节点,假设每个节点的可用率都是5个9,把几百个甚至几千个节点的可用率乘起来就会使得整体的可用率非常小。gydtep 发表于 2021-1-10 21:10:08
云计算的核心技术创新加速规模效应的形成。比如,计算资源池化与虚拟化技术,让应用和底层硬件资源解耦。一方面提升资源利用率,降低计算成本;一方面提升了资源的弹性供给,弹性成为差异化云基础设施和传统 IDC 的关键能力。gydtep 发表于 2021-1-11 14:24:38
该系统的一些节点还需要支撑整个支付宝的业务体系,比如会员信息节点,它需要支持成百上千个与蚂蚁森林相同体量的业务功能,对可用性的要求非常高。gydtep 发表于 2021-1-11 14:47:19
这意味着,在这个微服务系统中,不同业务对可用性的要求不同,因此需要不同的手段实现该系统的可用性需求。gydtep 发表于 2021-1-11 15:15:53
首先,签约业务是异步的,在设计时不应被纳入系统的核心链路。另外,签约服务需要与网关和商户服务进行信息同步,仍可能导致网关和商户服务宕机,比如修改商户的鉴权信息可能使签约不成功。因此,签约服务需要实现灰度设计。gydtep 发表于 2021-1-11 16:21:55
高可用设计并不存在标准配置。实际上,高可用设计需要根据业务重要性、能力和效率的分层等进行分层次的设计,最核心业务需要通过一些高复杂度的设计来提高它们的可用性。