全球运维技术大会

陈鑫Cloud+Native+CICD探索

1. Cloud Native CICD 探索 陈鑫(神秀) 阿里巴巴高级技术专家
2. • 标Clo题ud文N本ative时代的技术挑战 •  C从on面te向n应t T用itl到e 2面向服务交付 • Content Title 3 • C服on务te爆n炸t T带itl来e 4的质量与效率问题 • C数on据te智n能t T引itl领e 5NoOps时代 • Content Title 6
3. Cloud Native时代的技术挑战
4. 从一个idea的上线说起 Oh,我们已经进入Cloud Native时代了?
5. Cloud Native 到底是什么 技术视角: Pivotal :DevOps + Continuous Delivery + MicroServices + Containers CNCF:云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API AliCloud:云原生计算意味着定义云操作系统的API 2.0 用户视角: 最大的区别在于如何构建、交付和运维应用程序。最大价值在于仅关注业务逻辑, 频繁稳定的变更,以及运行成本大幅下降。
6. 阿里巴巴服务端软件发展 2003 Monolithic 2008 Microservice 2017 轻应用/Function
7. 轻应用的发展  Jar or Function的方式交付  开发、部署速度快  实现Serverless
8. 内因与外因 内因: 外因: 问题矛盾:  平台逻辑与业务逻辑迭代速度不一致  业务复杂性、多样性变高,交付变的不可靠  大量的胶水层代码编写拖慢研发速度 优势:  基础设施更加抽象、易用、稳定  CICD领域工具发展迅速  具备PaaS标准化能力
9. 对研发运维平台的挑战  从面向“应用”走向面向“服务”交付  服务爆炸带来的开发环境治理难题  分钟级迭代带来的OPS变化
10. 从面向应用到面向服务交付
11. 面向服务交付的特点 编码 测试 构建 环境 发布 回滚 面向应用 以应用为单元 复杂技术栈 单测、集成测试 时间长 复杂多级环境 性能等 完整依赖的WAR 灰度、beta 显式更新过程 时间长 重新发布 历史版本 面向服务 以函数为单元 简单技术框架 单测 jar、class 基于服务平台测试 源码 日常、预发、 正式 无需关注过程 极速 流量回切 极速,简单,定制化诉求低,交付过程无感 最合适的工具载体是什么?
12. CloudIDE产品方向  轻量IDE: 特点:文本编辑器, 轻架构,重体验,具备 基本语法支持。Gitlab  标准IDE: 特点:开发环境容器化, 开发工具微服务化, IDE的Web化。cloud 9  专业IDE: 特点:特定业务领域的IDE, 具备轻量和标准IDE的 一些特性,侧重于业务层面 编码发布。Aliyun IoT
13. 全云端研发模式探索 编码 安全 需求/任务 云端工作空间 测试 代码评审 Cloud CICD 运维  开发、部署环境标准化  环境治理能力无缝集成  沉淀研发数据,代码智能持续演进 Local IDE插件 标准工作空间:面向微服务,研发 生命周期中80%代码时间效率提升 浏览器 轻量工作空间:面向轻应用、函数, 代码评审,冲突修复,代码直播
14. 技术架构 全云端研发体系 运维 调度中心 预热 备份 自愈 释放 Cloud IDE 标准空间 IDE-Server LSP User Service Pty Code Plugin 路由 轻量空间 本地IDE插件 IDE-Server LSP Code Code Code Proxy CI/CD体系 应用中心 环境中心 流水线 代码中心 应用运维 容器调度
15. 仍有一些挑战需要解决  同一需求多服务变更应该如何有效管理  多服务并存,兼容性如何保障  服务如何有效的归类和管理  如何建立统一的编写规范
16. 服务爆炸带来的质量与效率问题
17. 服务爆炸场景下的环境稳定性难题 Just OK! 可用性大幅下降  人:测试代码天然存在不稳定 因素  事:维护多套环境成本巨大, 没有横向团队承接  物:测试环境没有SLA,基础设施 无有效保障
18. 过去的一些想法  稳定环境需要全局维护  配置项需要三个环境人工修改  分别维护三套环境基础软件包 大量需要人的介入 破窗效应,稳定环境逐步被废弃
19. 方案演进  容器化  故障自愈  监控与SLA数据  分级保障  产品内部优先集成 外部依赖优先主干
20. 核心问题——质量信心 服务爆炸场景下,如果不解决质量信心问题,不管用什么手段, 都仅仅是用技术或人力成本去掩盖问题
21. 全网Java代码规约 本地检测 & 线上检测 IDE插件 Aone平台 本地编码 阶段 自动化测 试阶段 CodeRevi ew阶段 全网自动接入 数据化驱动问题清零 Github上Star数12000+,Fork数2600+, Alibaba所有开源库关注度排名第四, 插件下载量39w+
22. 全网覆盖率检测  无感接入,适配主流部署架构  Javaagent增强,重启自动生效  Client自动升级  单测、集成测试、每日全量、增量报告  集团、BU、团队覆盖率基线数据
23. 数据智能引领NoOps时代
24. 从DevOps进化到NoOps 交付层 运维层 调度层  高频度变更  变更不确定性风险 软件交付过程自动化、无人化 面向终态的基础设施自主演进 容器化与全局调度实现无运维介入  技术栈多样  风险维度多样
25. 无人值守发布故障检测 机器发布前 已发布机器 VS 机器发布后 VS 未发布机器  发布前后监控数据采集  改进型的FUNNEL检测模型  发现异常指标则发布阻断 对比图 指标智能分析
26. DevOps数据智能平台建设  提升开发者发现和解决问题 的效率  积累知识,共享方案,发现问题, 落地技术
27. 链路风险插件设计  依赖链路,为应用风险分析提供数据基础  通过插件化设计,开放DevOps数据促进 多BU工具协同  在开发阶段暴露风险,阻断高危变更上线
28. 云原生分发系统 Dragonfly  解决云原生分发问题: - 分发效率 - 分发流控 - 分发安全  17年10月 分发量达 3.42 PB  2017年11月 开源 https://github.com/alibaba/Dragonfly  18年11月 进入 CNCF
29. 与我联系 免费使用阿里云云效平台 我的微信 钉钉OR微信扫一扫

相关幻灯片