优云automation实践技巧:简单4步完成自动化构建与发布

简介:
e78cec951ab8ab626ac56d7138c1e0e123e3a154

前言:本文介绍了优云是如何将运维自动化产品应用到日常工作实践中,并通过内部用户的大量使用来不断改进产品的用户体验。


各位看官,这不是一个揭发单身有为青年因同事们天天秀恩爱而受到一万点暴击伤害的故事。这里指的狗粮,不是真正的“狗粮”——当然,也不是你们认为的狗粮。


事实上,现在很多涉足产品开发的互联网公司,都会提到“吃狗粮”这一概念(出自“Eating yourown dog food -- 吃你自家的狗粮”),它的意思是公司内部员工使用自己生产的产品进行日常工作。这么做有什么好处呢,比方说一家公司做美颜APP的,结果他们自己员工却用某图秀秀P图,这产品对外怎么可能具备说服力?如果坚持使用自家开发的APP,不仅能提升员工开发时的使命感、大众使用此产品的信心,特别地,对于一些Bug的处理也会变得及时——员工发现Bug后会第一时间反馈,而用户很可能就放弃使用了。


关于这点笔者是深有体会,早些年从事软件服务外包时,发现交付给客户的产品鲜有好用的,究其原因,是实现软件的程序员们,未曾站到使用者的角度去思考。技术人员不作为用户,不会明白他们所开发产品的价值。如果不明白其价值,又如何会将其打造得尽善尽美呢?


笔者参与优云Automation产品开发之初,就竭力促成这款产品在优云软件日常工作使用中的落地,正所谓“狗粮吃得多,才能长得肥”!过去我们使用Jenkins等软件进行Automation产品的构建发布,优云Automation的设计目标就是自动化运维的一切,那么能不能将Jenkins所完成的工作用Automation来代替呢?想想应该是非常Easy的事情!

下面分享一下自己在公司吃狗粮的经历,让大家体会下这是一件多么幸福的事情!要成功吃到狗粮,只需要以下几步:


步骤一:定目标

首先设定吃狗粮的目标:使用Automation 实现产品自身的自动化构建和发布。然后规划构建发布过程,以便实现自动化。经过分析,整个构建和发布过程大致分为更新代码、程序构建、端到端测试、打包发布四个阶段。


1)  更新代码

这个很容易理解,就是将最新的代码从Git 远程仓库Pull 到本地。


2)  程序构建

这个阶段要实现Automation 代码的前后端构建,我们使用Webpack Maven 来进行构建管理,所以这个阶段只需执行几行命令便可完成。


3)  端到端测试

完成构建后,我们需要进行端到端的测试,验证本次版本的正确性。这里是吃狗粮的重点:使用最新构建出的系统来完成自动化测试,实现真正意义上的“自举”!这样充分保证新版本在一次真实的场景中运行的正确性和稳定性。


整个构建发布过程的前部分使用老版本运行,当构建出新版本后自动更新自身系统,并用新版本运行后续任务,同时通过“端到端测试”对新版本系统进行界面和接口的自动化测试。整个过程只要有任务执行失败,需要生成报告并通知相应人员进行处理。

74aff3f9e42533e3f6619605dbcf3d6ac7adb96d

4)  打包发布

优云产品有统一的发布仓库,所以测试通过后需要按公司的要求生成发布包上传到发布仓库,比如某个发布包类似uyun-automation-v2.1.5.tar.gz (此处版本号根据规则自动生成)。


步骤二:写操作

Automation 产品设计中,操作是自动化的原力,支持输入、输出参数设计,所以操作是很容易被复用的。产品本身内置了很多面向各种DevOps 场景常用的操作,也可以通过Python Shell 或批处理脚本按需扩展操作能力。


经过第一步的分析得到整个过程可划分为Git Pull 、前端构建、后端构建、部署系统、重启系统、端到端测试、生成发布包和上传发布包等操作。其中“端到端测试”操作实际上是调用了另外一个自动化测试的流程编排(概念后面会介绍)来实现。


自定义操作是非常容易的,下面以Git Pull 为例说明,其他操作就不细表了,相信难不倒各位看官。

9745e79b17862492dc3f82214bb64f25d7526b30

步骤三:编流程


有了自动化的原力之后,就要按我们的目标规划将各个原力串接起来,做出我们的“狗粮”自动化构建发布流程编排。Automation 提供了可视化的编排设计器,支持编排参数设计,任务间支持输入输出参数引用,可设定任务执行完成后是否需要确认才继续执行,所以能很容易编排出实现我们目标的自动化流程。


因整个系统包括前后端,所以复用Git Pull 操作实现前后端代码的更新。我们来看看实现上述完整过程的编排长什么样:

80a0ab4c292814ef7b64fd9aefd3751b31d3f212
         “端到端测试”调用的是另外一个编排,该编排主要调用Selenium和Automation自身的API实现界面、接口的自动化测试,这里就不详表了。


步骤四:天天“吃狗粮”

点击保存并测试,“狗粮”做好了,开吃!经过不到10 分钟,我们的作业便执行完毕:
0eea18ad4d2dee219ff5384280d17005f672bb87
构建并发布成功!如果构建失败怎么办?不急,Automation可以生成错误报告并通过邮件或短信通知开发工程师解决后进行下一次自动化构建。根据优云产品管理规定,设定编排每天定时执行,从此便每天过上快乐“吃狗粮”的生活。


自从吃上“狗粮”后,不再失眠了,因为每次构建都会进行自动化场景测试,有问题可以立即发现并修正,产品质量显著提升,单身汪们可以有更多时间解决单身问题,拒绝别人喂的“狗粮”!


其实上面介绍的自动化构建场景,只是 Automation 强大功能的一小部分,这个产品特别适合各位 DevOps 达人,不知各位看到这里,有没有联想到更多更棒的使用场景呢?先定他一个小目标,将您的应用构建和发布自动化起来!欢迎试用优云产品 Automation

作者简介: 竺夏栋

优云软件产品架构师
4年系统分析师,3年互联网金融相关创业经历
目前负责优云运维自动化产品的架构设计

“优云:全栈双态运维实践者,企业级运维专家
秉承devops的理念,从监控、到应用体验,到自动化持续交付,优云一切为了您做的更好!https://www.uyun.cn
相关文章
|
2月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
270 116
|
2月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
307 114
|
2月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
342 113
|
2月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
372 2
|
2月前
|
JSON 监控 API
n8n错误处理全攻略:构建稳定可靠的自动化工作流
在n8n自动化工作流中,错误是提升系统可靠性的关键。本文详解常见错误类型、节点级与全局处理机制,结合重试、熔断、补偿事务等高级模式,助您构建稳定、可维护的生产级自动化流程。
|
2月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
2月前
|
Java 项目管理 Maven
Maven项目管理与构建自动化完全指南
Maven彻底改变了Java项目管理方式,通过POM模型、依赖管理和标准化构建流程,大幅提升开发效率。本文深入解析其核心概念、多模块管理、私服搭建及与Spring Boot、Docker等现代技术栈的集成实践,助力开发者实现高效、规范的项目构建与团队协作。
Maven项目管理与构建自动化完全指南
|
2月前
|
API 调度 虚拟化
VMware Cloud Foundation Automation 9.0.1.0 发布 - 私有云自动化平台
VMware Cloud Foundation Automation 9.0.1.0 发布 - 私有云自动化平台
185 3
VMware Cloud Foundation Automation 9.0.1.0 发布 - 私有云自动化平台
|
3月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
184 6
数据采集 Web App开发 人工智能
197 0

热门文章

最新文章