华为中央软件院资深专家王磊-CloudNative实践之路

2020-02-27 461浏览

  • 1.
  • 2.Cloud Native(云原⽣生)应⽤用实践 王磊磊 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 3.华为/中软/软件⼯工程技术专家 ThoughtWorks⾸首席咨询师 Sybase Tech Leader • 《微服务架构与实践》作者 • 《DevOps Handbook》中⽂文译者之⼀一 • 国内较早倡导和实践微服务的先⾏行行者 • 对⾃自动化测试/持续集成/持续交付有丰富的实战经验 • ⻄西安DevOps Meetup 联合发起⼈人 3
  • 4.⽬目录 1 什什么是Cloud Native 2 Cloud Native的核⼼心特征 3 Cloud Native应⽤用实践 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 5.⽬目录 1 什什么是Cloud Native 2 Cloud Native的核⼼心特征 3 Cloud Native应⽤用实践 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 6.Cloud Native起源 2010.5 Cloud Native@Blog Paul Fremantle CTO Of WSO2 • 分布式 • 多租户/按需收费 • 弹性/可伸缩http://wso2.com/library/articles/2010/05/blog-post-cloud-native/D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 7.Cloud Native定义 2013.12 Cloud Native Architecture @Yow Conference Adrain Cockroft VP Cloud Strategy of AWS ex-Netflix Cloud Architect • 基于公有云 • 微服务/伸缩性/可⽤用性/⾃自愈性 • 持续部署、DevOps • 敏敏捷、效率、⾼高度信任的组织 7
  • 8.Cloud Native定义 2015.2 Migrating to Cloud Native Application Architectures Matt Stine Pivotal,Architect • 微服务 • DevOps • 持续交付 • 敏敏捷基础设施 • 基于API协作 • ⼗十⼆二因⼦子 8
  • 9.Cloud Native定义 2015.7 • 容器器化(Containerized) • 动态编排(Dynamically orchestrated) • ⾯面向微服务(Microservices oriented) 9
  • 10.Cloud Native LandScape 10
  • 11.⽬目录 1 什什么是Cloud Native 2 Cloud Native的核⼼心特征 3 Cloud Native应⽤用实践 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 12.Cloud Native的核⼼心特征 基于云的基础设施,运⾏行行/管理理系统的实践范式 架构 分布式/微服务化 弹性伸缩/⾃自服务 持续集成/交付 DevOps ⾃自动化/⼯工具链 ⼯工程 Speed Scale Safety 组织 全功能团队 全栈⼯工程师 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 13.Cloud Native的核⼼心特征 - 架构 应⽤用架构 • 快速响应 • 弹性伸缩 • 可⽤用性 • 可重⽤用 基础设施架构 • 云化基础设施 • ⾃自服务接⼝口 • 多租户/可靠性 • 可⽤用性 伸缩性、快速响应 稳定性,可靠性 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 14.Cloud Native的核⼼心特征 - ⼯工程 持续交付 • 低⻛风险/⾼高质量量/⾃自动化 • 将发布作为业务决策https://www.slideshare.net/beamrider9/continuous-deployment-at-etsy14
  • 15.Cloud Native的核⼼心特征 - ⼯工程 DevOps 与 CALMS • Culture(⽂文化)- 合作&沟通的信任⽂文化 • Automation(⾃自动化)- ⾃自动化“⼀一切” • Lean(精益)- 消除浪费,⼩小批量量交付 • Measurement(度量量)- 收集反馈,持续改进 • Sharing (分享)- 分享经验 & 知识 15
  • 16.Cloud Native的核⼼心特征 - ⼯工程 DevOps 与 3 Wayshttps://www.icore-ltd.com/devops-three-core-principles/16
  • 17.Cloud Native的核⼼心特征 - 组织 全功能团队 17
  • 18.Cloud Native的核⼼心特征 - 组织 全栈⼯工程师 18
  • 19.⽬目录 1 什什么是Cloud Native 2 Cloud Native的核⼼心特征 3 Cloud Native应⽤用实践 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 20.⼀一个真实的演进案例例 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 21.Spring MVC JSP Oracle MyBatis 以营促销的业务系统 40W+ 20+Member 开发与运维分离 3 Month 20 Minute ⼿手动测试为主 多⼈人共享⼀一套环境 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 22.期望 现实 • 2/3周完成特性上线 • 资源按需⽔水平伸缩 • 系统具备⾼高可⽤用性 • 独⽴立的全功能团队 • 版本发布周期3个⽉月 • 单体应⽤用/伸缩成本⾼高 • 停机发布窗⼝口/宕机 • 团队协作成本⾼高 22
  • 23.最初的数个⽉月⾥里里….. 对应用层架构做了解耦 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 24.收益 • 代码(库)解耦 • 基于业务的边界 • 技术栈的多样性 • 开发责任⽥田清晰 挑战 • 交付周期⽆无明显变化 • ⽆无法独⽴立运⾏行行部署 • 团队组织⽆无变化 • 数据依然耦合 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 25.如何应对? • 优化服务的拆分原则 • 增加服务实现的数量量 • 引⼊入更更多的⽀支撑组件 • …… D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 26.接下来的3个月里, 引入一系列CloudNative实践…. D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 27.获得的收益 交付周期 -66 3周 3个⽉月 0.7次/⽉月 2.3次/⽉月 500Loc/次 87Loc/次 10m 3m 30% 80% 部署频率 LOC/提交 +3times -63 构建时间 ⾃自动化测试覆盖率 -70 +2.7times
  • 28.主要的实践 1. 梳理理价值流映射图 2. 构建全功能交付团队 3. 构建可视化交付流程 4. 打通端到端的流⽔水线 5. 确定清晰的度量量机制 6. 持续演进的架构拆分
  • 29.实践1. 梳理理价值流映射图 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 30.实践1. 梳理理价值流映射图 需求 分析 开发 测试 部署 VAT 5d 10d 8d 2d NVAT 5d 4d 6d VAT(Value Add Time) = 25 d NVAT(Non Value Add Time) = 15 d Cycle Time(VAT + NVAT) = 40 d Efficiency(VAT/Cycle Time) = 62.5% D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 31.实践1. 梳理理价值流映射图 How: 1). 确定交付过程相关⻆角⾊色(分析/架构/开发/测试/运维) 2). 讨论并绘出交付过程中的活动 3). 识别价值流中的VAT/NVAT/Cycle Time D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 32.实践1. 梳理理价值流映射图 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 33.实践2. 构建全功能团队 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 34.实践2. 构建全功能团队 • SDM • BA/SE • DEV • QA • Ops 识别⻆角⾊色与成员的关系 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 35.实践3. 使⽤用看板可视化流程 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 36.实践3. 使⽤用看板可视化流程 • 任务可视化 • 优化流动率 • 度量量与反馈 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 37.实践3. 使⽤用看板可视化流程 Avg.Lead Time Avg.WIP Avg.Lead Time 基于数据,反馈并改进 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 38.实践4. 打通端到端交付流⽔水线 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 39.实践4. 打通端到端交付流⽔水线 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 40.实践4. 打通端到端交付流⽔水线 • 基于代码创建环境(Alpha/Beta/Gamma) D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 41.实践5. 清晰的度量量机制 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 42.实践5. 清晰的度量量机制 端到端的交付效率 代码提交频率 构建失败率 代码提交⾏行行数 服务启动时间 CI构建时间 单元测试占⽐比 过程中的局部效率 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 43.实践6. 持续演进的服务架构 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 44.实践6. 持续演进的服务架构 不不断迭代,循序渐进 1 定义服务 • 业务逻辑梳理理 • 服务的拆分 2 构建服务 • 技术栈选择 • 数据的解耦 3 双模IT运⾏行行 • 注册/发现机制 • 监控&告警信息 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 45.实践6. 持续演进的服务架构 领域驱动设计(DDD) - 领域语⾔言(Ubiquitous Language) - 领域模型(Domain Model) - 特定语境(Bundle Context) - 领域事件(Domain Event) - 聚合根(AggregaVon Root) 45
  • 46.实践6. 持续演进的服务架构 1. 梳理理业务流程 2. 识别领域事件 3. 识别外部命令 4. 识别聚合根 5. 拆分服务 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 47.获得的收益 交付周期 -66 4周 3个⽉月 0.7次/⽉月 2.3次/⽉月 500Loc/次 87Loc/次 10m 3m 30% 80% 部署频率 LOC/提交 +3times -63 构建时间 ⾃自动化测试覆盖率 -70 +2.7times
  • 48.下⼀一步...... • 增加服务实现的数量量 • 引⼊入更更多的⽀支撑组件 • 基于容器器/云化基础设施
  • 49.推荐阅读
  • 50.谢谢~
  • 51.Thanks 荣誉出品 ⾼高效运维社区 国际最佳实践管理理联盟 D e v O p s D a y s 2 0 1 7 · 上 海海 站
  • 52.想第⼀一时间看到 ⾼高效运维社区公众号 的好⽂文章吗? 请打开⾼高效运维社区公众号,点击右上⻆角⼩小⼈人,如右侧所示设置就好 D e v O p s D a y s 2 0 1 7 · 上 海海 站