In-depth analysis: how the latest cloud development tools implement agile + DevOps development

I believe that many software developers have heard about the emerging cloud development tool in China this year - Huawei Software Development Cloud. Some people may have experienced it for free. Since its team of less than 5 people is free to use, I am very fortunate to have this project. Exactly 5 people, just registered to use. Let me give you a deep analysis of how this latest cloud development tool is "how to implement agile + DevOps development" based on my own experience.

Cloud development experience: Developers focus on development, and the cloud platform automatically handles the four traditional problems, which significantly improves efficiency.
Developers can only focus on code writing. In traditional development, the "unification of development tools, environment deployment, project management, and parallel collaboration" are encountered. The cloud platform can directly deal with the four major problems of development, and it is no longer necessary to manually deal with trivial code work one by one, which greatly improves the development efficiency of the project.

In my previous project development, if the 100 million lines of code used the traditional mode, the compilation time exceeded 25 minutes, and the Huawei software development cloud was used, and the compilation time was only 7 minutes; while the compilation speed of the version was reduced from 94 minutes to 31 minutes; research and development Environment preparation time has been reduced from months to hours.
-------------------------------------------------- ------------------------------

Analysis of code inspection technology for cloud development :
  ● Automatic defect inspection: The code defect pattern library integrates Huawei's excellent code practices and programming specifications with industry-wide inspection rules, covering common coding style, architecture, and web security issues.
  ● Large-scale distributed task scheduling: Based on the parallel intelligent task scheduling algorithm, the inspection nodes are automatically and elastically scaled, and the inspection tasks are intelligently segmented and executed in parallel according to the type of inspection rules, supporting code inspection in large-scale code warehouses.

Development advantages supported by this technology:
  ● Supports language inspections such as Java, JavaScript, CSS, HTML, and C++, and continues to increase the breadth of language support.
  ● Accurately locate defects, and provide detailed defect impact descriptions, correct examples, incorrect examples, and modification suggestions for each code defect.
  ● If the system's inspection does not meet the requirements, SE can select the rule set by customizing the rule set;
  ● For a large number of code defects, users can filter according to the problem level, problem classification, language, file directory, etc., and graded processing.


 
-------------------------------------------------- ------------------------------
云端开发之自动化流水线技术剖析
  ● 并行智能任务调度:实现智能任务调度算法,用户根据任务特点自行编排并行/串行任务,系统感知执行器状态和健康度,动态分配执行器的任务,故障节点任务实现自动转移和熔断,结合资源弹性伸缩策略,实现调度器和执行器高可用和水平扩展。
  ● 资源弹性伸缩:使用华为企业云弹性伸缩服务,感知到业务集群资源使用情况,资源利用率超过阀值时,动态扩容;反之,自动缩容。流水线根据不同业务类型,配置不同的弹性伸缩策略和资源弹性伸缩组,从而实现短时间内迅速提升流水线总体吞吐量。
  ● 编译构建并行技术:通过使用精准增量编译技术,结合并行智能任务调度,可实现按技术栈、目录等编译策略增量并行编译,加速编译构建的速度,大幅降低编译构建等待时间。
该技术支撑下的开发优势:
  ● 对于一切可以解放双手的任务都由工具自动化实现。
  ● 一键式完成代码下载/代码检查/编译构建/系统部署/产品发布整个交付流程.。
  ● 任务并行执行,按需动态分配资源,显著提升资源利用效率及执行效率。
  ● 可实现单模块或者单独子系统的个人级交付,也可实现多模块、多子系统的版本级交付可随时查看流水线执行进度/结果/报告/日志。

--------------------------------------------------------------------------------
云端开发之部署环境标准化、过程自动化技术剖析
  ● 部署编排技术
提供一定的服务编排能力,在 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人的中小团队,如中小企业的软件开发者、众包开发团队、个人开发者、高校软件/计算机类的大学生。

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326450110&siteId=291194637