DevOps高效开发管理-云效实践初体验

简介: 本实验带您体验通过云效产品,实现快速持续交付。

DevOps高效开发管理-云效实践初体验

1. 背景介绍

讲解产品之前,先来整体梳理一下DevOps整体的理念,什么是DevOps,有什么优点,都能做什么。

我们先来看看什么是DevOps?

DevOps维基百科定义DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。

透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

DevOps解决哪些问题?

高效协作沟通,尤其是开发人员和运维人员。

可以快速持续交付,适应软件的快速迭代。

企业一站式敏捷项目管理。

我们从图中看到这些管理形式,大家能猜出都是什么吗?

瀑布式,是很早就有了,专注整体成熟的项目。后来发展到敏捷管理,包括srum等等具体管理方法和工具。

敏捷过来极大提高了团队,管理,开发测试的效率。

但是针对现在互联网大环境,我们需要产品更快的发布功能,还要求产品不能下线。这就需要开发和部署也更加高效,于是DevOps应用而生。

3. DevOps优缺点

优点:快速交付,集成,部署;可靠,安全;高效协作。

缺点:学习,实施门槛稍高。

2. 产品概览

大概了解了DevOps的概念和思想,包括能做什么。

现在我们来从各个大公司看下他们的DevOps产品是什么样的,这样就更好的让我们的理解落地,更加形象化。

阿里云-云效DevOps

云原生时代一站式BizDevOps平台,数十万企业都在用。

支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

相比开源自建,云效DevOps具备如下优势:

免搭建、免维护,注册即用

云效DevOps基础版6款产品不限成员数、免费使用,免搭建、免运维。

一站式DevOps,账号、数据打通

一套账号,打通所有系统‍,数据不再割裂。需求、代码、CI/CD无缝衔接。

丰富的研发效能数据洞察

任务燃尽图、代码统计图等丰富的效能数据,帮助管理者准确洞察研发效能。

从云效产品矩阵中,可以看到涉及到的DevOps的理解有那些,包括扩展了那些功能。有没有让我们激动的功能哪?

阿里云主要阐述了2个场景,一个是企业级的,基本上涵盖了项目,产品开发的全部。

其中对于中小团队,可以用持续交付这个场景的产品功能,这也是DevOps的核心。

华为云-软件开发平台 DevCloud

一站式、全流程、安全可信的云原生DevSecOps平台。

具有开箱即用,预置最佳实践。

提高企业项目管理质量和效率。

一站式DevSecOps软件开发平台

覆盖项目管理、代码托管、流水线、代码检查、编译构建、部署、测试、制品仓库等全生命周期软件开发服务。

安全能力Built-In各个环节,全流程保障研发安全可控。

Built-In安全

在设计阶段提供威胁建模分析能力和符合GDPR等隐私保护法要求的隐私问题分析能力。

开发阶段提供白盒检查能力,覆盖行业通用安全规范,支持主流编程语言的安全编码检查能力。

测试阶段提供Web漏洞、主机漏洞扫描等多种黑盒测试能力,也支持主流容器的安全配置检查能力。

针对典型研发场景解决研发痛点

支持互联网开发、移动应用开发、微服务开发、嵌入式开发等主流研发场景。

针对需求变动频繁、开发测试环境复杂、多版本分支维护困难、无法有效监控进度和质量等研发痛点,提供一站式云端管理平台,管理软件开发全过程。

自动化流水线,缩短交付周期,提升交付质量

云端项目管理,融合敏捷开发理念,提供管理者看板和仪表盘,实现跨团队、跨地域高效协作。

云端代码检查 ,不断注入华为经验,自动化测试管理和APP测试功能,让软件缺陷减少20%。

提供可视化、可定制的持续交付流水线服务,一键式部署,让软件上线提速一倍。

从图中可以看到,DevCloud产品的构成,基本也是包括了项目管理,代码托管,发布,部署,测试等等。

腾讯云-CODING DevOps

包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务。

涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同。

实践敏捷开发与 DevOps,提升软件交付质量与速度。

CODING DevOps产品家族可以从图中一目了然,基本上也是覆盖了整体项目的管理流程。

再从应用场景可以观察到,核心落地在敏捷开发,瀑布开发,和DevOps自动化实践3个方面。我们不过多赘述,都可以从图中学习到。

如果是APP产品还可以直接发布到应用市场,应用宝中,整合的非常便利。

3. 云效实践

接着我们来一步一步体验云效产品,通过一个测试小产品来深入实践。

从这个云效架构图中,我们可以了解到云效的方方面面。

我们用菜单的维度先来了解下云效功能的概念。

工作台:产品的主页面,展示了基础项目和数据。

企业管理后台:包括基础配置,成员配置,权限管理,应用管理,安全管理,针对基础信息配合,比如用户,日志等。

项目协作:提供多种研发项目模板,与钉钉组织打通,与云效「代码管理」和「流水线」结合,打造一站式、端到端的软件研发 DevOps 项目。

效能洞察:是一款专业的交付过程观测和研发效能度量分析工具,包括报表展示,数据监控等。

钉钉文档:可以绑定钉钉组织,成员,钉钉消息通知,钉钉文档集成等等。

知识库:是一款企业知识管理工具,通过独立的知识库空间,结构化地组织在线协作文档,实现企业知识的积累和沉淀,促进知识的高度复用和流通。

代码管理:企业级代码管理平台,提供代码托管、代码评审、代码扫描、质量检测等功能,全方位保护企业代码资产,帮助企业实现安全、稳定、高效的研发管理。

流水线:一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。

制品仓库:是制品的仓库,制品是软件交付的成果性产物,通常是可运行的二进制形式,因此制品库通常也被称之为二进制制品仓库,也可以理解为我们开发过程中的包依赖。

应用交付: 是以应用为核心的云原生应用交付平台,提供一站式持续交付的解决问题方案。

测试管理: 包含对测试计划与执行用例的创建、编辑、规划与关联等功能。

云端开发:云效云端开发平台 DevStudio 是面向云原生的 WebIDE 产品,只需一个浏览器即可获得与本地 IDE 一致的开发体验。

企业管理:企业组织结构的管理,如添加项目成员等。

云效功能实践 - 实践一个产品过程

我们用一个简单的“目标助手”小项目实践来体验下云效整体流程。

项目创建,添加需求,确定时间范围,参与人等。

构建基础工具,如代码管理,知识库文档等。

代码开发,测试,发布一系列流程管理。

首先,进入云效工作台首页面板,非常清晰。产品中列出了全部的云效平台产品功能点。

我们逐一体验,先来创建一个项目。

我选择DevOps模板,填写项目的基本信息。

项目创建后,就可以再起下面添加需求明细了。

需求中包括了常用的标题,描述,实践,参与人等等。其中任务,缺陷,迭代都比较相似我就不展示了。工时是统计开发是时长。

来看代码管理的功能。图中我已经创建好了targethelper的代码库,您可以单击右上角添加库来创建。

在代码库详情页面大家都很熟悉,和github等都很像,我通过https方式把本地代码传到了这个库中,创建了master主分支。

我们接着来看云端开发的功能。进入后,出现一个如图的页面,我选择新建工作空间。

第一步是选择代码库,包括了多个类型,我选择云效代码管理类型。接着第二步就可以选择库的技术栈,我选择node.js,进入空间。

很熟悉的味道回来了,类似vs code,也是我常用的IDE工具。这个web端工具,满足了常用开发需求,其中可以配置端口,直接运行一些应用展示。

团队主要成员可以把环境配置好,让新人利用Web IDE开发,不用配置复杂的环境,快速进入开发状态。

代码都传到了代码管理库中了,我们创建流水线来自动化部署代码。

我的流水线页面,单击新建流水线。在选择流水线模板对话框中,选择Node.js的模板,包括了代码扫码,测试,构建和部署。

接着一步一步配置流水线,流水线也是DevOps的核心功能,复杂性也比较高。

图中是我已经配置好的流水线,有四步。右侧是流水线可以创建的任务,非常的多,足够我们日常使用。

13.1 我先配置第一步源代码,我的代码已经传到了codeup上,所以直接选择Codeup的代码源,右图中配置的信息,点击仅保存。

13.2 配置JavaScript的代码扫码,没有特殊要求,这里配置很简单,我基本上是默认选择的。

13.3 Node.js构建,需要把构建命令写对。这是我的构建命令。

git config --global url."https://${huodaxia}:${huodaxia}@codeup.aliyun.com".insteadOf "https://codeup.aliyun.com"
npm install

13.4 构建完毕后,再来进行主机部署,主机我选择了5小时的体验主机。直接把上一步构建好的代码包,创建压缩到服务器主机中。

mkdir -p /home/admin/application
tar zxvf /home/admin/app/package.tgz -C /home/admin/application/

这里就是选择主机的选项,体验的同学可以直接创建免费体验主机,阿里云这点非常方面,绝对是牛。

13. 5 流水线的步骤都配置完毕后,单击保存并运行

耐心等待一会,我们可以看到图中页面,已经都变绿了,证明部署完成,没有错误。如果有错误的话,可以通过查看日志来修改。

这里我绑定了钉钉后,每次运行时候有错误还会给我提示,图中蓝色的框就是钉钉给我的提示。做到了及时通知,非常方便。

运行部署完毕后,我们可以到部署详细中查看相关信息,也可以检查代码部署包是否正常。

最终部署成功后,输入url,我的小产品出现了,还是很不错的哦。

流水线是最终的功能哦,我也花了最大的篇幅和文字去介绍。希望小白朋友能看懂,帮助到大家。

应用交付

应用交付是整合多个应用高效交付的过程,这里我大概给大家展示一个操作的步骤,不再过多的介绍。

图中是我们创建的一个应用,一个应用可以理解为你的小产品,小服务。

创建应用后,我们可以先来创建关联自己的主机资源。这里我也用了阿里提供的实验室自动K8免费集群。

创建免费集群后如下图所示,默认8小时的使用时间。

集群资源创建后,默认产生多个节点和多个K8容器。都可以从这里观察到。

我们接着进入应用中来逐步配置信息。应用有4个过程,部署编排,环境规划,研发流程设置,应用发布。

其实就是把K8容器进行管理,产品部署的环境管理,流水线流程管理,最后就是运行流水线发布到我们服务器上。发布之后也可以通过工单形式团队通知。

5.1 图中是编排的页面,这里我没有做太多编排,只给大家展示也页面。

5.2 我们在环境中可以关联集群,这样就完成了环境的配置。

5.3 关联后,我们来配置下环境具体信息,比如你的开发环境只需要2核4G内存,都可以在这里配置。

5.4 配置完成后,我们就可以关联我们前面创建的流水线发布了。

应用发布我就实践到这里,因为体验环境到期,我这里就不展示最终发布运行的成功图片了,感兴趣的朋友可以集中时间尝试下。

制品仓库

制品仓库就是我们要用的依赖包,程序构建压缩包等。包括3种方式,Java的Maven仓库,Npm仓库,还有通用制品仓库,默认可以用通用自动化生成制品仓库。

我直接再流水线中构建生成了制品库,可以从图中看到制品的一些信息。

知识库

知识库有多个模板可以选择,当下开发产品比较小,我选择了产品研发模板。

配置了基本信息后,就是一个这样的面板,很不错。整个产品管理的流程都有了。而且还能驱动团队更加专业的开发管理项目,对于小团队如果没有严格监管,很容易放弃很多重要的流程交付结果。

知识库文档中都给了模板,我们直接编写自己产品需求即可,很方便。

钉钉文档

钉钉文档这里我绑定体验后,觉得有2点非常喜欢,第一个可以手机上随时监控项目。第二就是可以钉钉随时提醒我重要的消息,这样产品的状态我可以随时掌握。

钉钉文档也是可以知识库可以连通的。

因为我们团队不大,在产品测试时,我们主要针对一些大的功能点进行测试,其他小功能暂时没有做太多的记录。

测试计划

测试计划,测试用例还是非常有用的功能,这样和云效整合到一起,方便项目的整体管理。

生成的测试报告非常精美,还有多个主题模板可以选择,还能生成图片和PDF文件。对于给客户交付的项目,详细如果你给客户交付这样的测试报告,一定会让你的公司和团队赢得客户的赞美,瞬间高大尚。

效能洞察

效能洞察是方便团队成员快速观察整体项目的情况和指标,因为我没有购买付费版本,这里简单介绍下,感兴趣的可以购买尝试。

个人总结

通过一个小案例体验了阿里云云效平台,包括众多的功能。个人角度总结几个小建议。

对应5-10人团队,我觉得会受益良多,可以配合使用项目管理,代码管理,流水线,测试管理知识库,具体根据开发产品调整即可。产品迭代可以做的随时,而且流行配置好后,团队成员经过简短培训,都可以上手参与一些运维工作。 不过少于5人的团队,可以使用代码管理,项目管理几个简单工具,没有必要使用流水线等复杂产品,因为本身可能就1-2个人负责开发和运维了。 大规模团队,具有复杂架构环境,包括有多个产品的团队,云效DevOps工具非常适合,可以通过不同产品配合使用,高效解决管理问题,开发和部署问题。 对于想把整体工具操作流畅使用起来,对小白开发者来说有一定门槛。

4. 思考与总结

最后,我们来整体思考总结下。

切记DevOps不是一个产品,一个平台,它是一种项目管理的理念,是在当下互联网,IT项目和产品的大环境下应运产生的。

为了让我们团队开发,沟通,发布更高效,让产品不宕机的升级,让团队可以随时发布产品功能。

多家公司都在发展自己有的DevOps工具,不同产品都有自己侧重点,阿里云云效侧重整体的一站式流程,让整个团队人都可以高效合作,包括产品管理,开发,部署,测试等等。

我觉得我们还是要积极拥抱DevOps,在选择DevOps上,根据自身团队情况选择适合自己的,可以一点一点从一个个功能开始尝试,相信会让你事半功倍。

项目管理有瀑布式,敏捷式,包括现在的DevOps,不同的管理形式适合不同的项目,针对互联网和当今快速迭代的产品来说,DevOps绝对是最适合的。

我猜想,以后的项目管理理念会区域更加的智能化,随着云计算,人工智能的发展,以后产品可能只需要我们点击几下就可以做到轻松部署,弹性扩展。

你觉得以后会怎样发展哪?点赞,评论,我们一起学习交流。

实验链接:https://developer.aliyun.com/adc/scenario/4148b0b0e543409e9d259d9263f07a32

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
相关文章
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
DevOps实践中,如何平衡开发速度和安全审核的效率
|
监控 Devops 测试技术
利用DevOps提升开发效率:技术实践与策略
【7月更文挑战第4天】DevOps通过自动化、CI/CD、协作与沟通等手段,显著提升了软件开发的效率和质量。随着云计算、容器化、自动化测试等技术的不断发展,DevOps的实践将更加深入和广泛。未来,更多的企业将采用DevOps文化,构建高效、灵活、可靠的软件开发和运维体系,以应对快速变化的市场需求。 总之,利用DevOps提升开发效率是软件开发领域的重要趋势。通过实施上述实践策略,企业可以加速产品迭代,提高市场竞争力,实现可持续发展。
|
12月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
在DevOps实践中,为平衡开发速度与安全审核效率,可采取自动化安全测试、安全编码实践、持续监控与日志分析、集成安全工具、合规性代码审查、基础设施即代码、权限和访问控制、安全培训、漏洞及补丁管理和持续反馈改进等措施,确保高效安全的开发流程。
|
12月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率?
DevOps实践中,如何平衡开发速度和安全审核的效率?
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
敏捷开发 运维 Devops
DevOps文化:打破开发与运维之间的壁垒
【8月更文挑战第14天】DevOps文化是现代软件开发和运维的重要趋势之一。通过打破开发与运维之间的壁垒,实现自动化、持续集成/持续部署以及紧密协作等关键实践,可以显著提高软件交付的质量和效率。对于任何希望在数字化时代保持竞争力的企业来说,拥抱DevOps文化无疑是一个明智的选择。
|
弹性计算 监控 Devops
"揭秘!阿里云云效如何以戏剧性飞跃,重塑企业门户网站部署,一键解锁DevOps魔法,让您的网站秒变行业巨星!"
【8月更文挑战第8天】阿里云云效企业门户网站部署解决方案是一站式DevOps平台,集成云效Flow、Codeup、Testplan等,支持自动化构建、部署与测试。通过ECS实例等资源准备、云端代码托管、持续集成与部署、及全方位监控,实现网站高效稳定运行。采用YAML配置简化流程,确保快速迭代与优化,适用于各类企业的数字化转型。
260 3
|
运维 JavaScript Devops
DevOps实践:通过云效实现hexo自动构建部署发布
DevOps是一种融合开发、技术运营和质量保证的流程,旨在增强跨部门沟通与协作。通过自动化软件交付和架构变更,DevOps加速了构建、测试和发布软件的过程。本文作者分享了如何使用阿里云效平台实现个人Hexo博客的自动化部署,从而实现持续集成和持续部署(CI/CD)。在应用DevOps之前,作者需手动上传和部署文件;应用后,只需提交Markdown文件,其余步骤由DevOps平台自动完成。通过云效平台的代码管理和流水线功能,实现了从代码提交到自动发布的无缝衔接。
385 2
DevOps实践:通过云效实现hexo自动构建部署发布
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
205 0
|
前端开发 Devops 持续交付
【前端自动化新高度】Angular与Azure DevOps完美结合:从零构建持续集成与持续部署的全自动流水线,提升开发效率与软件交付质量!
【8月更文挑战第31天】Angular作为领先的前端框架,以强大功能和灵活性深受开发者喜爱。Azure DevOps提供一站式DevOps服务,涵盖源码管理、持续集成(CI)及持续部署(CD)。本文将指导你如何在Azure DevOps中搭建Angular项目的CI/CD流程,并通过具体示例代码展示整个过程。首先,我们将创建一个Angular项目并初始化Git仓库;然后,在Azure DevOps中设置CI流水线,定义YAML文件以自动化构建和部署流程。最终实现每次提交代码后自动构建并部署至Azure Web App,极大提升了开发效率和软件交付速度,使团队更专注于创新。
212 0