gydtep 发表于 2020-11-15 21:34:39
在面对超出灵活性设计的问题时,我们还是要去写新的代码,不断给自己之前所谓的“解题思路”打补丁。gydtep 发表于 2020-11-16 09:58:33
数据也是如此,由于一些数据有多种来源,这些数据的可观测和可演练能力比代码差。从整体而言,代码的相关体系比配置文件和数据更完备。gydtep 发表于 2020-11-16 11:01:56
其次,如果将一个非常重要的业务从链路中隔离出来,那么为了处理隔离后的节点的宕机事件,就需要一个异构设计使得当其宕机时整个系统还能继续运转,包括数据存储方面和计算能力方面的异构。gydtep 发表于 2020-11-16 13:35:14
高可用设计并不存在标准配置。实际上,高可用设计需要根据业务重要性、能力和效率的分层等进行分层次的设计,最核心业务需要通过一些高复杂度的设计来提高它们的可用性。gydtep 发表于 2020-11-16 16:08:45
这对应着一个二阶段确认过程,即先发起、再确认、后执行。配置灰度设计和分布式事务处理非常类似。gydtep 发表于 2020-11-16 18:28:36
其次,这两个环境下的数据规则同步应该是可舍弃的,能够实现FO以及全自动的切换;另外,还需要实现监控,监控也应该是异构的,需要有一个外部系统来观测本系统的行为。gydtep 发表于 2020-11-17 10:32:31
只要跑的够快,故障就追不上我。:-) 在研发流程上,通过集成测试尽可能在早期发现应用存在的问题。gydtep 发表于 2020-11-17 11:48:46
后来,基础设施开始向虚拟化演进,比如VMware等公司在物理机上构建虚拟化层和虚拟机,在虚拟机上运行操作系统。gydtep 发表于 2020-11-17 13:48:29
蚂蚁的大部分业务已经实现云盘存储,也就是将日志存储到远方磁盘。此前,单体应用通常将数据存储于本机磁盘,并且不提供其它冗余备份;而云盘则默认提供数据冗余,这在基于日志不可靠假设进行应用设计时带来了很多变化。gydtep 发表于 2020-11-17 15:37:51
这种设计需要一定的先验知识,因此需要定义一些元信息,比如流量入口。在确定流量入口后所有和其相关的后续处理节点都应被打标或者以其它方式圈定起来。