gydtep 发表于 2021-1-8 13:56:38
首先 ACK 提供了统一集群管理能力,除了可以管理阿里云 K8s 集群之外,还可以纳管用户在 IDC 的自有 K8s 集群和其他云的 K8s 集群。利用统一的控制平面实现多个集群的统一的安全治理、可观测性、应用管理、备份恢复等能力,比如利用日志服务、托管 Prometheus 服务,可以无侵入地帮助用户对线上、线下集群有一个统一的可观测性大盘。gydtep 发表于 2021-1-8 14:45:30
云原生的发展使Serverless也得到了发展,FAAS是Serverless的一种典型实现,能够以非常小的成本搭建小程序。另外,低代码和无代码现在也非常流行。gydtep 发表于 2021-1-8 18:13:37
在基础设施对这些内容无感知的前提下,如何自动化地进行混布和限流。从应用研发的视角来看,此前需要写很多代码来实现业务逻辑和基础设施交互;而现在相应的代码量会减少很多。gydtep 发表于 2021-1-8 18:56:57
高可用设计主要有三个原则,包括可观测、可灰度、可回滚。大部分云研发场景并不需要关注可演变,但在一些特殊场景下可演变仍然是一个问题。比如,蚂蚁的金融业务需要和一些机构进行信息交换,由于金融领域的RPC交互常常使用标准化文件,在文件场景下如何保证可演变也是高可用设计需要关注的内容。典型的用于提高架构可用性的设计原则包括四种:解耦、冗余、异构和异步。gydtep 发表于 2021-1-8 19:42:03
在数据库方面,如何解耦核心和非核心业务的DB。在业务链路方面,由于微服务具有复杂的业务场景和节点,这些业务场景和节点间如何混合,业务节点如何支撑业务链路,容量不足时哪些业务场景应优先通过,限流时应优先限流哪些业务等也是解耦需要关注的内容。总体而言,解耦原则要求将最核心的业务链路隔离出来,使其与其它业务间的耦合尽可能小。gydtep 发表于 2021-1-8 20:12:41
应用程序可能有多个机房,如果多个机房间存在数据冗余,那么一个位置的错误就能够由另一个位置的数据来弥补,从而保证系统的持续可用。读写分离也是一种冗余设计,缓存和DB间存在数据冗余,当缓存宕机时,可以从DB回源到缓存。gydtep 发表于 2021-1-9 15:37:58
与代码相比,配置文件的可灰度能力不够标准化,尤其是和业务或者运营相关的配置文件;数据也是如此,由于一些数据有多种来源,这些数据的可观测和可演练能力比代码差。从整体而言,代码的相关体系比配置文件和数据更完备。gydtep 发表于 2021-1-9 16:34:47
架构设计的另一个重要原则是不过度设计,高可用架构设计应基于业务需求进行。这是因为高可用设计通常极为复杂。比如,将链路中的一些重要业务解耦出来单独部署,无论其业务流量多大,都为这些业务分配一百个节点,从而降低单节点宕机带来的影响。gydtep 发表于 2021-1-9 18:24:27
再往后,链路开始进入交易系统,通过调用交易系统的核心模块完成该业务支付。此外,为了实现扫码,POS系统还需要和支付宝签约以建立授权关系,并且同步商户信息。这个微服务系统所涵盖的高可用需求包括:gydtep 发表于 2021-1-11 08:51:48
再后来,云化结合虚拟化技术和基础设施,在虚拟机上运行Docker进程,在Docker进程中运行应用程序。现在,根据云通未来的理念,包括蚂蚁在内的很多公司都在实现上云。