货车帮云原生平台架构设计思路和实践

1. 货车帮云原生平台 设计思路和实践 李昊 满帮集团 高级技术总监
2. 李昊 满帮集团 • 呆过成熟公司,也创过业 • 经历过团队从几人到几百人的各个阶段 • Se e n the good, the bad, the ugly • 犯过很多错,所以可能你们不用犯了
3. • 背景介绍 • 为什么? • 做什么? • 怎么做? • 总结
4. 700 520 182.8 135.9 2
5. 合并 2 0 1 8 年年 4 ⽉月 2 4 ⽇日 估值6 5 亿美金,国新基金、Vision 基金、谷歌资本(Capital G)等领投, 其他投资人包括阳光保险、金沙江创投、 K1 1 等。
6. 挑战
7. 挑战
8. 中台赋能 要做中台,基础设施必须靠谱
9. • 背景介绍 • 为什么? • 做什么? • 怎么做? • 总结
10. 智能时代?
11. 信息时代 你 告 诉 ⼥女女 朋 友 的
12. 信息时代 实 际 发 ⽣生 的
13. 对⽐比电⽓气时代 信息时代基础设施 电 ⽓气 时 代 基 础 设 施 • 标准化程度低 • 生产/传输/使用高度标准化 • 成本仍然很 ⾼高 • 电费远低于电器带来的价值 • 效率提升 不不够 • 随时按需获取和消费电力
14. 基础设施的差距在变⼤大
15. • 背景介绍 • 为什么? • 做什么? • 怎么做? • 总结
16. 做什什么 分布式系统的基础设施
17. 分布式系统? Monolithic System Distributed System
18. 移动互联⽹网 几乎所有的系统都是分布式系统
19. 分布式系统的核⼼心问题 U MI C R J R R S / R P V A O MI MI MI MI
20. 12-factors MSA “当时,我们的答案是⼗十⼆二要素(Twelve Factor)...⼗十⼆二要素⾮非常适合于Cloud Foundry,你甚⾄至可以说Cloud Foundry 是专⽤用于运⾏行行⼗十⼆二要素应⽤用的平台...但可 以创建⼀一个⼤大规模的⼗十⼆二因素应⽤用,这真 是我们的⽬目标吗?应该不不是...因此我开始 把⽬目光转向微服务...我所称之为“cloud native”的这个概念是多种不不同思想的⼀一个 集合...这些思想包括DevOps、持续交 付、微服务、敏敏捷基础设施、康威定律律, 以及根据商业能⼒力力对公司进⾏行行重组...” -- Pivotal CTO,Matt Stine
21. 做什什么 细粒度 独⽴立进程 业务建模 轻量量通信 去中⼼心化
22. 做什什么
23. 所以什什么是微服务? 在分布式系统建设中,为了了应对需求的快速 变更更,在⾼高增速的公司内部构建⾼高效、⾃自治、 响应迅速的“创业⻛风格”团队的⼀一些尝试: • 必要的组件(服务发现,熔断等) • 有⽤用的⽅方法(DDD, SAGA, CQRS) • ⽇日益成熟的新技术(容器器,分布式存储)
24. 哪⾥里里还不不够 SOA • • • • MSA 12-Factor 治标不不治本的解耦 缺乏组织结构的联动 没有运维⽅方⾯面的考量量 技术上并不不成熟
25. 云原⽣生平台
26. • 背景介绍 • 为什么? • 做什么? • 怎么做? • 总结
27. 云原⽣生究竟是什什么
28. 云原⽣生不不是什什么
29. 怎么做:两个阶段 • 第⼀一阶段:三个基础的组件 • ⼀一个全链路路的监控系统 • ⼀一个服务化、集群化的⽹网关 • ⼀一个基于K8S的管理理系统 • 第⼆二阶段:三个维度的PaaS • ⾯面向⾼高性能⾼高可⽤用PaaS • ⾯面向复杂度的PaaS • ⾯面向开发测试PaaS
30. 第⼀一阶段 纵向划分
31. Galileo
32. Galileo
33. Lorentz • 集群化 • 插件化 • 服务化
34. Planck • • • • • 服务编排 服务治理理 弹性伸缩 流量量调度 ⽣生命周期管理理
35. 第⼆二阶段
36. 第⼆二阶段:三个维度的PaaS Availability/Performance 保障SLA 错误⾃自愈 摊薄成本 榨取性能 Development/Testing 容器器化的环境获取 代码化/数据化/⾃自动化 编程框架/脚⼿手架⼯工程 完整的⼯工具链条和⽂文档建设 Complexity 组件化 动态配置更更新 数据管理理和隔离 状态管理理和持久化
37. Solvay
38. Solvay 流程规范 可 视 化 研 发 团 队 核 ⼼心 指 标 • 是团队指标而非个人指标 • 衡量效率的同时,考察稳定性 • 经过了验证确实有效 Lead Time Deployment Frequency 从代码提交到进⼊入⽣生产环境的时间 发布到产品环境或者应⽤用商店的频率 Mean Time To Restore Change Fail Rate 出错后恢复的平均时间 变更更失败率 最 佳 实 践 落 地 执 ⾏行行 • 持续集成/持续部署 • 持续测试 • 自动化 • 完善的端到端监控和告警 • 灰度发布 • 测试数据管理
39. • 背景介绍 • 为什么? • 做什么? • 怎么做? • 总结
40. 核⼼心感受 1 . 热 爱 祖 国 , 热 爱 ⼈人 ⺠民 , 热 爱 中 国 共 产 党 。 2 . 遵 守 法 律律 法 规 , 增 强 法 律律 意 识 。 遵 守 校 规 校 纪 , 遵守社会公德。 3 . 热 爱 科 学 , 努 ⼒力力 学 习 , 勤勤 思 好 问 , 乐 于 探 究 , 积 极参加社会实践和有益的活动。 4 . 珍 爱 ⽣生 命 , 注 意 安 全 , 锻 炼 身 体 , 讲 究 卫 ⽣生 。 5 . ⾃自 尊 ⾃自 爱 , ⾃自 信 ⾃自 强 , ⽣生 活 习 惯 ⽂文 明 健 康 。 重要的都是具体的 6 . 积 极 参 加 劳 动 , 勤勤 俭 朴 素 , ⾃自 ⼰己 能 做 的 事 ⾃自 ⼰己 做 7 . 孝 敬 ⽗父 ⺟母 , 尊 敬 师 ⻓长 , 礼 貌 待 ⼈人 。 8 . 热 爱 集 体 , 团 结 同 学 , 互 相 帮 助 , 关 ⼼心 他 ⼈人 。 9 . 诚 实 守 信 , ⾔言 ⾏行行 ⼀一 致 , 知 错 就 改 , 有 责 任 ⼼心 。 1 0 . 热 爱 ⼤大 ⾃自 然 , 爱 护 ⾃自 然 环 境 。
41. 核⼼心感受 1.平安成⻓长⽐比成功更更重要。 2.背⼼心、裤衩覆盖的地⽅方不不许别⼈人摸。 3.⽣生命第⼀一,财产第⼆二。 4.⼩小秘密要告诉妈妈。 5.不不喝喝陌⽣生⼈人的饮料料,不不吃陌⽣生⼈人的糖果。 6.不不与陌⽣生⼈人说话。 重要的都是具体的 7.遇到危险可以打破玻璃,破坏家具。 8.遇到危险可以⾃自⼰己先跑。 9.不不保守坏⼈人的秘密 10.坏⼈人可以骗。
42. 要点回顾 • • • • • • 解决业务问题,基础设施必须过硬 微服务只是做分布式的⼀一种架构⻛风格 云原⽣生考虑了了运维/⽂文化/组织架构 最好从监控/AG/容器器平台等基础组件开始做 考虑业务特点,从三个维度做PaaS 重要的都是具体的