作者:Tiger Wang,云智慧研发负责人&开源项目 FlyFish PMC。
本篇文章将从5个方向详细讲解如何借助自动化工具落地DevOps。首先会介绍传统迭代方式的弊端以及为什么要推出DevOps;接下来将讲解DevOps迭代方式的优点,以及如何借助自动化工具落地DevOps;后面两章着重分享如何把控DevOps落地过程中的关键环节以及低代码技术与DevOps的一些新探索。
传统迭代方式的弊端
在日常工作迭代方式中,开发团队进行开发设计和整体系统的构建,因此需要系统不停的迭代更新;运维团队则是将开发团队测试后的code进行部署上线,即保障系统稳定、安全的运行。因而,两个团队通过传统迭代便会引发下列几个弊端:
-
团队独立:开发和运维团队的工作,是相互独立的。 彼此之前很少沟通,也不了解彼此的工作内容;
-
易突发问题:手动进行代码部署,容易出现人为错误,严重的可能会对生产环境造成破坏;
-
周期延长:开发和运维团队都有各自节奏,两个团队之间不同步,导致上线很难按时完。
接下来,我们将结合实际场景,展示在迭代过程中遇到的问题及痛点。
-
运维团队需要整理容器、集群等相关部署的文档工作,但由于不了解服务的架构、依赖情况,导致部署文档整理变得复杂;
-
由于运维同学对应用程序内部逻辑不清晰,导致无法独立判断应用程序的正常运行;
-
运维团队对开发团队的进展一无所知,运维团队根据自己的理解制定监控计划;
-
同样的一个产品、同样的一个环境,每次都需要进行手动部署,重复性工作太多;
-
明明简单的安装部署,服务更新,但还都需要人员投入。优秀人员不愿意干,一般人员不放心。没有成长空间。
DevOps迭代方式和优点
DevOps是促进开发和运维团队之间的协作,以自动化和可重复的方式更快地将代码部署到生产环境中,在日常迭代过程中,具体有以下几方面优点:
-
可预测性:DevOps大大降低了新版本的意外失败率;
-
可重现性:对所有内容进行版本化,以便可以随时恢复早期版本;
-
可维护性:在新版本崩溃或有问题的情况下,轻松回滚;
-
降低成本:DevOps在开发过程中提高了效率,降低了研发成本;
-
更高的质量:由于和运维团队紧密合作,产品问题尽早暴露;
-
降低风险:DevOps在环节上增加了风险控制方面的内容,降低项目研发风险。
借助自动化工具落地DevOps
常用自动化工具介绍
在日常工作中,常用的自动化工具有JIRA、Gitee、sonarQube、Jenkins、Docker、JFrog,此外低代码数据可视化平台FlyFish也是不可或缺的一部分。
-
JIRA : 主要应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域;
-
Gitee: 用于仓库及分支管理,代码扫描、漏洞检查等;
-
sonarQube: 通过PMD、CheckStyle、Findbugs等代码规则检测工具规范代码编写;
-
Jenkins: 主要用于持续或自动地构建/测试软件项目,以及监控一些定时执行的任务;
-
FlyFish : 开源低代码可视化工具,可通过拖拉拽的形式形成可视化大屏,用于过程看板搭建;
-
Docker: 将运行环境和配置放在代码中并部署;
-
JFrog: 用于管理构建工具(如:maven、gradle)等所依赖的二进制仓库,以便管理第三方库和发布目标版本库,从而提高软件开发效率。
自动化工具落地DevOps工作流程
管理人员通过JIRA建立开发任务,并指定开发人员进行代码构建,以此进行任务追踪;开发人员将代码构建完成后推送至Gitee进行提交,提交完成后利用Gitee所对应的webhook推送至Jenkins;Jenkins接受到通知后可拉取分支代码,并通知对应的sonarQube进行代码扫描处理;扫描完成后,相关人员可看到代码扫描质量结果,与此同时可进行部分构建以及做出镜像;代码构建完成后会推送至Docker镜像,与此同时也可以放至JFrog中,开发人员后续便无需重复构建便可直接拉取。
自动化工具落地DevOps整体工作流程便是通过Jenkins通知服务器进行镜像拉取,拉取完成后进行构建,构建完成后通过FlyFish进行可视化。
如何把控关键环节
- 通过JIRA建立任务后,通过自带的仪表盘可查看指定开发人员的代码BUG数量,以此精准定位人员问题,进行管理改进;另一方面,可通过仪表盘中所展示的不同阶段下的BUG数量优化整体开发流程;此外,可通过任务数看板界面把控任务开发进度。
- 通过Gitee可查看拉取代码分支后的一些操作,包括代码是否及时merge、分支是否及时提交、扫描后的代码是否有漏洞或缺陷、构建后流水线的一些情况等,以此循环保证分支可健康运行。
- 通过Docker部署后可监控代码运行时的磁盘、内存消耗等情况,从而保证代码正常运行。
- 通过FlyFish创建的看板大屏监控各个工作流程的健康度。包括运营、监控、计划、开发、编译、测试、发布、部署等阶段。
低代码技术与DevOps探索
未来,低代码技术与DevOps会有更多的可能性。包括探通过低代码的方式把Jenkins关键指标进行把控;流程编排方面,包括事件触发、通知人员。抽象脚本、抽象对象、抽象action,把任务编排起来;数据打通方面,通过低代码打通DevOps过程应用,把过程中的指标轻易量化。
- 与JIRA结合创建任务质量看板。
- 与Gitee结合创建代码工程看板。
FlyFish开源福利
云智慧已开源数据可视化编排平台 FlyFish 。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。 同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置, 面向复杂需求场景能够保证高效开发与交付。
点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。
GitHub 地址: https://github.com/CloudWise-OpenSource/FlyFish
Gitee 地址:https://gitee.com/CloudWise/fly-fish
超级体验官活动: http://bbs.aiops.cloudwise.com/d/712-flyfish
万元现金活动: http://bbs.aiops.cloudwise.com/t/Activity
微信扫描识别下方二维码,备注【飞鱼】加入AIOps社区飞鱼开发者交流群,与 FlyFish 项目 PMC 面对面交流~