NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

构建高效安全的分布式系统:探索新协议、长连接与信息安全实践| Archsummit 闭门会

  • 2023-07-31
    北京
  • 本文字数:3633 字

    阅读完需:约 12 分钟

构建高效安全的分布式系统:探索新协议、长连接与信息安全实践| Archsummit闭门会

无论是在云计算、大数据处理、人工智能还是物联网领域,分布式系统都扮演着不可或缺的角色,它为我们提供了卓越的灵活性、可靠性和可扩展性。然而,随着规模和复杂性的不断增加,我们也面临着前所未有的挑战,如系统性能优化、资源管理、数据一致性以及通信效率等方面的问题。在 7 月 21 日,ArchSummit全球架构师峰会(深圳站)上,我们策划了《分布式系统的优化与效率》主题闭门会,以下内容为交流分享摘要。

精彩分享 1

在过去的一些年里,随着业务的不断调整和员工分类的变化,我们的系统接入设计有一些门槛问题。其中,员工有正式员工、外聘员工和外包员工合作伙伴,他们的权限等级不同,这影响了系统接入的设计。另外,集团类员工和非集团员工也需要接入我们的内部系统,例如腾讯音乐、微宝、微众等子公司,以及紧密合作的公司等。这些变化,引发了我们对架构的调整。


在接入网关方面,我们有一个内部称为智能网关的系统,它涉及不同角色使用不同的通道、泳道或片段的建设。另外,我们还在美国、西雅图、新加坡和欧洲法兰克福建立了接入点,将数据接入到广州和深圳的主要数据中心。在这个过程中,我主要负责监控告警、数据可视化和自动修复的工作。不过,随着系统拆分越来越分布式,涉及跨地域、跨集群、跨网站部署服务,我们也面临了一些挑战。特别是网络接入延时和跨云部署问题,这些都是令人烦恼的事情。


特别是在办公接入中可能会遇到较长的延时,尤其是与美国和欧洲的会议时。美国用户反馈说,他们在美国接入网关时,可能需要跳转到深圳进行鉴权,而鉴权服务涉及到另一个团队的员工身份验证系统,这会导致延时。虽然我们在这方面进行了优化,但仍然存在一些不可控的行为,特别是员工的多样化行为对应着多个系统,这也是我们在处理中的一个挑战。


之前使用类似 VPN 的方式建立点对点的连接,但现在我们转向了零信任模型。在这个模型下,每个请求都会被注入一个标记,员工和黑客都可以进入系统,但需要通过我们的客户端进行内网接入。这个客户端充当全流量代理,为用户提供了信任的身份认证,确保系统的安全性。简言之,我们通过零信任模型打破了过去黑名单和白名单的限制,实现更高级别的安全保障。

精彩分享 2


我们的问题是,在原始系统中,数据需要经过 A、B、C 三个节点才能达到目标。然而,实际上,数据可以直接与 C 节点进行交互,可以节省时间和资源。这里的解决方案是创建一个客户端,该客户端将预先获取一些类似注册用户的信息,然后在本地解析,最后直接与 C 节点进行交互。


原系统的调用过程是通过不同节点间的梯队,通过一个中间总线架,再录入到其他服务上面。这种调用方式让内部调用变成网络调研线,需要三跳,且需要 TOS 加密。


之前我们做了一次网络优化,在三台服务器的情况下,理论上有 30% 的流量是在本地节点就可以完成的,无需跳转到其他节点。但是为了实现无感知部署,我们在总线和客户端做了一些改动,优先考虑本地跳转,并使用本地的 UDS 连接来代替 TCP 连接。近两年,我们又面临同样的问题,而且比以前更复杂。我们正在考虑在分布式系统中,对传输层进行更多的优化。

精彩分享 3


虽然 HTTP/3 在全球范围内,如谷歌、Facebook、YouTube 等已在大量的使用,然而,这并不能代表 HTTP/3 在各种业务线或产品上都有大规模应用。


目前国内在流量大的业务(例如小视频、流媒体等)中,HTTP/3 的使用率相对较高,但在其他业务,如即时通信、游戏等,其应用并不广泛。如果从产品的角度考虑,HTTP/3 的使用在整体产品中占比可能不到 1%,可能在 2000 个产品中只有 20 个产品用到了 HTTP3。


此外,即便在使用了 HTTP/2 或 HTTP/3 的场合,这种应用更多的可能只是在接入层或用户端感知的层面,而在服务之间的通信,仍然多是使用简单的 HTTP,甚至连 HTTPS 都不太常用。在推广新标准方面,尽管安全部门做出了尝试,但业务部门对此并不热衷。因为对业务部门来说,他们更关注业务运行,对推广新的通信协议不太感兴趣。

精彩分享 4


镜像管理是一种关键的信息安全实践,包括对操作系统镜像(而非 Kubernetes 容器镜像)的安全审查。我们做了镜像管理,换句话说,在指定特定的机器可下载镜像;接下来是权限管理,这主要涉及对各类用户的角色和权限进行区分和管理,以防止不适当的数据访问或修改;监控和跟踪是另一个重要的部分,我们已经整合了诸如 Prometheus 和 Skywalking 等工具,并建立了一个中间件系统。这就像一个插件,可以插入到我们的任何项目中,以便实时监控系统的运行状况。


对于网络流量的管理,我们正在研究如何在网关进行拦截并进行数据包分析。例如,我们可以扫描通用的业务数据,找出过去存在漏洞或错误的数据,并创建过滤模板以进行流量拦截。在前后端通讯方面,我们已经开始使用 RSA 加密,这主要是为了解决明文传输的问题。


在数据脱敏方面,我们已经开发了一些插件,可以通过配置来指定特定的数据表和接口,对其进行脱敏处理。虽然这并不是专业的数据脱敏工具,但它已经对我们的应用层提供了一定的保护。

精彩分享 5


在我们的操作过程中,我们普遍采用了长连接策略以减小连接成本和降低数据传输量。我们的数据发送并非实时,而是选择每 10 秒、15 秒或 30 秒采集一次。如果我们只使用短连接,传输中的成本可能会超过实际的数据流量。因此,尽管使用长连接可能会增加服务器资源的使用,我们仍选择采用长连接策略。


长连接在分布式系统中的应用面临一些困难,尤其是在处理有状态的机器时。我们尝试过两种模式,一种是在前端设置一个代理,这个代理负责维护状态,然后再将连接转化为短连接;另一种是在内部使用异步消息,但这种方式存在一些问题。首先是与物联网设备的交互是一个挑战,因为这些设备的处理能力相对较弱。尽管它们使用 TCP 进行通信,但与它们的交互必须是一对一的,如果我们向设备发送多个命令,设备常常会不响应或只响应部分命令。


另一个挑战来自于保证交互的时序。如果我们需要进行多次交互,必须保证每次交互的时序是 100%正确的,而且在这个过程中不能被其他业务打断。这是使用异步消息难以实现的。


为了解决这些问题,我们将整个协议栈的驱动封装到一个服务中,这个服务只处理特定的连接。这个服务的接口已经不再是报文接口,而是业务接口。比如,如果我们需要进行设备升级,只需将升级包发给该设备,然后由协议驱动完成所有交互。然而,这种方式难以保证高可用性。如果容器发生故障,所有的连接都会断开,我们必须找出一种方法将它们迁移到新的服务器上。


初期,我们并不太关心这个问题,因为监控和调度命令不多。然而,当我们开始处理充电桩和车辆时,问题就出现了。我们必须保证充电桩 100%在线。最后,我们设计了一种联动策略,即在调度或升级之前通知设备,让设备主动连接到另一个节点,然后再断开原来的连接,从而解决做了这一问题。

精彩分享 6


在我们的团队中,我们运用了机器学习在监控和运维系统中实施预测和根源分析。例如,我们使用趋势预测来识别监控指标的异常,如果出现了与预期不符的趋势,我们会判断可能出现了故障。此外,我们还运用深度学习对故障的根源进行分析。经过一年左右的研发,我们的系统运行良好。在这个过程中,我们使用了 LSTM 深度神经网络,主要应用于腾讯服务器和腾讯云服务器上的流量和 CPU 阈值的智能判断。对于周期性流量,预测准确率高达 95%,但对于散点型的流量,其效果较一般。


在分布式系统的高可用性中,我们的平台分为故障发现、故障定位和故障修复三个部分。通过优化这三个环节,我们能够提高分布式系统的可用性。而弹性伸缩容在故障发现之后,我们还在预测领域努力研究如何更早地发现问题。我认为,这项技术在未来的工厂检测和调度方面有潜在的优势。这就像大模型能够在特定领域,比如疾病诊断中提供帮助一样,它能够像专家一样,对机器、服务、系统或软件出现的问题进行诊断。

精彩分享 7


我们的团队认识到,虽然很多算法能够学习并得到这些数据,但由于缺乏特定领域的数据,我们无法实施这些算法。所以,我们采取的解决方案是先利用系统层面的通用数据进行模型训练,例如 CPU 使用率和内存使用等,这方面我们取得了一定的成功。然后我们尝试与特定业务合作,比如广告系统或支付系统,因为他们拥有特定的业务数据。


这需要我们首先用通用数据取得一定的成果,如准确率达到 90% 以上,这将提升我们的口碑并成为我们的品牌。然后,我们可以使用他们的数据,对我们的模型进行调优,以得到他们需要的结果。


活动推荐:


FCon全球金融科技大会(2023·上海站)是极客邦科技旗下 InfoQ 中国团队推出的面向金融行业高端技术管理者、技术专家的会议,50%参会者拥有 8 年及以上工作经验。


FCon 聚焦当前金融行业遇到的问题,围绕金融企业在数字化转型过程中的痛点,例如数据治理,智能化、数字化风控,数字化投研,数字化营销,IT 技术能力等方向,邀请国内外金融企业,来分享人工智能、区块链、大模型、大数据、数字货币等新一代信息技术实践话题,帮助听众解决技术和业务上的问题,提升技术能力。欢迎大家报名参会,详细信息可点击这里查看

2023-07-31 11:527580

评论

发布
暂无评论
发现更多内容

网络攻防学习笔记 Day139

穿过生命散发芬芳

9月日更 网站安全基础

消息队列存储消息数据的 MySQL 表格设计

tjudream

数据库 索引 消息队列 架构训练营 表结构设计

1行代码爬CSDN热榜,Python哈啤酒式写法

梦想橡皮擦

9月日更

在线JSON转GraphQL工具

入门小站

工具

非科班程序员求职经历分享,Java面试知识点

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,Java自学宝典pdf

Java 程序员 后端

关于微服务系统中数据一致性的总结

看山

微服务 后端 数据一致性 引航计划 数据自洽

近期焦虑有感

Nydia

内部岗位竞聘报告PPT模板-优页文档

momo

模板 T模板 优页文档

评审通过,开建!

浪潮云

云计算,

固定QPS压测模式探索

FunTester

性能测试 测试框架 压力测试 QPS FunTester

什么是主数据

奔向架构师

主数据 9月日更

19. 今天的人工智能还不能做什么?

数据与智能

人工智能

Prometheus 2.21.0 新特性

耳东@Erdong

release Prometheus 9月日更

Golang 入门指南

baiyutang

编程 程序员 Go 语言 9月日更

高并发下HashMap的死循环是怎么形成的,Java基础知识点汇总

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,熬夜整理Java高频面试题

Java 程序员 后端

手撸二叉树之层序遍历

HelloWorld杰少

9月日更

如何同时压测创建和删除接口

FunTester

性能测试 接口测试 测试框架 压力测试 FunTester

欧美风个人简历自我介绍PPT模板-优页文档

momo

免费PPT模板 优页文档

JVM内存模型学习笔记(一)

风翱

9月日更 JVM内存模型

医疗保健服务宣传和医疗咨询服务PPT模板-优页文档

momo

PT模板 优页文档 优页文档PPT模板

年终总结誓师大会PPT模板-优页文档

momo

模板 优页文档

【Flutter 专题】43 图解 Flutter 适配 AndroidX

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

饿了么4面(Java岗)面经分享,Java技术专家需要掌握的技能

Java 程序员 后端

饿了么4面(Java岗)面经分享,如何在面试中通过工厂模式来给自己加分

Java 程序员 后端

linux之rpm命令

入门小站

Linux

一种优于gzip的压缩方式Brotli

devpoint

9月日更 gzip Brotli

护士礼仪培训PPT模板-优页文档

momo

模板 PT模板 优页文档

Vue进阶(幺贰零):父组件获取子组件验证结果

No Silver Bullet

Vue 9月日更

非科班程序员求职经历分享,阿里P7亲自教你

Java 程序员 后端

构建高效安全的分布式系统:探索新协议、长连接与信息安全实践| Archsummit闭门会_架构_李忠良_InfoQ精选文章