- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
宋顾杨-Ray-os2atc2023-v3
展开查看详情
1 .通用分布式计算引擎RAY 云原生环境下如何快速构建分布式系统 2023年3月 OS2ATC 宋顾杨 蚂蚁集团
2 .About me 2020-今 Ray开源社区Committer ⚫ C++分布式框架 作者 ⚫ Runtime Environments 维护者 2017-今 蚂蚁集团-新计算引擎团队 ⚫ 参与和推动了Ray在蚂蚁集团从0到1再到万台服务器规模的落地 2015-2016 蚂蚁集团-应用网络团队 ⚫ 7层网关,支付宝钱包网络自研协议
3 .目录 1 分布式系统复杂性 2 Ray简介 3 利用Ray快速构建分布式系统 4 Ray开源现状
4 .01 分布式系统 复杂性
5 .一个AutoML的case AutoML service worker • 云原生 5.training 多角色 1.Request {data…models…} 3.start • training worker • 高弹性 client proxy trainer 8.Query result 6.Monitor results … • 动态化 • 有状态 4.Deploy workers worker • 频通信 2.Deploy trainer 7. Delete trainer Kubernetes
6 . 技术栈分析 AutoML service worker worker client proxy trainer … worker Kubernetes asyncio 技术栈
7 .编程语言分析 应用服务 实现了在线支付业 容器定制 原生运维 原生部署 通信协议 务、离线计算等的强 隔离
8 .分布式系统通用能力
9 .02 Ray简介
10 .Ray是什么 ➢ 由加州大学伯克利分校RISELab发起并开源 ➢ 通用分布式计算引擎 ➢ 新一代计算基础设施
11 .通用分布式编程API Key idea:不绑定计算模式, 把单机编程中的基本概念分布式化 Function -> Task Class -> Actor
12 .通用分布式编程API:无状态计算单元Task 单机(Function) 分布式(task) 把普通 function 变成 remote task 异步调用,远程执行 获取结果
13 .通用分布式编程API:分布式object 1.Task request heavy_compute. heavy_compute( …) remote(i) 6.Get object 4.fetch object 2.Save object 3. Notify Raylet Raylet Object store Object store 5. Fetch object Node 1 Node 2 分布式object store ObjectRef ➢ 多节点之间Object传输 ➢ 同节点内shared memory ➢ 自动垃圾回收 ➢ Object spilling
14 .通用分布式编程API:有状态计算单元Actor 单机(Class) 分布式(Actor) 把普通Class变成Actor Class 创建远程Actor对象, 返回Actor Handle 远程调用Actor方法
15 .03 利用Ray快速 构建分布式系统
16 .AutoML Service——部署Ray集群 一键云上部署 自定义部署 $ ray up -y config.yaml 部署head节点: $ ray start --head 部署worker节点: $ ray start –address${HRAD_ADDRESS}
17 .AutoML Service AutoML service worker Ray Task worker Ray Task client proxy trainer Ray Client Ray Actor Ray Actor … worker Ray Task Ray Kubernetes
18 .AutoML Service——worker(Ray Task)
19 .AutoML Service——Trainer(Ray Actor) 动态创建分布式task
20 .AutoML Service——Proxy (Ray Actor) 动态创建分布式 actor 部署并设置 name
21 .AutoML Service——Client 服务发现 服务访问 异步获取结果
22 .AutoML Service——定制资源 支持的资源类型: • CPU 设置资源 • GPU • Memory • 自定义 高级功能 • 资源组 • 亲和性&反亲和性
23 .AutoML Service——运行时环境 定制python环 ➢ 通过代码灵活配置 境 Job/Actor/Task的环境依赖 ➢ 支持的依赖类型 Pip(venv) / Conda / Container / 自定义插件 重 轻 用户体验 Container Conda Venv Process L4 L3 L2 L1 隔离性 强 弱
24 .AutoML Service——运维与监控 ⚫ Ray Dashboard ➢ Nodes、Actors ➢ Logs、events ➢ profiling ⚫ State Client ⚫ Metrics/Tracing
25 .Ray的架构 Worker Node Worker Node Driver Worker Driver Worker Object Store Object Store (Shared Memory) (Shared Memory) Raylet agent Raylet agent Head Node GCS Dashboard Backend Storage
26 .小结 分布式AutoML Service • 基于Ray的集群和Actor实现了部署 • 基于Ray的named actor实现了服务发现 . . • 基于Ray的Task实现了组件通信 • 基于Ray的调度实现了定制资源 • 基于Ray的Runtime Env解决了环境依赖问题 原生开发方式 Ray开发方式 完整Demo地址 https://github.com/SongGuyang/ray-python-example
27 .04 Ray开源现状
28 .活跃度 https://github.com/ray-project/ray 17年开源至今 700+ 24k+ 16k+ 4.8K+ Contributor stars commits Slack user
29 .企业应用 www.anyscale.com/user-stories