深度观察2024中国系统架构师大会(SACC)

今年的中国系统架构师大会(SACC)在我所在的城市广州举办,很荣幸受邀参加。这次能接触到国内最优秀的架构师,学习他们的架构思想和行业经验。对我而言非常有意义。

在这里插入图片描述

大会分为上下午共4场,我参加了上午的多云多活架构设计专场和下午的AIGC专场。

在这里插入图片描述

本篇文章就多云多活架构设计专场,我选取几位老师的观点进行分享。(我并不是架构师,只是对架构感兴趣,如有错误,还请指正)

张晓辉 Flomesh 高级云原生架构师

在这里插入图片描述

张老师分享了混合多云架构的技术方案,这里可以体现一个企业在技术层面发展到什么样的程度,根据这张图可以看看企业架构的复杂程度。可能大部分企业还在容器化,分布式架构和单一集群的复杂程度。

在这里插入图片描述

在资源抽象层面,利用统一的K8s Api,可以实现不同云厂商的资源抽象,实现资源的复用。K8s多集群可以作为防腐层,屏蔽基础设施层差异,避免厂商锁定

在这里插入图片描述

李中原 (平安银行股份有限公司 国产数据库技术负责人 )

在这里插入图片描述

银行系统的技术架构需要满足高吞吐、低延迟要求,业务可靠性的要求,以及数据安全性的要求,同时,基于监管和法规的要求,技术架构需要自主可控。

李老师分享了银行架构的“去IOE化”的变迁。

在这里插入图片描述

对于可靠性要求,从传统的不能容许服务中断,逐渐过渡到允许服务中断但必须迅速恢复。

黄奕青 (腾讯云 技术专家)

黄老师对两位讲师做了补充,着重对异地多活架构中的问题,以及解决方案和设计要点等“三阶六要点”进行了分享。

  1. 技术架构的三个阶段
  • 第一阶段是对业务需求的解读:一个是传统的需求分析,一个是企业聘请领域专家对需求建模
  • 第二阶段是确立架构,目前较为合理的架构是标准的微服务架构,已经被广泛应用(两地三中心架构)。
  • 第三阶段是在微服务架构之上构建单元化,该阶段需要解决如下异地多活架构中的挑战。
  1. 异地多活架构的挑战
  • 因为网络基础设施的物理局限性,需要考虑异地资源使用时的延迟问题。
  • 数据访问效率问题:跨地域的数据访问速度慢会导致核心交易延迟,需要考虑数据切分和流量闭环治理。
  • 分布式事务成本问题:跨地域的分布式事务会带来高成本和复杂性。
  • 中间件的单元化考虑:在异地架构中,需要考虑中间件的单元化和调度。
  1. 六大设计要点
  • 数据切分:设计大型分布式系统时首先要考虑数据如何切分。 数据按什么维度切分最合适,(如按客户号,还是哈希,按range范围?)
  • 流量闭环与单元化架构:黄老师强调了流量闭环的重要性,特别是在单元化架构中。这意味着流量需要在特定的单元内部循环,而不是跨单元流动,以减少无效的横向流量。为了实现这一目标,网关需要具有状态感知能力,能够识别客户信息并将流量路由到正确的单元。此外,单元和上层计算资源之间的逻辑绑定也是关键。
  • 中间件单元化:在单元化架构中,中间件(如MQ、Redis等)的链路也需要考虑单元化。特别是在跨单元的场景下,如客户之间的转账,会涉及到分布式事务的问题。这种分布式事务的调度和管理在异地多活架构下会被放大,成为实现的难点。
  • 数据切分与聚合查询:数据被切分到多个库后,聚合查询变得困难。黄老师提到了从前在一个库下可以轻松进行多表的聚合查询,但现在需要访问多个库进行查询。这需要对现有的查询策略和技术进行重新的设计和优化。
  • 业务连续性保障:单元之间的互备和业务连续性保障是必要的。
  • 分布式运维:针对大型核心系统的分布式运维需要特别关注。

戴骏贤 (网易游戏资深数据库系统工程师 )

网易游戏对于RPO的要求相对苛刻(数据要求无损)。但更多是以成本最小化为考量实现双活高可用架构。因此目前仅采用同城双副本。

李运华 互联网大厂 资深技术专家

企业是否需要上云取决于成本和技术实力两个主要因素。

  1. 成本考量
  • 企业规模:一般来说,如果企业的服务器规模在一千台以下,上云通常是成本效益较高的选择。对于规模在一千到五千台之间的企业,上云可能并不一定省成本,而取决于其在云平台上的使用程度。然而,如果服务器规模超过五千台,可能会发现下云(即从云平台迁移到自建环境)会更经济合算,尤其是对于大型企业。这是因为大型企业可能会拥有足够的资源和资金来自建云或自建机房,并且会节省大量成本。
  • 全面成本考量:除了物理服务器成本之外,还需要考虑人员成本、维护成本等方面的费用。这些费用在决定是否上云时也至关重要。
  1. 技术实力
  • 企业规模与技术实力:大型企业通常拥有更多的人力资源和技术实力,因此更有能力独立管理和运维自己的服务器环境。相比之下,中小型企业可能缺乏专业技能和资源,难以应对复杂的技术挑战,因此更倾向于使用云服务提供商提供的解决方案。
  • 云产品的功能和强大程度:云服务提供商提供了丰富的云产品和服务,包括分布式一致性数据库等高级功能。然而,自行实现这些功能需要大量的时间、资源和技术实力。对于中小型企业而言,使用云平台提供的功能可能更为经济实惠和可行。(ocean base一个几百上千人的团队,从2013年开始,搞了12年)

同城双活和异地多活有哪些方案?

  1. 同城双活方案

    由于同城机房之间的网络延迟可以做到非常低,通常可以在几毫秒以内,因此同城双核在逻辑上可以看作是一个统一的机房。可以直接按照集群的方式运作,成本和复杂度会低。

  2. 近邻的异地多活
    这种方案通常是指在相邻的两个城市之间进行异地多活部署。例如,广州与深圳、杭州与上海等相邻城市之间的部署。由于网络延迟相对较低,大约在十毫秒左右,因此可以接受。近邻的异地多活方案通常可以通过分布式一致性算法来实现投票和选举,确保系统的可用性。

  3. 远端的异地多活
    在距离较远的城市之间进行异地多活部署,如广州与北京之间的部署。网络延迟可能较高(30ms以上),本质上没有办法实现这种集群的运作。

在这里插入图片描述

马洪喜(深圳行云创新科技有限公司 CEO)

马老师分享了三个不同企业的案例:

  1. 区域性银行的高可用解决方案
  • 该银行实施了同城双活的云原生高可用解决方案,这是一个强需求,因为银行业务对高可用性有极高的要求。
  • 他们的方案是基于一个调度器实现的,使得业务在发生故障时可以切换到单机群模式。
  1. 某超大型电器公司的混合云方案
  • 该公司实施了混合云,将国内业务部署在私有云上,将海外业务部署在AWS上。
  • 这是出于业务需求的考虑,例如海外业务需要在AWS上就近访问。
  1. 某锂电制造企业的工业场景需求
  • 该企业有着复杂的IT/OT融合场景,需要在制造业中实现微服务和AI的应用。
  • 他们的需求包括在本地数据中心或厂区内的小型数据中心处理数据,而不是将数据从生产线传送回总部或云平台。
  • 制造业趋向于建立一个多级算力体系,包括本地数据中心、云平台和边缘计算,而不仅仅是简单的双活或多活部署。

另外在与公有云对接的过程中,确实会遇到一些挑战和坑:比如公有云平台通常会限制用户在容器服务中运行某些特定类型的应用程序或容器镜像。以及路由设置、网络安全限制等。此外,有些云服务商在网络层面可能会实施一些特殊的技术手段,如MAC地址劫持等,导致一些不必要的麻烦和延迟。

顺炽国 (某制造集团 云平台基础服务负责人 )

常见的一些互联网应用很多只关注C端的,也就是只需要考虑北线(用户入口)入口流量一个分流跟分发或者流量管控。但是在物联网行业还需要考虑南线(设备入网)的流量管理,这两部分只有配网绑定的阶段需要打通南北两线的数据。

  1. 成本压力:集团的服务器规模正好在一千到五千个主机之间,导致了巨大的成本和运维压力。解决这个问题正在考虑下云。

  2. 业务复杂性:智能家电行业有独特的业务特点,需要同时关注北线(用户入口)和南线(设备入网)的流量管理,确保设备与用户之间的关联和通信畅通。

  3. 多云节点部署:需要根据业务需求,在各个区域部署多云节点,以提供更快的服务响应时间,降低用户体验的糟糕程度。

  4. 单元化思路:采用单元化的思路,尽量减少数据同步带来的问题,通过北线和南线的网关,将业务闭环在单元内,以降低对专线的重度依赖,提高业务稳定性。

张观石( 泰健科技 CTO)

在这里插入图片描述

张老师讲了个故事: 初始阶段,自建CDN成本高,后接入云CDN,但谈判降价困难。后期通过多云CDN架构,平衡质量和成本,使各厂商主动降价争取份额。

他从一个比较新颖的角度谈论了多云架构的优势:根据提供商的服务质量和价格,分配负载份额

另外他谈到了多云架构的优势:

  • 多云并非只为实现多活,而是为了在架构中灵活利用不同云服务的特点和价格优势(使用特定GPU型号的业务只能在相应云上部署,提高架构灵活性)
  • 利用不同云的产品优势,如低价存储,以降低整体成本。

通过多云策略,企业可以增加与云服务商的谈判地位,从而更好地争取资源、降低成本。同时,多云策略也提供了更灵活的资源供给方式,可以根据业务需求在不同云之间调度资源,确保服务的稳定性和容灾能力。

另外由于多云架构的复杂性,监控告警、排障流程等运维问题复杂度增加,需要考虑跨云沟通和统一运维平台的建设。这就引入了另一个问题:如何建立多云融合统一管理(CMDB)

CMDB的核心功能是收集和存储关于云环境中各种资源的详细信息,包括虚拟机、存储、网络设备等。管理员可以实现统一的交互界面,方便地查询、分析和修改资源的配置状态

根据企业对于多云管理的管理要求,可以采用以下几种方式:

  • 十几二十几台服务器,没有必要上CMDB系统,通过管理员登录各云的控制台进行管理

  • 资源管理型:创建虚拟机,配置网络等,基于开源的管理工具(比如rental?)二次开发较为容易,各家云厂商的API接口并不复杂。

  • 应用管理型,属于高级别应用,可以与应用交付系统结合,从应用的视角出发,自动选择合适的云资源来部署和交付应用,基本要采购商业产品。定制化开发。或寻求混合云厂商,有现有的解决方案可选。

–完结–

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/468741.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SLAM IPC算法

基础知识:方差,协方差,协方差矩阵 方差:描述了一组随机变量的离散程度 方差 每个样本值 与 全部样本的平均值 相差的平方和 再求平均数,记作: 例如:计算数字1-5的方差,如下 去中心化…

【ZooKeeper】1、基本介绍

本文基于 Apache ZooKeeper Release 3.7.0 版本书写 作于 2022年3月6日 14:22:11 转载请声明 1、Zookeeper是什么? 由ZooKeeper的官网介绍可知: ZooKeeper 是Apache原子基金会下一个开源的、用于提供可靠的分布式协同的服务器。 ZooKeeper 可以用来 配置…

Spring MVC入门(4)

请求 获取Cookie/Session 获取Cookie 传统方式: RequestMapping("/m11")public String method11(HttpServletRequest request, HttpServletResponse response) {//获取所有Cookie信息Cookie[] cookies request.getCookies();//打印Cookie信息StringBuilder build…

Soul CEO张璐团队聚焦AIGC,斩获“年度最具成长潜力”奖

近日,由《财经》新媒体及《财经》商业治理研究院联合主办的第六届“新奖”评选活动落下帷幕。 新型社交平台Soul App在CEO张璐的带领下持续发力AIGC,凭借在“AIGC社交”领域的创新探索及所体现出的巨大成长潜力,荣获新科技板块“年度最具成长潜力奖”,再度凸显其在智能社交方面…

两个独立的高增益运算放大器组成D358,应用于音频放大器、工业控制等。采用 DIP8、SOP8、MSOP8 和 TSSOP8 的封装形式。

一、概述 D358 由两个独立的高增益运算放大器组成。可以是单电源工作,也可以是双电源工作,电源低功耗电流与电源电压大小无关。 应用范围包括音频放大器、工业控制、DC 增益部件和所有常规运算放大电路。 D358 采用 DIP8、SOP8、MSOP8 和 TSSOP8 的封装形…

多功能免费实用的 PDF24工具箱 v11.17.0

PDF24 Creator(详情请戳 官网)是一款完全免费且优秀实用的PDF工具箱软件,PDF24工具箱包含PDF分割/合并、PDF压缩、PDF编辑器、PDF加密/解密、PDF页面/图像提取、PDF比较、PDF转换、添加PDF水印、PDF文本OCR识别等多种功能,PDF24工…

C++初阶:string类的模拟自实现

目录 1. 引子2. 自实现string类功能模块3. string类功能模块的具体实现3.1 默认成员函数3.2 遍历访问相关成员函数3.3 信息插入相关成员函数3.4 信息删除3.5 信息查找3.6 非成员函数3.7 杂项成员函数 4. 补充知识 1. 引子 通过对string类的初步学习,没有对知识进行较…

大数据面试题 —— Zookeeper

目录 ZooKeeper 的定义ZooKeeper 的特点ZooKeeper 的应用场景你觉得Zookeeper比较重要的功能ZooKeeper 的选举机制 ***zookeeper主节点故障,如何重新选举?ZooKeeper 的监听原理 ***zookeeper集群的节点数为什么建议奇数台 ***ZooKeeper 的部署方式有哪几…

牛客题霸-SQL进阶篇(刷题记录一)

本文基于前段时间学习总结的 MySQL 相关的查询语法,在牛客网找了相应的 MySQL 题目进行练习,以便加强对于 MySQL 查询语法的理解和应用。 由于涉及到的数据库表较多,因此本文不再展示,只提供 MySQL 代码与示例输出。 部分题目因…

C语言之我对结构体与联合体的认识

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

Huggingface 笔记:大模型(Gemma2B,Gemma 7B)部署+基本使用

1 部署 1.1 申请权限 在huggingface的gemma界面,点击“term”以申请gemma访问权限 https://huggingface.co/google/gemma-7b 然后接受条款 1.2 添加hugging对应的token 如果直接用gemma提供的代码,会出现如下问题: from transformers i…

基于Spring Boot的社区垃圾分类管理平台的设计与实现

摘 要 近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,社区垃圾分类管理平台利用计算机网络实现信息化管理,使整个社区垃圾分类管理的发展和服务水平有显著提升。 本文拟…

WordPress自动生成原创文章插件

WordPress作为最受欢迎的内容管理系统之一,为博客和网站的搭建提供了便捷的解决方案。而在内容创作方面,自动生成原创文章的插件为WordPress用户提供了更为高效的选项。 什么是WordPress自动生成原创文章插件? WordPress自动生成原创文章插件…

Rust 错误处理入门和进阶

Rust 错误处理入门和进阶 引用 Rust Book 的话,“错误是软件中不可避免的事实”。这篇文章讨论了如何处理它们。 在讨论 可恢复错误和 Result 类型之前,我们首先来谈谈 不可恢复错误 - 又名恐慌(panic)。 不可恢复错误 恐慌(panic)是程序可能抛出的异…

C++第七弹---类与对象(四)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、拷贝构造函数 1.1、概念 1.2、特征 2、运算符重载 2.1、等号运算符重载 总结 1、拷贝构造函数 1.1、概念 在现实生活中,可能…

学习Python,需要知道的经典案例

文章目录 一、Python简介二、Python经典案例1. 猜数字游戏2. 文本文件处理3. 网络爬虫4. 数据可视化5. 电子邮件发送6. 实现一个简单的Web服务器。 三、Python处理IP相关知识点1. 处理IP地址2. 网络编程(TCP/IP)3. 使用第三方库处理IP信息 四、相关链接 …

Java安全 反序列化(1) URLDNS链原理分析

Java安全 反序列化(1) URLDNS链原理分析 文章目录 Java安全 反序列化(1) URLDNS链原理分析前置知识应用分析payload1.新建HashMap类2.新建URL类3.获取URL 的 Class对象4.通过反射访问URL内部变量5.通过反射为URL中类赋值6.调用HashMap#put方法传入key和value7.再次通过反射为UR…

基于单片机的智能台灯设计1.42

摘 要 社会在发展,时代在进步,人们对生活质量需求更加膨胀,是否拥有高科技技术也最终决定着产品是否可以满足人们的欲望,只有性价比更高,才可以得到更好的青睐。现在的电子产品愈来愈多,龙蛇混杂&#xff…

vue使用element-ui 实现自定义分页

element-ui文档截图&#xff0c;plus大同小异。 可以通过插槽实现自定义的分页。在layout里面进行配置。 全部代码 //page.js export default {name:Cuspage,props:{total:Number,},data(){return {currentPage:1,pageSize:10,}}methods: {setslot (h) {return(<div cla…

tinyrenderer-Bresenham绘制直线算法

如何画线段 第一种尝试 求x&#xff0c;y起始点的差值&#xff0c;按平均间隔插入固定点数 起始点平均插入100个点&#xff1a; void line(int x0, int y0, int x1, int y1, TGAImage& image, TGAColor color) {for (float t 0.; t < 1.; t .01) {int x x0 (x1 -…