【云驻共创】 华为云大咖带你玩转云原生 DevSecOps
一、敏捷开发以及 DevOps 思想
1.1 新形势下企业面临多重挑战
挑战 |
详情 |
交付频率高,研发周期短 |
1. 小特性 1 天交付一次,版本 2 周交付一次 2. 快速交付、快速反馈 3. 精益创业模式
|
跨地域协作多,部署发布复杂 |
1. 跨地域沟通协作多、效率低 2. 研发环境、类生产环境、生产环境不一致 3. 多 region 并行部署,上线复杂 4. 急需一站式开发、测试、部署、运维平台 |
可靠性与安全要求高
|
1. 7*24 小时运行,可靠性要求高 2. 公有云服务,安全要求高 3. 核心研发数据在传输与存储上存在风险
|
1.2 敏捷价值观-敏捷软件开发宣言
我们一直在实践中探寻更好的软件开发方法,
身体力行的同时也帮助他人。由此我们建立了如下价值观:
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划
也就是说,尽管右项有其价值,
我们更重视左项的价值。
1.3 敏捷宣言遵循的原则
我们遵循以下原则:
我们最重要的目标,是通过持续不断地
及早交付有价值的软件使客户满意。
欣然面对需求变化,即使在开发后期也一样。
为了客户的竞争优势,敏捷过程掌控变化。
经常地交付可工作的软件,
相隔几星期或一两个月,倾向于采取较短的周期。
业务人员和开发人员必须相互合作,
项目中的每一天都不例外。
激发个体的斗志,以他们为核心搭建项目。
提供所需的环境和支援,辅以信任,从而达成目标。
不论团队内外,传递信息效果最好效率也最高的方式是
面对面的交谈。
可工作的软件是进度的首要度量标准。
敏捷过程倡导可持续开发。
责任人、开发人员和用户要能够共同维持其步调稳定延续。
坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
以简洁为本,它是极力减少不必要工作量的艺术。
最好的架构、需求和设计出自自组织团队。
团队定期地反思如何能提高成效,
并依此调整自身的举止表现。
1.4 价值驱动-敏捷与传统瀑布型模式的最大区别
基于敏捷的方式,可以实现研发过程的持续高可视性、高适应性,更早且持续产出业务价值,更早发现和解决风险
- 瀑布型模式:属于计划驱动形式,在固定需求的基础上进行计划和排期,估算出需要的资源和预计的时间,再在实际的生产过程中不断的调整更详细的需求和时间。
- 敏捷模式:属于价值驱动形式,固定了资源和最小发布周期的时间,通过这些信息确定最有价值的任务,也就是通过现有的资源开发最大价值的功能,并且每个迭代都是如此。
敏捷开发和传统开发的区别:
- 可视性:敏捷的可视性最高,因为每个迭代都规划了目前最有价值的功能,这样小而频繁的交付可以很清晰展示出任务的进度。而传统开发,只有在项目启动和项目最终整合阶段可视性才是最好的。
- 适应性:敏捷生来适应性就超强,不仅可以选择哪些是最有价值的任务,也可以根据项目的实际需要,临时调换任务。而传统开发随着项目整体的不断向前推进,其适应性越来越差。
- 业务价值:敏捷一直强调开发最有价值的功能。
- 风险:在敏捷中每个迭代都是实现了最有价值的需求,所以在开发前期就实现了价值最大的功能,越往后相对最开始的价值越低,所以,越往后风险越小。而传统开发只有在最后整合阶段才能看到最终的成品,才能发现风险。
1.5 Scrum 团队模型(三种角色)
- Product Owner
PO 是一个人并只能由一个人来承担
负责管理产品待办事项表(Product Backlog)并保证其对于客户和团队保持透明
对产品待办事项表进行优先级排序
与团队一起来进行工作量估算
对于项目的成功负责并保证投资回报率(ROI)
- Scrum Master
保证 Scrum 团队可以遵守 Scrum 的价值,实践和规范
帮助 Scrum 团队和组织采用 Scrum模式进行项目流程组织
指导并带领团队变得更加高效,实现更高质量
保护团队不要受外界因素的干扰
保证各个不同角色之间的良好协作,消除障碍
帮助 PO 更好地利用团队的能力
不要管理团队
- 团队
最佳团队大小:5-9 人
多功能团队:程序员,测试人员,设计师,数据库管理员和架构师
保证团队成员全职参与开发
自我管理,没有头衔之分,不组建子团队
成员更替只能在迭代之前进行,最佳方式是在发布之间进行
1.6 DevOps 是什么
1.6.1 DevOps 的概念
根据维基百科,DevOps(Development 和 Operations的组合词)是一种重视“软件开发人员(Dev)”和 “IT 运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地敏捷、频繁和可靠。
1.6.2 DevOps 专家的观点
DevOps 打破开发和运维之间的孤岛,积极协作。广义上指整个组织级的协作优化,包括 IT、HR、财务和公司供应商。约束理论告诉我们,需要优化整体而非单个“孤岛”。整体是与客户问题相关的业务,从精益角度来说,是整个价值链。
DevOps 通常指的是新兴的专业化运动,提倡开发和 IT 运维之间的高度协同,从而在完成高频部署的同时,提高生产环境的可靠性、稳定性、弹性和安全性。DevOps 聚焦实现更快的上市时间,减少 IT 浪费,提高组织效率。
1.6.3 DevOps 领先企业的观点
亚马逊认为,DevOps 侧重于改善协作、沟通,整合软件开发与 IT 运维。是一个总称,用来描述一种理念、文化变革和模式转变。
DevOps 帮助亚马逊从软件开发敏捷走向业务和运维的敏捷。
开发阶段,DevOps 重点放在代码构建,代码覆盖,单元测试,打包和部署;运维阶段,在基础设施上聚焦环境分配,配置,编排和部署。
微软认为,DevOps 不仅是一项技术或工具集,也是观点和文化的转变。它结合人、流程、适当的工具,使应用程序生命周期更快,更可预测。
我们应将 DevOps 视为过程而非目的,应该选择适当范围的选项,增量式实施,通过这些项目展示成功,学习,并演进。
1.7 DevOps 生命周期过程
下面是 DevOps 全流程的图示
由开发完成的功能代码,需要编译构建之后才能部署到服务器或者容器,团队不断的部署新功能,这个不断循环往复的过程的就是持续集成。一个个功能通过测试,交付运营的不断循环往复的过程就是持续交付。通过一些工具进行监控、收集指标、分析数据,实现对整个过程的度量。这些过程都是自动化完成的,也就是一个完整的 DevOps 过程。
二、华为云 HE2E DevOps 框架与 DevCloud 介绍
2.1 HE2E DevOps 框架
HE2E即华为端到端的DevOps实施框架,是结合了华为30年研发经验并集合了业界先进的实践所形成的一套可操作可落地的敏捷开发方法论。
2.2 华为云 DevCloud – 一站式 DevOps 平台
软件开发平台(DevCloud)是面向开发者提供的一站式云端DevOps平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径,提供软件研发流程的端到端支持,全面支撑落地DevOps。
2.3 端到端工具链服务 – 涵盖软件生命周期环节
提供端到端工具服务、覆盖整个生命周期,并与其它产品预集成,开箱即用,简化应用云上开发,云上部署,简化部署、发布,简化应用上云。内嵌研发最佳工程实践、专业的敏捷项目管理和迭代规划、丰富的代码检查规范、质量门禁控制的流水线,帮助企业缩短达成高质量高效率研发的时间。
2.3.1 持续规划与设计
- 2 种项目管理流程(Scrum 和看板)
- 自定义的研发作业流
- 14 种度量看板
- 6+ 华为实践模板 Wiki
2.3.2 持续开发和集成
- 10+ 种语言和 20+ 种框架
- CloudIDE 支持 10+ 种编程语言,30 秒极速启动,对接多种代码仓库
- 开源镜像站支持 100+ 开源组件、工具操作系统加速下载,全国 CDN,国内唯一的 Maven Central 镜像站
2.3.3 持续测试与反馈
- 云测支持 REST、Swagger 等多种接口免编码功能测试,利用云端弹性资源快速模拟 3K+ 用户并发性能测试
- 2万+ 真机,利用精准图像和空间识别技术测试移动 APP 兼容性
2.3.4 持续安全与审计
- 主机漏洞扫描进度高、支持多种通过 Linux 系统以及华为自研 EulerOS 系统
- Web 漏洞扫描,零环境搭建成本、一键完成扫描
- 提供清晰简洁的扫描报告和修复建议
2.3.5 持续部署与发布
- 可视化编排流水线,支持并行/串行、人工卡点、质量门禁、构建/检查/测试/部署等多任务类型、分层分级流水线等
- 利用统一调度引擎、云上弹性资源能力实现百万级并发任务调度能力
2.3.6 持续运维与监控
- 全方位覆盖业务、应用和基础设施层监控
- 指标、日志、性能、告警等多维度关联分析
2.3 DevSevcOps 的价值和实践
权衡 DevOps 速度与现有安全要求的需求催生了一个名为 DevSecOps的概念,DevSecOps 基于 “安全问题,人人有责”的原则。它强调应用程序开发人员可以怎样把安全检查与他们的集成和部署流水线构建在一起。
2.4 持续集成与持续交付
持续集成强调开发人员提交了新代码之后,立刻进行构建、单元测试,根据构建和测试结果,我们可以确定新代码和原有代码能否正确的集成在一起。
持续交付是持续集成的延续,将集成后的代码部署到类生产环境,确保可以以可持续的方式快速向客户发布新的更改。如果代码没有问题,可以继续手动部署到生产环境中。
三、华为开发者认证框架
华为云开发者认证体系,贴合数字产业生态战略,在云原生、人工智能、大数据、物联网、区块链、移动开发、数据库等技术领域建立赋能体系以及认证标准,与人社部、工信部颁发的新兴职业能力标准相匹配,提供清晰的开发者成长路径。
关于云原生入门级学习认证,请参考官方连接,云原生入门级学习认证_云原生入门级开发者认证_华为云开发者学堂-华为云 (huaweicloud.com)。
本文整理自华为云社区【内容共创】活动第15期。
- 点赞
- 收藏
- 关注作者
评论(0)