写点什么

如何借助自动化工具落地 DevOps|含低代码与 DevOps 应用实践

  • 2022 年 7 月 26 日
  • 本文字数:2219 字

    阅读完需:约 7 分钟

作者: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 进行可视化。


如何把控关键环节

  1. 通过 JIRA 建立任务后,通过自带的仪表盘可查看指定开发人员的代码 BUG 数量,以此精准定位人员问题,进行管理改进;另一方面,可通过仪表盘中所展示的不同阶段下的 BUG 数量优化整体开发流程;此外,可通过任务数看板界面把控任务开发进度。



  1. 通过 Gitee 可查看拉取代码分支后的一些操作,包括代码是否及时 merge、分支是否及时提交、扫描后的代码是否有漏洞或缺陷、构建后流水线的一些情况等,以此循环保证分支可健康运行。



  1. 通过 Docker 部署后可监控代码运行时的磁盘、内存消耗等情况,从而保证代码正常运行。



  1. 通过 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


发布于: 刚刚阅读数: 4
用户头像

全栈智能业务运维服务商 2021.03.10 加入

我们秉承Make Digital Online的使命,致力于通过先进的产品技术,为企业数字化转型和提升IT运营效率持续赋能。 https://www.cloudwise.com/

评论

发布
暂无评论
如何借助自动化工具落地DevOps|含低代码与DevOps应用实践_开源_云智慧AIOps社区_InfoQ写作社区