海外电商工程效率实践 &mdash

Razor

2019/10/19 发布于 技术 分类

文字内容
1. 海外电商工程效率实践 — Shopee的云平台标准化 彭哲夫 CMGS Senior Expert Engineer, Shopee
2. 自我介绍
3. 自我介绍 Ø 2010 – 2011 作为主程之一参与了金山快盘服务端的研发 Ø 2011 – 2013 豆瓣 Douban App Engine (DAE)主程,到 2012 年末豆瓣所有非前端组件由其驱动 Ø 然后穿越亚洲去了 Ø 2014 – 2016 芒果TV 架构师,实现了基于 Redis Cluster 的容器化集群方案 Ø 2016 – 2018 在朋友公司扫地,负责了全自动虚拟化平台的建设,实现了一个调度和编排工具 Eru Ø 2018 至今 Garena Senior Expert Engineer,负责 Shopee Cloud 的建设
4. 目录 u工程效率是什么 u什么是标准化平台 uShopee 标准化云平台 u未来的展望
5. 工程效率是什么 > 开发效率 > 发布效率 > 运维效率 > 研发工具 > 基础设施 > 监控报警 > 测试环境 > 代码分发 > 灾难恢复 > 联调手段 > 配置分离 > 自动化工具 … > 服务发现 … …
6. 工程效率是什么 最终整个技术部门产出和时间比,我们称之为工程效率
7. 工程效率与标准化 因此标准化降低时间开销,从而提升整个的工程效率
8. 什么是标准化平台 n开发流程标准化 n发布流程标准化 n生命周期管理标准化
9. Shopee 标准化云平台 > 面临的问题 > 业务横跨多个国家 >整个东南亚缺乏云化基础设施 > 工程师来自于全球各地 > 业务增长太快 …
10. 我们怎么办 > 技术选型 > 标准化云平台 > 标准化服务 > 标准化 workflow …
11. 技术选型 > 首先摆在面前的是容器和虚拟机之争 > 无状态业务已经用上了 Mesos + Marathon 的容器平台 > 有状态的业务依然裸部署 > 大量基础设施依然依赖于人工部署和维护 > 几乎不存在虚拟机,大量物理服务器负载很低 ...
12. 技术选型
13. 技术选型 > 编排工具 > 弹性资源需求 > 多虚拟化引擎需求 > NUMA 的支持 …
14. 技术选型 > 为什么不选 Kubernetes > 缺乏资深的 Kubernetes 工程师 > Kubernetes 从入门到放弃 > Mesos 的历史包袱 > Eru 是个什么鬼
15. 技术选型 资源利用率 虚拟机 资源分配 调度策略 Mesos Kubernetes Eru 高 中 中 理论上支持 有限支持 完全支持 DRF 抢占式 抢占式 框架决定 Selector 亲和/反亲和,CRD 内置4种策略 计划中 无 有 自举 无 无 有 运维成本 高 中 低 人力成本 高 中 高 使用成本 一般(社区一般) 低(社区活跃) 极低(逻辑简单) NUMA
16. 技术选型
17. 服务标准化 > Redis Cluster / Single Instance > 单主多从 MySQL > ETCD > Kubernetes > 开发用 VirtualDev …
18. 服务标准化
19. Redis Service > 标准化配置 > 依托于 Eru 做自动物理机主从分离 > 只允许扩容不允许缩容 > Instance 级别的扩容 > 节点数量扩容 > 容量性能套餐
20. Redis Service > 标准化架构 > 固定集群结构 > 自动主从物理隔离 > SDN 保证独立 IP > 必须通过自行实现的 redis-proxy 访问 …
21. Redis Service > 标准化运维 > 集群自愈 > 旁路刷新 > 灾难时允许丢失部分数据换集群可用性 …
22. Redis Service > 旧的流程 > 工单系统申请 > 沟通,准备和等待机器 > 运维脚本配置部署 > 手动配置域名交付 > 任何改动和事故均需要人为介入 > 灾难无法恢复只能重建 … > Shopee Cloud 流程 > 工单系统申请 > 自动部署配置秒级交付 > 任何改动和事故业务无感 > 灾难自动恢复 …
23. VirtualDev > 用于标准化开发环境 > 以往业务开发联调只能使用物理机 > 没法做到人均一台物理机做开发 > 受限于网络和权限物理机使用起来限制很多 > 缺乏统一的申请方式 …
24. VirtualDev > 标准化配置 > 标准化架构 > 标准化运维 > CPU 弱限制内存强限制 > 托管生命周期 > SDN 保证 IP > 自动监控报警 > 自动加入所选网络 > 所有 VD 在一个子网 … > 自动配置网络策略 > 磁盘限额 … … > base OS 配置标准化 > 自动配置用户
25. VirtualDev
26. VirtualDev > 旧的流程 > Shopee Cloud 流程 > 工单系统申请 > 在 Quota 内自行申请 > 沟通,准备和等待机器 > 自动部署配置秒级交付 > 运维脚本配置部署 > 拿到域名即可开始对接 > 手动配置域名交付 > 和对接方沟通测试 > 处理权限和连通性问题
27. RDS > 标准化配置 > 自动配置 MySQL > 依托于 Eru 做自动物理机主从分离 > 只允许扩容不允许缩容 > 容量性能套餐 …
28. RDS > 标准化架构 > 固定集群结构 > 自动主从物理隔离 > SDN 保证独立 IP > 统一生命周期管理 …
29. RDS > 标准化运维 > 集群自愈,但需要 DBA 来确定是否重新 enable > 旁路刷新域名列表 > 灾难时自动的切换主从 …
30. RDS > 旧的流程 > Shopee Cloud 流程 > 工单系统申请 > 在 Quota 内自行申请 > 沟通,准备和等待机器 > 自动部署配置秒级交付 > 运维脚本配置部署 > 自动初始化数据库 > 手动配置域名交付 > 拿到域名即可使用 > DBA 初始化处理权限等 …
31. 未来的展望 > 提供更多的标准化基础设施 > 更多组件生命周期能自动处理 > 更多资源维度的调度和编排 > 标准化开发 Workflow 从下往上统一生产流程 …
32. 一些项目 > https://github.com/projecteru2/core > https://book.eru.sh/ > ilskdw@gmail.com