相信很多软件开发人员们对今年国内新兴的云端开发工具——华为软件开发云都有耳闻,有些人可能还免费体验过,由于它5人以下的团队是免费使用的,很庆幸本人的这个项目正好5个人,就注册使用了。下面就自己的使用心得,为大家深度剖析下这个最新的云端开发工具是“怎样实现敏捷+DevOps开发落地的”。
云端开发感触:开发者专注做开发,云平台自动化处理传统四大问题,效率显著提高
开发人员可只关注代码的编写,传统开发中遇到的“开发工具统一、环境部署、项目管理、并行协同开发“四大问题,云平台可以直接处理掉,不用再耗费人力逐一手动处理琐碎的代码之外的工作,大大提高了项目的开发效率。
我之前项目开发中一亿行的代码采用传统模式的话,编译时间超过25分钟的,采用华为软件开发云,编译时间只用了7分钟;而版本的编译速度从94分钟减少到了31分钟;研发环境的准备时间由月级降低到了小时级。
--------------------------------------------------------------------------------
云端开发之代码检查技术剖析:
● 缺陷自动检查:代码缺陷模式库融合华为优秀代码实践与编程规范与业界通用的检查规则,覆盖常见的编码风格、架构、Web安全等方面的问题。
● 大规模分布式任务调度:基于并行智能任务调度算法,对检查节点进行自动弹性伸缩,检查任务根据检查规则类型智能分片和并行执行,支持大规模代码仓库的代码检查。
该技术支撑下的开发优势:
● 支持Java、JavaScript、CSS、HTML、C++等语言检查,持续增加语言支持广度。
● 精确定位缺陷,针对每个代码缺陷,提供详细的缺陷影响说明、正确示例、错误示例、修改建议。
● 如果系统的检查不满足需求,SE可通过定制规则集来实现挑选规则集;
● 针对大量代码缺陷,用户可根据问题级别、问题分类、语言、文件目录等进行过滤,分级处理。
--------------------------------------------------------------------------------
● 缺陷自动检查:代码缺陷模式库融合华为优秀代码实践与编程规范与业界通用的检查规则,覆盖常见的编码风格、架构、Web安全等方面的问题。
● 大规模分布式任务调度:基于并行智能任务调度算法,对检查节点进行自动弹性伸缩,检查任务根据检查规则类型智能分片和并行执行,支持大规模代码仓库的代码检查。
该技术支撑下的开发优势:
● 支持Java、JavaScript、CSS、HTML、C++等语言检查,持续增加语言支持广度。
● 精确定位缺陷,针对每个代码缺陷,提供详细的缺陷影响说明、正确示例、错误示例、修改建议。
● 如果系统的检查不满足需求,SE可通过定制规则集来实现挑选规则集;
● 针对大量代码缺陷,用户可根据问题级别、问题分类、语言、文件目录等进行过滤,分级处理。
--------------------------------------------------------------------------------
云端开发之自动化流水线技术剖析:
● 并行智能任务调度:实现智能任务调度算法,用户根据任务特点自行编排并行/串行任务,系统感知执行器状态和健康度,动态分配执行器的任务,故障节点任务实现自动转移和熔断,结合资源弹性伸缩策略,实现调度器和执行器高可用和水平扩展。
● 资源弹性伸缩:使用华为企业云弹性伸缩服务,感知到业务集群资源使用情况,资源利用率超过阀值时,动态扩容;反之,自动缩容。流水线根据不同业务类型,配置不同的弹性伸缩策略和资源弹性伸缩组,从而实现短时间内迅速提升流水线总体吞吐量。
● 编译构建并行技术:通过使用精准增量编译技术,结合并行智能任务调度,可实现按技术栈、目录等编译策略增量并行编译,加速编译构建的速度,大幅降低编译构建等待时间。
该技术支撑下的开发优势:
● 对于一切可以解放双手的任务都由工具自动化实现。
● 一键式完成代码下载/代码检查/编译构建/系统部署/产品发布整个交付流程.。
● 任务并行执行,按需动态分配资源,显著提升资源利用效率及执行效率。
● 可实现单模块或者单独子系统的个人级交付,也可实现多模块、多子系统的版本级交付可随时查看流水线执行进度/结果/报告/日志。
--------------------------------------------------------------------------------
● 并行智能任务调度:实现智能任务调度算法,用户根据任务特点自行编排并行/串行任务,系统感知执行器状态和健康度,动态分配执行器的任务,故障节点任务实现自动转移和熔断,结合资源弹性伸缩策略,实现调度器和执行器高可用和水平扩展。
● 资源弹性伸缩:使用华为企业云弹性伸缩服务,感知到业务集群资源使用情况,资源利用率超过阀值时,动态扩容;反之,自动缩容。流水线根据不同业务类型,配置不同的弹性伸缩策略和资源弹性伸缩组,从而实现短时间内迅速提升流水线总体吞吐量。
● 编译构建并行技术:通过使用精准增量编译技术,结合并行智能任务调度,可实现按技术栈、目录等编译策略增量并行编译,加速编译构建的速度,大幅降低编译构建等待时间。
该技术支撑下的开发优势:
● 对于一切可以解放双手的任务都由工具自动化实现。
● 一键式完成代码下载/代码检查/编译构建/系统部署/产品发布整个交付流程.。
● 任务并行执行,按需动态分配资源,显著提升资源利用效率及执行效率。
● 可实现单模块或者单独子系统的个人级交付,也可实现多模块、多子系统的版本级交付可随时查看流水线执行进度/结果/报告/日志。
--------------------------------------------------------------------------------
云端开发之部署环境标准化、过程自动化技术剖析:
● 部署编排技术
提供一定的服务编排能力,在 playbooks 中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤。并且可以同步或异步的发起任务。
用流水线同时集成编译构建、代码检查、部署,从代码提交开始触发操作,完成整个DevOps的自动化流程。流水线支持编排部署任务之间的依赖和顺序,通过串行任务和并行任务以及子流水线来组合、调度各个任务,从而实现高效部署。
● 大规模部署技术
Ansible本身就支持多并发部署,缺省的并发任务数是5. 但是DevCloud的部署采用python API实现,我们封装了python的任务以多线程方式运行;同时采用了gunicorn框架提供多进程复用技术,以最大限度的利用Ansibe引擎的并行部署能力;对于超过200以上并发的大规模部署,我们会采用横向扩展即增加AnsibleRest的节点数来支持更多的并发部署; 此外,我们还提供部署任务排队机制来保障峰值任务时系统仍然能够正常运行。
该技术支撑下的开发优势:
● 一键式自动化部署,部署机器无需安装代理,过程可视化,支持主流编程语言和技术框架,支持并行部署和流水线无缝集成
● 支持Web应用程序和微服务的部署,支持Tomcat、Java、Python、NodeJS、Go、PHP、Ruby语言。
● 通过流水线定制交付流程,支持并行和串行任务,系统自动执行所有任务,并可查看所有任务的执行状态、日志及报告。
● 提供高级编辑功能,满足用户更改部署参数和自定义执行参数以在部署任务执行时动态输入执行参数。
--------------------------------------------------------------------------------
业内分析:
正所谓英雄所见略同,业界也有很多DevOps方案和实践经验,比如微软公司Visual Studio + Team Foundation Server方案、AWS和Google基于云的DevOps模块化组件、其他公司自研搭建的DevOps链。
华为推出的DevCloud的侧重点是一站式的解决方案,用于帮助企业在软件开发的过程中提升效率和质量。DevCloud的中文名称为“华为软件开发云”,即面向的目标群体是团队规模在10-50人的中小团队,如中小企业的软件开发者、众包开发团队、个人开发者、高校软件/计算机类的大学生。
● 部署编排技术
提供一定的服务编排能力,在 playbooks 中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤。并且可以同步或异步的发起任务。
用流水线同时集成编译构建、代码检查、部署,从代码提交开始触发操作,完成整个DevOps的自动化流程。流水线支持编排部署任务之间的依赖和顺序,通过串行任务和并行任务以及子流水线来组合、调度各个任务,从而实现高效部署。
● 大规模部署技术
Ansible本身就支持多并发部署,缺省的并发任务数是5. 但是DevCloud的部署采用python API实现,我们封装了python的任务以多线程方式运行;同时采用了gunicorn框架提供多进程复用技术,以最大限度的利用Ansibe引擎的并行部署能力;对于超过200以上并发的大规模部署,我们会采用横向扩展即增加AnsibleRest的节点数来支持更多的并发部署; 此外,我们还提供部署任务排队机制来保障峰值任务时系统仍然能够正常运行。
该技术支撑下的开发优势:
● 一键式自动化部署,部署机器无需安装代理,过程可视化,支持主流编程语言和技术框架,支持并行部署和流水线无缝集成
● 支持Web应用程序和微服务的部署,支持Tomcat、Java、Python、NodeJS、Go、PHP、Ruby语言。
● 通过流水线定制交付流程,支持并行和串行任务,系统自动执行所有任务,并可查看所有任务的执行状态、日志及报告。
● 提供高级编辑功能,满足用户更改部署参数和自定义执行参数以在部署任务执行时动态输入执行参数。
--------------------------------------------------------------------------------
业内分析:
正所谓英雄所见略同,业界也有很多DevOps方案和实践经验,比如微软公司Visual Studio + Team Foundation Server方案、AWS和Google基于云的DevOps模块化组件、其他公司自研搭建的DevOps链。
华为推出的DevCloud的侧重点是一站式的解决方案,用于帮助企业在软件开发的过程中提升效率和质量。DevCloud的中文名称为“华为软件开发云”,即面向的目标群体是团队规模在10-50人的中小团队,如中小企业的软件开发者、众包开发团队、个人开发者、高校软件/计算机类的大学生。
相关推荐
华为推行DevOps,强调开发、测试和运维的融合,通过自动化工具链实现持续集成、持续交付和持续监控。这有助于减少手动操作,降低错误率,同时加快新功能上线的速度。 3. 大规模敏捷实践:对于华为这样的大型企业,...
【Linux 云计算基础】 Linux 是一种开源操作系统,被广泛应用于服务器、云计算和数据中心等领域...它将提供全面的Linux、云计算、安全和DevOps知识,助你在竞争激烈的市场中脱颖而出,实现年薪30万甚至更高的职业目标。
通过构建一个高效、自动化的DevOps平台,不仅可以大大提高软件开发的速度和质量,还能促进团队间的沟通与协作,最终帮助企业实现敏捷化转型的目标。在这个过程中,重视文化的培育和技术的创新同样至关重要。
DevOps 五大理念及其落地实践 研发运维一体化(DevOps)成熟度模型 中国DevOps现状调查报告及解读 构建企业DevOps的度量体系 DevOps实践指南精要 分布式敏捷和DevOps实践案例 AWS DevOps 助力爱乐奇大规模业务扩展 ...
Kubernetes不仅提供了强大的容器管理和调度功能,还能与DevOps工具链无缝集成,实现从代码提交到生产部署的全自动化流程。 - **持续集成/持续交付(CI/CD)**:利用Kubernetes的部署能力和滚动更新策略,实现代码的...
HCIP-Cloud+Service+DevOps+Engineer+V2.0第二章.xmind
HCIP-Cloud+Service+DevOps+Engineer+V2.0第一章.xmind
《阿里巴巴+DevOps+实践手册》 DevOps 敏捷研发篇 代码管理篇 持续交付篇 解决方案篇 CI & CD DDD TDD 实践手册
网盘文件永久链接 第1章 容器技术和Docker简介 第2章 Docker环境的各种搭建方法 第3章 Docker的镜像和容器 第4章 Docker的网络 第5章 Docker的持久化存储和数据...第11章 Docker+DevOps实战——过程和工具 第12章 总结
徐毅是一位在IBM担任大中华区敏捷及DevOps卓越中心主管的资深专业人士,他在设计思维、敏捷开发和DevOps领域有着深入的研究与实践。本文将围绕徐毅所关注的三个核心概念:设计思维、敏捷开发和DevOps,探索这些方法...
之前自己的项目开发就搭了个cicd的环境,那时候是在本就小的可怜的服务器上搭了一套 jenkins+dockerregistry+docker 见之前的笔记 总的差不多这样:之后对kubernetes的接触后,就在之前的基础上加入kubernetes,其实...
综上所述,"Python-基于pythondjangoAdminLTE实现的运维devops管理系统"是一个利用Python Django框架和AdminLTE模板构建的高效、直观的运维管理工具,涵盖了DevOps的核心理念,旨在提升运维效率和团队协作能力。...
为此,我们需要整合软件研发工具、容器化技术、运营监控工具等,实现敏捷和 DevOps 的转型。 DevOps 的思想是以客户为中心,响应变化,快速交付价值。为此,我们需要改变传统的研发模式,转向敏捷和 DevOps 的发展...
基于 python 3.7.9 + django 2.2.16 + channels 2.4.0 + celery 4.4.7 + ansible 2.9.14 + AdminLTE-3.0.0 实现的运维 devops 管理系统。具体见 screenshots 文件夹中的效果预览图。 本人为运维工程师,非专业开发,...
DevOps强调的是开发(Development)和运维(Operations)之间的沟通、协作与整合,以缩短系统的研发周期,提高交付效率,确保软件质量,从而提升企业的竞争力。Exin是国际信息科学考试学会,它在全球范围内提供多种...
Devops与精益敏捷开发实现.pptx
I wanted to write about DevOps practices and processes and had only a very broad idea what will be the outcome. I knew that Docker had to be there. I knew that configuration management is a must. ...
开发运维一体化(DevOps)验证可行性研究报告 一、DevOps 概述 DevOps,是Development和Operations的组合体,旨在通过文化、自动化、监控和协作等手段,来缩短软件开发和部署的时间 цикл,提高软件的质量和稳定...
开发运维一体化(DevOps)是一种旨在促进开发人员和运维团队之间紧密协作与沟通的文化、实践和工具集,以实现更快的软件交付和更高质量的产品。它借鉴了软件工程中的能力成熟度模型(CMMI,Capability Maturity ...