Golang在接入层长连接服务中的实践-黄欣
Golang 在接入层长连接服务中的实践 黄欣 基础平台-架构部 目录 • 背景 • 架构 • 心得 目录 • 架构 • 心得 背景—why 长连接? • 业务场景 – 大量实时计算 • 司机乘客撮合 • 实时计价 – 高频度的数据交互 • 坐标数据 • 计价数据 – App和服务端双向可达 • 上行(抢单) • 下行(派单) 背景—why golang? • 开发效率0 码力 | 31 页 | 1.67 MB | 1 年前3基于Consul的多Beats接入管控与多ES搜索编排
barryliang@tencent.com 基于Consul的多Beats接入 管控与多ES搜索编排 2 拥抱开源、释放云原生的力量 • 背景与挑战 • 多Beats/Logstash接入管控 • 多ES搜索编排系统 • 日志AIOps探索 3 背景与挑战 产品数量 人员规模 主机规模 100+ 1000 + 10000 + 如何降低日志接入门槛 如何保证日志实时上报 如何保障日志采集不影响业务 如何做配置标准化 如何帮助业务快速排障 如何提供方便便捷的性能分析 调优能力 … 4 多Beats/Logstash接入 管控 提供多产品接入管理,多beats标准 化、界面化、自动化的日志接入方案 5 案例:1000+业务10000+台 主机如何快速实现日志接入? 业务规模 1000+业务、 10000+业务主机、每天百T日志增量 日志需求 收集业务日志文件用于故障分析与告警监控 其他诉求 日志上报不能影响核心业务 数据上报延时可感知 准备ES 安装Filebeat 编写Filebeat配置文件 测试并下发配置 全网重启filebeat 检测数据是否上报 传统Beats接入流程 配置更改 现网配置是否全部一致? 日志上报是否有延时? Filebeat是否资源消耗过多? Filebeat异常退出如 何处理? 如何做上报性能调优? 6 系统架构 云Kafka0 码力 | 23 页 | 6.65 MB | 1 年前32019-2021 美团技术年货 前端篇
进行编译干预与优化(如按需分离 main.dart.js),减小资源包大小,有效提升 页面加载性能。 ● Flutter Web 基建:完善并优化开发、调试、编译、构建、部署链路,使得新 老项目能快速接入 Flutter Web。 ● Flutter Web 在 PC 侧的复用:与 UED 团队共同制订 PC 与 App 适配规范, 同时基于 Dart2js 和 dart:ui (Web)的强大能力,实现逻辑的抽象,完成组 的内容,但在 Flutter Tree-Shaking 的运行机制下,各个项目引用不同的 Framework Widget,就会导 致每个项目生成的 main.dart.js 内容不一致。随着接入 FlutterWeb 的项目越来越 多,每个业务的页面互访概率也越来越高,我们的期望是当访问 A 业务时,可以预先 缓存 B 业务引用的 main.dart.js,这样当用户真正进入 B 业务时就可以节省加载资 这样就节省了大量资源加载的时间,下图为命中缓存后资源加载情况: 图 19 预缓存效果展示 目前,美团外卖商家端业务已有 10+ 个页面接入了预缓存功能,资源加载 90 线 平均值由 400ms 下降到 350ms,降低了 12.5%;50 线平均值由 114ms 下降到 100ms,降低了 12%。随着项目接入接入越来越多,预缓存的效果也会越发的明显。 图 20 预缓存数据展示 52 > 2021年美团技术年货 40 码力 | 738 页 | 50.29 MB | 1 年前3高效智能运维[云+社区技术沙龙第29期] - 冲上云霄—腾讯海量业务上云实践
业务上云的价值 03 如何上云 目录 04 上云案例分享 腾讯业务为什么要上云 接入服务 业务 服务框架 KV/RDS CVM/Docker 接入服务 业务 服务框架 KV/RDS CVM/Docker 接入服务 业务 服务框架 KV/RDS CVM/Docker 接入服务 业务 服务框架 KV/RDS CVM/Docker IEG PCG WXG 服务开源生态 • 为行业输出公有云迁移经验 • 更丰富的云服务和工具提供给 客户 业务价值 工程师价值 客户价值 如何上云? --提升上云效率,降低迁移风险 业务上云策略 CLB 接入服务 业务 服务框架 Redis/CKV COS Docker/K8S/TKE CKafka CDB/Mysql IEG PCG WXG CDG CISG TEG ⚫公有云专线与自研互通 云上部署 业务验证 效果评估 问题优化 正式上云 运营维护 上云各环节注意点 业务上云 测试 方案 迁移 混合 质量 功能、性能测试,云上云下对比 安全、容量、难度、风险、数据 接入服务、逻辑服务、数据存储、文件存储 混合云过度到全量公有云 服务调用质量、用户访问质量、 服务可用率 数据上公有云 • 冷迁移+增量 •同步中心数据同步 •切换过程停写 私有组件迁移上云0 码力 | 26 页 | 2.39 MB | 1 年前3蚂蚁金服网络代理演进之路
Katran GFE BFE TGW Nginx Apache httpd SOFAMosn Envoy Linkerd网络的挑战网络的挑战 高效接入 访问加速 容量 稳定性 高可用 灵活弹性 安全合规 防攻击蚂蚁金服网络接入十年变迁 2010年前部署商用设备 前世 01 2010 开始网络代理白盒 化,定制业务逻辑,软 硬件一体解决方案 自研 02 2015 年无线通道协议,安 全面使用DPDK技术重构 Ø EBPF,XDP Ø 可编程交换芯片(P4语言) Ø 四层负载均衡-IPVS Ø NAT网关蚂蚁七层网络代理 Google Spanner?蚂蚁七层网络接入代理 Spanner蚂蚁七层网络接入代理 AGNA (Ant Global Network Accelarator) 网商 信用 保险 财富 支付 国际支付 小程序 微贷 科技开放 物联网 Spanner 2015 • All in 无线,通信通道全面升级(MMTP,MTLS协议) 2016 • 安全防护能力提升,WAF,流量镜像 2018至 今 • 通信协议,架构,安全再次升级(物联终端接入,QUIC协议,国密,可信计算, 海外加速,云原生)金融级三地五中心容灾架构(LDC) 单机房 LDC 同城双活 LDC 异地多活 LDC 弹性伸缩混部 LDC DB Region0 码力 | 46 页 | 19.93 MB | 5 月前3美团点评2018技术年货
和服务抖动的问题。通过接入的SDK化,可以做到数据的本地缓存更新机制,解除对中心化服务的依赖, 大大提升服务的稳定性和性能。同时整个APPKIT服务变成可水平扩展,在扩展过程中也不会影响中心服 务的稳定性。 四、APPKIT架构 四、APPKIT架构 APPKIT运营配置系统整体框架如下(数据流向如箭头所示)。从功能角度,大体上分为四层:数据层、 服务层、接入层和监控层。 APPKIT打造稳定、灵活、高效的运营配置平台 内存的消耗问题,又解决了城市过滤的性能问题。 4.2 服务层 4.2 服务层 服务层向下对底层数据进行操作;向上为接入层获取数据提供接入能力。其提供四个服务能力:运营后 台、开放平台、数据服务、APPKIT-SDK,如下表所列: 服务层 4.3 接入层 4.3 接入层 接入层主要为运营人员、业务研发提供接入能力。通过运营流程化为事前、事中、事后提供保障。一个运 营资源从制作到最后在C端展示,需要经过运营 APPKIT-SDK运行在业务机器上,这里就涉及到多台机器的数据一致性问题。同时,随着业务接入运营 数据的增多,SDK对机器内存势必有一定消耗。基于服务的稳定性考虑,我们对SDK运行时的投放内容进 行监控,其主要监控两个指标:运营位数及每个运营位的配置总数。这样做可以带来以下几个好处: 1. 对接入的业务数及机器数进行统计。 2. 通过SDK的配置总数监控,防止数量超过最大限制。 同时0 码力 | 229 页 | 61.61 MB | 1 年前3Nacos架构&原理
Metrics:暴露标准 Metrics 数据,方便与三方监控系统打通。 Trace:暴露标准 Trace,方便与 SLA 系统打通,日志白平化,推送轨迹等能力,并且可以和计 量计费系统打通。 接入管理:相当于阿里云开通服务,分配身份、容量、权限过程。 用户管理:解决用户管理,登录,SSO 等问题。 权限管理:解决身份识别,访问控制,角色管理等问题。 Nacos 架构 < 20 传统微服务架构下的 Nacos 我们先看下传统微服务架构下的 Nacos,其流量从 Tengine 进入,经过微服务网关,然后再进入 微服务体系。 之所以分为两层网关,是因为第⼀层 Tegine 是负责流量的接入,核心具备的能力是抗大流量、安 全防护和支持 https 证书,追求的是通用性、稳定性和高性能。第二层是微服务网关,这层网关侧 重的是认证鉴权、服务治理、协议转换、动态路由等微服务相关的能力,比如开源的 Nacos 随着云原生技术的发展和微服务 2.0 架构的提出,很多公司正在尝试通过服务网格技术去解决微服 务 1.0 架构中的问题。在微服务架构 2.0 架构中,流量是通过 ingress 网关接入的,进入微服务 体系,与 1.0 架构不同的是引入了数据面 Envoy 和控制面 Istio,Envoy 以 Sidecar 模式与应用部 署在同⼀个 Pod 中,会劫持应用的进出流量,然后可以通过控制面0 码力 | 326 页 | 12.83 MB | 9 月前3张波-虎牙直播在微服务改造中的实践
微服务改造事项 DNS-F在数据 库场景的落地 名字服务在负 载均衡场景的 落地 DNS-F在微服 务场景的落地 应用层探活 数据库故障 恢复时间长 服务故障牵 引慢,流量 接入生效时 间长 DNS生效慢 内部服务无 就近接入能 力 服务性能下 降流量不摘 除 实 例 切 换 能 力 秒 级 流 量 牵 引 能 力 D N S 就 近 接 入 能 力 异 常 摘 除 能 力 dmx 华中IDC 华北IDC Nginx Nginx Nginx Web server 专线 背景 负载均衡变更需要更新配置发布后 才能生效,节点扩缩容,屏蔽操作 需要人工参与,流量接入接出时间 长 目标 流量接入接出时长低于30秒 负载均衡配置下发无状态改造 虎牙负载均衡部署的机器数百,配置下发的可靠性保障,一致性保障要求特别严格, 如果出现配置下发不及时,或下发配置失败,极大可能出现故障,同时负载均衡服 节点 配置中心监听方式 客户端主动监听配置更新,配置秒 级生效,新扩容服务主动拉取全量 配置,流量接入时长缩短3分钟+ 配置名字服务 配置IP方式 服务端下发文件更新配置,更新配 置生效时间长,由于需要预先知道 负责均衡集群的机器信息,扩缩容 需要等元信息同步以后才能接入流 量,扩容流量接入时间长 负载均衡节点对接名字服务 虎牙负载均衡部署的机器一台机器上可能存在数百的配置,每次节点生效需要重新0 码力 | 27 页 | 1.03 MB | 1 年前3Istio 在 Free Wheel 微服务中的实践
权、监控、限流 都可以用Istio原生的机制来完成 • 扩展Mixer:选择一部分流量来应用对应的授权逻辑 FreeWheel的Istio实践 • 右图为接入FreeWheel自定义认证和 授权模块的原理图 扩展Sidecar接入认证 • 修改 istio-system/istio-sidecar- injector 这个ConfigMap,加入自定 义反向代理 FreeWheel的Istio实践 容器内环境变量自 动建立master连接,需要管理额外的kubeconfig • Sidecar内的服务流量默认是不被劫持的,如果需要劫持需要添加额 外的annotation 扩展Mixer接入授权 • 右图为Mixer的基本原理,Template 是对Proxy上报的Attribute的特定处 理机制的框架,支持四类: • Preprocess: 汇总流量相关元数据 和环境(k8s)相关的元数据 择一部分来引入额外的机制(如权限控制、限流等),在应用运维中 这是很重要的能力,只要是不修改请求、响应的功能都可以采用扩展 Mixer来实现 • Sidecar里接入额外的反向代理其实提供了一个修改请求、响应的接口 ,如认证之后需要将用户信息通过header传给下游服务 扩展Mixer接入授权 • 这里实现的例子mymock会完全拒绝所有 被匹配到的流量,右图是mymock Handler的基本原理 • mymock0 码力 | 31 页 | 4.21 MB | 1 年前3Zadig 面向开发者的云原生 DevOps 平台
署、找环境,服务编排等 Infra 的事情。 1 0 0 % 开 源 基 本 能 力 开 源 1.5 个月核心重构 65% 功能实现开源 支撑开源社区开发者环境 易 用 性 增 强 接入:安装 10 分钟以内,成功率达 90% 集成环境:支持开发者 Remote debug 工作流:效率和性能、开发者体验提升 贡献者流程建立 开 放 社 区 搭 建 2021 年 企业交付案例场景深化 开 发 者 场 景 挖 掘 3-5 个领域敏感型场景 建立产品发展委员会 贡献者流程优化 2022 年 9 月 场 景 深 化 能 力 增 强 Helm/K8s YAML/ 托管场景接入流程优化 UX/UI 升级,工程师一线体验优化 推出效能看板,实时客观度量工程数据指标 效 率 优 化 、 开 发 者 体 验 增 强 2023 年 面向生态伙伴开放场景 面向开发者提供 个月共迭代 21 个版本 “ ” 开发者常处于 今天发版、明早升级 嗷嗷待哺状态 Zadig 优势、使用场景、解决问题域 Zadig 解决问题域 Zadig 云原生开放性:极简、 0 负担接入 Zadig 业务架构 Zadig 系统架构 1 Zadig 行业方案 对比分析 职能 传统 DevOps 方案 ZadigX 云原生 DevOps 方案 降本提效 组织能力提升 业务负责人0 码力 | 59 页 | 81.43 MB | 1 年前3
共 301 条
- 1
- 2
- 3
- 4
- 5
- 6
- 31