 3.云原生边云协同AI框架实践边侧逐步具备AI能力 分布式协同AI 核心驱动力 分布式协同AI核心驱动力 • 随着边侧算力逐步强化,边缘AI持续演变至分布式协同AI 分布式协同AI技术挑战 1. 边缘资源碎片化 2. 边缘数据孤岛 3. 边缘样本少 4. 边缘数据异构 分布式协同AI 技术挑战 边云协同AI框架 第二部分 首个分布式协同AI开源项目Sedna 基于KubeEdge提供的边云协同能力,支持现有AI类应用无缝下沉到边缘 SIG成员在AI顶会IJCAI 上分享分布式协同AI论文 Sedna斩获中国信通院云边协 同应用创新大赛最佳创新奖 ✓ 数据集管理 ✓ 模型管理 ✓ …… 基础框架 ✓ 协同推理 ✓ 增量学习 ✓ 联邦学习 ✓ 终身学习 训练推理框架 ✓ 主流AI框架 ✓ 模块算法 ✓ 可扩展算法接口 ✓ …… 兼容性 项目地址:https://github.com/kubeedge/sedna 面向AI开发者和应用开发者, 暴露边云协同AI功能给 应用 Cloud Edge Local Controll er KubeEdge Cloud Node Edge Node 增量训练 管理 数据集管理, 模型管理, 状态同步 协同推理 管理 联邦学习 管理 Local Controller Worker Worker Worker 边侧推理 Lib0 码力 | 37 页 | 2.36 MB | 1 年前3 3.云原生边云协同AI框架实践边侧逐步具备AI能力 分布式协同AI 核心驱动力 分布式协同AI核心驱动力 • 随着边侧算力逐步强化,边缘AI持续演变至分布式协同AI 分布式协同AI技术挑战 1. 边缘资源碎片化 2. 边缘数据孤岛 3. 边缘样本少 4. 边缘数据异构 分布式协同AI 技术挑战 边云协同AI框架 第二部分 首个分布式协同AI开源项目Sedna 基于KubeEdge提供的边云协同能力,支持现有AI类应用无缝下沉到边缘 SIG成员在AI顶会IJCAI 上分享分布式协同AI论文 Sedna斩获中国信通院云边协 同应用创新大赛最佳创新奖 ✓ 数据集管理 ✓ 模型管理 ✓ …… 基础框架 ✓ 协同推理 ✓ 增量学习 ✓ 联邦学习 ✓ 终身学习 训练推理框架 ✓ 主流AI框架 ✓ 模块算法 ✓ 可扩展算法接口 ✓ …… 兼容性 项目地址:https://github.com/kubeedge/sedna 面向AI开发者和应用开发者, 暴露边云协同AI功能给 应用 Cloud Edge Local Controll er KubeEdge Cloud Node Edge Node 增量训练 管理 数据集管理, 模型管理, 状态同步 协同推理 管理 联邦学习 管理 Local Controller Worker Worker Worker 边侧推理 Lib0 码力 | 37 页 | 2.36 MB | 1 年前3
 Go在数据库中间件的应用语言特性精炼,容易入门 • 开发效率高,代码逻辑清晰 • 运行性能强,节省机器资源 • 部署维护方便 • 生态圈完善 4 Golang特性 • Go语法简练;没有学习压力 • 开发效率高;语言描述能力接近于脚本语言 • 性能高;接近于C/C++,充分利用资源 • 容易部署;可执行程序,编译时解决上线部署、运行时的依赖 • 强大的标准库、丰富的第三方库、go test、pprof • 自动 表迁移:整张表的数据从一个Mysql迁移到另一个 • 表拆分:数据表的部分数据从一个Mysql迁移到另一个 • 扩容流程 • 工作方式:mysqldump导存量数据 + 通过binlog追增量 • 工作过程 • 首先,导出存量数据 • 其次,订阅binlog变更,追增量 • 再次,待同步后,修改路由规则 • 最后,清理不需要的冗余数据 13 在线平滑扩容 • 扩容时序图 14 系统管理命令 • 系统命令 150 码力 | 17 页 | 4.02 MB | 1 年前3 Go在数据库中间件的应用语言特性精炼,容易入门 • 开发效率高,代码逻辑清晰 • 运行性能强,节省机器资源 • 部署维护方便 • 生态圈完善 4 Golang特性 • Go语法简练;没有学习压力 • 开发效率高;语言描述能力接近于脚本语言 • 性能高;接近于C/C++,充分利用资源 • 容易部署;可执行程序,编译时解决上线部署、运行时的依赖 • 强大的标准库、丰富的第三方库、go test、pprof • 自动 表迁移:整张表的数据从一个Mysql迁移到另一个 • 表拆分:数据表的部分数据从一个Mysql迁移到另一个 • 扩容流程 • 工作方式:mysqldump导存量数据 + 通过binlog追增量 • 工作过程 • 首先,导出存量数据 • 其次,订阅binlog变更,追增量 • 再次,待同步后,修改路由规则 • 最后,清理不需要的冗余数据 13 在线平滑扩容 • 扩容时序图 14 系统管理命令 • 系统命令 150 码力 | 17 页 | 4.02 MB | 1 年前3
 1.每秒百万数据点 Go 应用监控系统演进数值相同,那么只存储第一个值 ○ 数值是等差数列,那么只存存储第一个值和 Delta 值 ○ Gauges 类型的 value 先用一阶增量编码( Delta )压缩,然后再用 zigzag 算法压缩 ○ Counters 类型的 value 先用二阶增量编码( Delta of Delta )压缩,然后再用 zigzag 算法压缩 ● 最后再应用 ZSTD 算法进行二次压缩 Prometheus0 码力 | 42 页 | 2.32 MB | 1 年前3 1.每秒百万数据点 Go 应用监控系统演进数值相同,那么只存储第一个值 ○ 数值是等差数列,那么只存存储第一个值和 Delta 值 ○ Gauges 类型的 value 先用一阶增量编码( Delta )压缩,然后再用 zigzag 算法压缩 ○ Counters 类型的 value 先用二阶增量编码( Delta of Delta )压缩,然后再用 zigzag 算法压缩 ● 最后再应用 ZSTD 算法进行二次压缩 Prometheus0 码力 | 42 页 | 2.32 MB | 1 年前3
 2.Go语言实现中的几个研究课题_毛康力跟Java相⽐比,Go内存⽅方⾯面有⼀一些不同: • 指针更少 • ⼤大量的栈上分配 • ⼤大量的goroutine • 没有对象头 垃圾回收 • 并发->精确 • 是否分代?压缩?增量? Go1.5 GC • Go's new garbage collector is a concurrent, tri- color, mark-sweep collector 垃圾回收0 码力 | 37 页 | 566.26 KB | 1 年前3 2.Go语言实现中的几个研究课题_毛康力跟Java相⽐比,Go内存⽅方⾯面有⼀一些不同: • 指针更少 • ⼤大量的栈上分配 • ⼤大量的goroutine • 没有对象头 垃圾回收 • 并发->精确 • 是否分代?压缩?增量? Go1.5 GC • Go's new garbage collector is a concurrent, tri- color, mark-sweep collector 垃圾回收0 码力 | 37 页 | 566.26 KB | 1 年前3
 2.1.1 Golang主动式内存缓存的优化探索之路一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新  被动方式  缓存过期  定期同步  主动方式  监听数据变化 数据加载,更新 02. 全量数据加载,增量数据监听 • 每个应用服务分别消费数据变更消息 • 一个应用服务消费数据变更,应用服务集群内广播 Maxwell是一个能实时读取MySQL二进 制日志binlog,并生成JSON格式的消 息,作为生产者发送给Kafka、0 码力 | 48 页 | 6.06 MB | 1 年前3 2.1.1 Golang主动式内存缓存的优化探索之路一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新  被动方式  缓存过期  定期同步  主动方式  监听数据变化 数据加载,更新 02. 全量数据加载,增量数据监听 • 每个应用服务分别消费数据变更消息 • 一个应用服务消费数据变更,应用服务集群内广播 Maxwell是一个能实时读取MySQL二进 制日志binlog,并生成JSON格式的消 息,作为生产者发送给Kafka、0 码力 | 48 页 | 6.06 MB | 1 年前3
 1.6 resource scheduling & container technology for financial service_yujun类似于操作系统 中的内存碎片问题。  ④ YARN适合Long  running  job和数据分析类资源的调度,对于数 据库类等短运行时场景资源调度效果较差  ⑤ YARN采用了增量资源分配机制(当应用程序申请的资源暂时无 法保证时,为应用程序预留一个节点上的资源直到累计释放的空 闲资源满足应用程序需求),这种机制会造成浪费,但不会出现 饿死现象  ⑥ Mesos  和0 码力 | 21 页 | 27.20 MB | 1 年前3 1.6 resource scheduling & container technology for financial service_yujun类似于操作系统 中的内存碎片问题。  ④ YARN适合Long  running  job和数据分析类资源的调度,对于数 据库类等短运行时场景资源调度效果较差  ⑤ YARN采用了增量资源分配机制(当应用程序申请的资源暂时无 法保证时,为应用程序预留一个节点上的资源直到累计释放的空 闲资源满足应用程序需求),这种机制会造成浪费,但不会出现 饿死现象  ⑥ Mesos  和0 码力 | 21 页 | 27.20 MB | 1 年前3
 2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华Event(编程难度) • 开发效率 –语言的描述效率:代码量 –语言的简洁、易用 –库支持 后台程序开发的需求(2) • 大型程序的组织 –数据封装能力 –Namespace • 可测试能力 –单测,覆盖度测量 • 错误检查能力 –编译 –程序异常的trouble shooting 后台程序开发的需求(3) • 上线和运维 –对运行环境的依赖 –对库(动态库)的依赖 后台程序编程的难点 相差5-10倍 – 内存的处理是一个难点 – dict/map, list C vs Python (2) • 大型程序的组织 – C: 无namespace • 可测试能力 – C、python都有*Unit测试框架 • 错误检查能力 – C: 编译,core dump 调试成本 – Python: • 无编译,可用pylint做检查,易出低级错误 • 错误,exception 屏蔽底层的机制,充分利用cpu资源 –多线程模型:容易思考 • 开发效率 –描述能力和python接近 –较丰富的库(系统库,第三方库) Golang (2) • 大型程序的组织 –Package –数据访问的限制(首字母大小写的区别) • 可测试能力 –内置的单测和覆盖检查工具,易于做TDD –go test • 错误检查能力 –严格的编译阶段检查:强类型,文件包含,… –Panic,便于定位问题0 码力 | 35 页 | 730.17 KB | 1 年前3 2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华Event(编程难度) • 开发效率 –语言的描述效率:代码量 –语言的简洁、易用 –库支持 后台程序开发的需求(2) • 大型程序的组织 –数据封装能力 –Namespace • 可测试能力 –单测,覆盖度测量 • 错误检查能力 –编译 –程序异常的trouble shooting 后台程序开发的需求(3) • 上线和运维 –对运行环境的依赖 –对库(动态库)的依赖 后台程序编程的难点 相差5-10倍 – 内存的处理是一个难点 – dict/map, list C vs Python (2) • 大型程序的组织 – C: 无namespace • 可测试能力 – C、python都有*Unit测试框架 • 错误检查能力 – C: 编译,core dump 调试成本 – Python: • 无编译,可用pylint做检查,易出低级错误 • 错误,exception 屏蔽底层的机制,充分利用cpu资源 –多线程模型:容易思考 • 开发效率 –描述能力和python接近 –较丰富的库(系统库,第三方库) Golang (2) • 大型程序的组织 –Package –数据访问的限制(首字母大小写的区别) • 可测试能力 –内置的单测和覆盖检查工具,易于做TDD –go test • 错误检查能力 –严格的编译阶段检查:强类型,文件包含,… –Panic,便于定位问题0 码力 | 35 页 | 730.17 KB | 1 年前3
 02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力com/question/55912398/ answer/147967674 Service Mesh 的初衷 6 • 升级成本高 • 业务解耦 • 平滑升级 • 异构语言治理 • 异构语言治理能力弱 • SDK 版本不统一 应用 SDK 服务路由 负载均衡 通信序列化协议 sidecar 应用 SDK 通信序列化协议 业务逻辑 服务路由 熔断限流 进程通信 熔断限流 Mesh vs Runtime 18 低 能力丰富度 Service Mesh Runtime 分布式能力原语合集 定位 具有明确语义的 API 交互方式 通信协议 网络代理 定位 流量拦截 交互方式 私有协议 通信协议 高 能力丰富度 Http/gRPC 标准协议 19 Dapr Dapr 20 • 提供多种分布式能力 • 对接了丰富的基础组件 • 厂商解绑,跨云部署 云也很好,你通过我的服务可以无缝 使用 A 云和 B 云 • 被 C 锁定 POD container App container container Dapr • 缺失 Service Mesh 能力 • 运维成本飙升 • 稳定性有待验证 • 稳定性更难保证 MOSN POD container App container container Dapr MOSN 23 Layotto0 码力 | 63 页 | 880.85 KB | 1 年前3 02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力com/question/55912398/ answer/147967674 Service Mesh 的初衷 6 • 升级成本高 • 业务解耦 • 平滑升级 • 异构语言治理 • 异构语言治理能力弱 • SDK 版本不统一 应用 SDK 服务路由 负载均衡 通信序列化协议 sidecar 应用 SDK 通信序列化协议 业务逻辑 服务路由 熔断限流 进程通信 熔断限流 Mesh vs Runtime 18 低 能力丰富度 Service Mesh Runtime 分布式能力原语合集 定位 具有明确语义的 API 交互方式 通信协议 网络代理 定位 流量拦截 交互方式 私有协议 通信协议 高 能力丰富度 Http/gRPC 标准协议 19 Dapr Dapr 20 • 提供多种分布式能力 • 对接了丰富的基础组件 • 厂商解绑,跨云部署 云也很好,你通过我的服务可以无缝 使用 A 云和 B 云 • 被 C 锁定 POD container App container container Dapr • 缺失 Service Mesh 能力 • 运维成本飙升 • 稳定性有待验证 • 稳定性更难保证 MOSN POD container App container container Dapr MOSN 23 Layotto0 码力 | 63 页 | 880.85 KB | 1 年前3
 Golang大规模云原生应用管理实践云原生应用 云原生是以容器技术为基础围绕着Kubernetes进行的一场技术标准化演进。通过标准可扩展的调度,网络, 存储,容器运行时接口来提供基础设施;通过标准可扩展的声明式资源和控制器来提供运维能力。两层标 准化推进了细化的社会分工,各领域进一步提升规模化和专业化,全面达到成本,效率,稳定性的优化。 4 6 7 2 3 5 1 1 Kubectl plugins 2 Apiserver • 运维成本高:Apiserver, etcd, Controller-Manager, Kubelet,等组件都具有一定复杂度,无法做到定期升 级以维持安全,高可用,高性能的状态; • … 能力复用 自动化 可观测 稳定 安全 开发者真正想要的是策略:大象无形的基础设施,坚如磐石的中间件,丰富高效的应用PaaS平台 基础设施 云原生PaaS平台提供应用管理策略 基础设施 K8s com/oam-dev/spec • 应用 • 组件1(工作负载) • 运维特征1 • 运维特征2 • … • 组件2 (工作负载) • 运维特征1 • 运维特征2 • … • … 作用域 能力定义 依赖编排 组件版本 服务绑定 OAM应用模型 apiVersion: core.oam.dev/v1alpha2 kind: ApplicationConfiguration metadata:0 码力 | 23 页 | 7.70 MB | 1 年前3 Golang大规模云原生应用管理实践云原生应用 云原生是以容器技术为基础围绕着Kubernetes进行的一场技术标准化演进。通过标准可扩展的调度,网络, 存储,容器运行时接口来提供基础设施;通过标准可扩展的声明式资源和控制器来提供运维能力。两层标 准化推进了细化的社会分工,各领域进一步提升规模化和专业化,全面达到成本,效率,稳定性的优化。 4 6 7 2 3 5 1 1 Kubectl plugins 2 Apiserver • 运维成本高:Apiserver, etcd, Controller-Manager, Kubelet,等组件都具有一定复杂度,无法做到定期升 级以维持安全,高可用,高性能的状态; • … 能力复用 自动化 可观测 稳定 安全 开发者真正想要的是策略:大象无形的基础设施,坚如磐石的中间件,丰富高效的应用PaaS平台 基础设施 云原生PaaS平台提供应用管理策略 基础设施 K8s com/oam-dev/spec • 应用 • 组件1(工作负载) • 运维特征1 • 运维特征2 • … • 组件2 (工作负载) • 运维特征1 • 运维特征2 • … • … 作用域 能力定义 依赖编排 组件版本 服务绑定 OAM应用模型 apiVersion: core.oam.dev/v1alpha2 kind: ApplicationConfiguration metadata:0 码力 | 23 页 | 7.70 MB | 1 年前3
 2.2.2 深入理解BFE01 BFE的设计思想 02 BFE的实现机制 03 为什么需要BFE? • 没有统一七层接入的问题 • 功能重复开发 • 运维成本高 • 流量统一控制能力低 • 引入BFE后 • 功能统一开发 • 运维统一管理 • 流量控制能力增强 • BFE平台的主要功能 • 接入和转发,流量调度,安全防攻击,数据分析 BFE部署前 BFE部署后 L4LB 业务A 集群 业务B 集群 无法利用CPU亲和性(CPU Affinity) • 无法控制底层线程 七层负载均衡的生态选择 Nginx / OpenResty 生态 • 利用Nginx积累 的大量功能 • 利用Lua的快速 开发能力 • 代表:Nginx, APISIX Envoy 生态 • 最早用于 Service Mesh • 也可用于网关 • 代表:Envoy Go 生态 • 基于Go语言的生 态积累 • 七层负载均衡 BFE主要设计思想 • 转发模型优化 • 支持多租户 • 引入条件表达式,减少正则表达式使用 • 降低动态配置加载的难度 • 区分“常规配置”和“动态配置” • 增强服务状态监控能力 • 向外展现大量内部的执行状态 • 将大存储功能转移到外部 • 加快启动速度 正则表达式 方案的问题 • 配置难以维护:正则表达式存在严重的可读 性问题 • 性能存在隐患:有可能因编写不当引起严重0 码力 | 26 页 | 1.78 MB | 1 年前3 2.2.2 深入理解BFE01 BFE的设计思想 02 BFE的实现机制 03 为什么需要BFE? • 没有统一七层接入的问题 • 功能重复开发 • 运维成本高 • 流量统一控制能力低 • 引入BFE后 • 功能统一开发 • 运维统一管理 • 流量控制能力增强 • BFE平台的主要功能 • 接入和转发,流量调度,安全防攻击,数据分析 BFE部署前 BFE部署后 L4LB 业务A 集群 业务B 集群 无法利用CPU亲和性(CPU Affinity) • 无法控制底层线程 七层负载均衡的生态选择 Nginx / OpenResty 生态 • 利用Nginx积累 的大量功能 • 利用Lua的快速 开发能力 • 代表:Nginx, APISIX Envoy 生态 • 最早用于 Service Mesh • 也可用于网关 • 代表:Envoy Go 生态 • 基于Go语言的生 态积累 • 七层负载均衡 BFE主要设计思想 • 转发模型优化 • 支持多租户 • 引入条件表达式,减少正则表达式使用 • 降低动态配置加载的难度 • 区分“常规配置”和“动态配置” • 增强服务状态监控能力 • 向外展现大量内部的执行状态 • 将大存储功能转移到外部 • 加快启动速度 正则表达式 方案的问题 • 配置难以维护:正则表达式存在严重的可读 性问题 • 性能存在隐患:有可能因编写不当引起严重0 码力 | 26 页 | 1.78 MB | 1 年前3
共 37 条
- 1
- 2
- 3
- 4














 
 