使用Ray构建可扩展的Python应用
Holden Karau, Boris Lublinsky
高晓明, 冯炜 译
出版时间:2024年12月(预计)
页数:280(预计)
“本书是一份简明实用的指南,帮助你采用并有效使用Ray。凭借多年在数据系统和分布式计算领域的行业经验,Holden和Boris提供了Ray用户所需的必备指南。”
——Dean Wampler, PhD工程总监,加速研究平台,IBM研究院

无服务器计算使开发人员可以专注于他们的应用程序,而不必担心它们部署在哪里。使用Python中的Ray通用无服务器实现,程序员和数据科学家可以隐藏服务器,实现有状态应用程序,支持任务之间的直接通信,并访问硬件加速器。
在这本书中,经验丰富的软件架构实践者Holden Karau和Boris Lublinsky展示了如何扩展现有的Python应用程序和管道,让你能够留在Python生态系统中,同时减少单点故障和手动调度的情况。对于那些渴望探索成功案例并了解决策和测量效果的软件架构师和开发人员来说,使用Ray扩展Python应用是理想的选择。
如果你的数据处理或服务器应用程序已经超出了单台计算机的处理能力,那么这本书就是为你准备的。你将探索分布式处理(纯Python的无服务器实现),并学习如何:
● 使用Ray actor实现有状态应用程序。
● 在Ray中构建工作流管理。
● 将Ray用作批处理和流处理的统一系统。
● 使用Ray进行高级数据处理。
● 使用Ray构建微服务。
● 实现可靠的Ray应用程序。
  1. 前言
  2. 第1章 什么是Ray,它适合什么场景
  3. 1.1 你为什么需要Ray
  4. 1.2 你可以在哪里运行Ray
  5. 1.3 用Ray运行你的代码
  6. 1.4 Ray在生态系统中的位置
  7. 1.4.1 大数据/可扩展数据帧
  8. 1.4.2 机器学习
  9. 1.4.3 工作流调度
  10. 1.4.4 流处理
  11. 1.4.5 交互式
  12. 1.5 Ray不适用于什么
  13. 1.6 总结
  14. 第2章 开始使用Ray(本地)
  15. 2.1 安装
  16. 2.1.1 为x86和M1 ARM安装
  17. 2.1.2 为ARM安装(源码安装)
  18. 2.2 Hello World
  19. 2.2.1 Ray远程函数(任务/Futures对象)Hello World
  20. 2.2.2 Data Hello World
  21. 2.2.3 actor Hello World
  22. 2.3 总结
  23. 第3章 远程函数
  24. 3.1 Ray远程函数的基本原理
  25. 3.2 远程Ray函数的组合
  26. 3.3 Ray远程函数的最佳实践
  27. 3.4 综合示例
  28. 3.5 总结
  29. 第4章 远程actor
  30. 4.1 理解Actor模型
  31. 4.2 创建一个基础的Ray远程actor
  32. 4.3 实现actor的持久化
  33. 4.4 扩展Ray远程actor
  34. 4.5 Ray远程actor的最佳实践
  35. 4.6 总结
  36. 第5章 Ray设计细节
  37. 5.1 容错性
  38. 5.2 Ray对象
  39. 5.3 序列化/pickling
  40. 5.3.1 cloudpickle
  41. 5.3.2 Apache Arrow
  42. 5.4 资源/垂直扩展
  43. 5.5 自动缩放器
  44. 5.6 放置组:组织任务和actor
  45. 5.7 命名空间
  46. 5.8 运行时环境中的依赖关系管理
  47. 5.9 使用Ray Job API部署Ray应用程序
  48. 5.10 总结
  49. 第6章 实现流式应用
  50. 6.1 Apache Kafka
  51. 6.1.1 Kafka基本概念
  52. 6.1.2 Kafka API
  53. 6.2 将Kafka与Ray集成
  54. 6.3 扩展我们的实现
  55. 6.4 使用Ray构建流处理应用程序
  56. 6.4.1 基于键的实现
  57. 6.4.2 键独立方法
  58. 6.5 超越Kafka
  59. 6.6 总结
  60. 第7章 实现微服务
  61. 7.1 理解Ray中的微服务架构
  62. 7.1.1 部署
  63. 7.1.2 部署的附加功能
  64. 7.1.3 部署组合
  65. 7.2 使用Ray Serve进行模型服务
  66. 7.2.1 简单模型服务示例
  67. 7.2.2 模型服务实现的注意事项
  68. 7.2.3 基于Ray微服务框架的推测模型服务
  69. 7.3 总结
  70. 第8章 Ray工作流
  71. 8.1 什么是Ray工作流?
  72. 8.2 它与其他解决方案有何不同?
  73. 8.3 Ray工作流功能
  74. 8.3.1 有哪些主要功能
  75. 8.3.2 工作流原语
  76. 8.4 基本工作流概念实战
  77. 8.4.1 工作流、步骤和对象
  78. 8.4.2 动态工作流
  79. 8.4.3 虚拟actor
  80. 8.5 工作流在现实生活中的应用
  81. 8.5.1 构建工作流
  82. 8.5.2 管理工作流
  83. 8.5.3 构建动态工作流
  84. 8.5.4 构建具有条件步骤的工作流
  85. 8.5.5 处理异常
  86. 8.5.6 处理持久性保证
  87. 8.5.7 用虚拟actor来扩展动态工作流
  88. 8.5.8 与其他Ray原语集成工作流
  89. 8.5.9 触发工作流(连接到事件)
  90. 8.5.10 工作流元数据
  91. 8.6 总结
  92. 第9章 Ray的高级数据处理
  93. 9.1 创建和保存Ray数据集
  94. 9.2 使用Ray数据集与不同工具协同工作
  95. 9.3 在Ray数据集上使用工具
  96. 9.3.1 类pandas的DataFrames与Dask
  97. 9.3.2 索引
  98. 9.3.3 洗牌
  99. 9.3.4 易并行计算操作
  100. 9.3.5 处理多个DataFrame
  101. 9.3.6 无法正常工作的功能
  102. 9.3.7 速度较慢的情况
  103. 9.3.8 处理递归算法
  104. 9.3.9 其他功能的不同之处
  105. 9.3.10 类似pandas的Modin DataFrames
  106. 9.3.11 使用Spark处理大数据
  107. 9.3.12 使用本地工具进行处理
  108. 9.4 使用Ray数据集内置操作
  109. 9.5 使用Ray实现数据集
  110. 9.6 总结
  111. 第10章 Ray如何助力机器学习
  112. 10.1 scikit-learn与Ray结合使用
  113. 10.2 Boosting算法与Ray结合使用
  114. 10.2.1 使用XGBoost
  115. 10.2.2 使用LightGBM
  116. 10.3 PyTorch与Ray结合使用
  117. 10.4 强化学习与Ray结合
  118. 10.5 超参数调优与Ray结合
  119. 10.6 总结
  120. 第11章 在Ray中使用GPU和加速器
  121. 11.1 GPU的优势
  122. 11.2 构建模块
  123. 11.3 高级库
  124. 11.4 获取和释放GPU及加速器资源
  125. 11.5 Ray的机器学习库
  126. 11.6 使用GPU和加速器的自动缩放器
  127. 11.7 CPU回退设计模式
  128. 11.8 其他(非GPU)加速器
  129. 11.9 总结
  130. 第12章 Ray在企业中的部署
  131. 12.1 Ray依赖项安全问题
  132. 12.2 与现有工具的交互
  133. 12.3 将Ray与CI/CD工具结合使用
  134. 12.4 Ray的身份验证
  135. 12.5 Ray的多租户
  136. 12.6 数据源的凭证
  137. 12.7 永久集群与临时集群
  138. 12.7.1 临时集群
  139. 12.7.2 永久集群
  140. 12.8 监控
  141. 12.9 用Ray指标检测你的代码
  142. 12.10 用Ray包装自定义程序
  143. 12.11 总结
  144. 附录A 太空海狸案例研究:actor、Kubernetes等
  145. 附录B 安装和部署Ray
  146. 附录C 使用Ray进行调试
书名:使用Ray构建可扩展的Python应用
译者:高晓明, 冯炜 译
国内出版社:中国电力出版社
出版时间:2024年12月(预计)
页数:280(预计)
书号:978-7-5198-9177-0
原版书书名:Scaling Python with Ray
原版书出版商:O'Reilly Media
Holden Karau
 
Holden Karau是一位加拿大人,在IBM的Spark技术中心担任软件开发工程师。同时作为一位Spark committer,经常在PySpark和机器学习方面进行贡献。另外曾在多次国际会议中发表关于Spark的演讲。
Databricks的软件开发工程师,活跃于开源社区。她还著有《Spark快速数据处理》。
 
 
Boris Lublinsky
 
Boris Lublinsky是Lightbend的首席架构师。
 
 
本书的封面动物是一只斑点海雕鲂(学名:Aetobatus narinari),因其背部斑点和优雅的飞行般游姿而得名。这种软骨鱼通常单独生活,偶尔也会成小群活动,分布于大西洋、太平洋和印度洋的热带地区。
斑点海雕鲂身体宽大扁平,尾巴很长(比其他鳐鱼的尾巴都要长),体重可达惊人的500磅。它们以双壳类、螃蟹、软体动物、甲壳类和鱼类为食,经常用它们像鸭嘴一样的吻部在海底挖掘寻找这些小型海洋生物。这种拱掘行为在鳐鱼中是独一无二的。
斑点海雕鲂是卓越的游泳者,大部分时间都在开阔水域游弋,不过人类最常在海湾和珊瑚礁附近观察到它们。据说这些鳐鱼会利用冲刺的动作把自己推进水面上,甚至有好几次有它们跳上船甚至落在人身上的记录。
虽然它们的主要天敌是鲨鱼,但他们在水面附近游泳的行为使它们特别容易受到刺网捕鱼的影响,这也是导致其数量急剧下降的部分原因。因此,国际自然保护联盟将斑点海雕鲂列为濒危物种。
购买选项
定价:88.00元(预计)
书号:978-7-5198-9177-0
出版社:中国电力出版社