云效 —— 免费的一站式DevOps
聊聊实际
去年第一份实习,做的是前端开发,公司用的自建 gitlab
、jenkins
,项目流程是:产品给需求,前后端负责人建仓库分配权限,开发完后push,在协同软件中产品、开发、测试、运维交流问题,提发版申请,测试,上正式环境
整个流程来说不是很麻烦也不是很简单,毕竟流程要一步步走,研发周期长,一般都是赶着上线。
本文通过部署一个 VitePress
项目来做演示
什么是DevOps
这就不得不来一张图了
从字面上来看,DevOps
一词是由英文 Development(开发)和 Operations (运维)组合而成,但它所代表的理念和实践要比这广阔的多。DevOps
涵盖了安全、协作方式、数据分析等许多方面。DevOps
强调通过一系列手段来实现既快又稳的工作流程,使每个想法(比如一个新的软件功能,一个功能增强请求或者一个 bug 修复)在从开发到生产环境部署的整个流程中,都能不断地为用户带来价值。这种方式需要开发团队和运维团队密切交流、高效协作并且彼此体谅。此外,DevOps
还要能够方便扩展,灵活部署。有了DevOps
,需求最迫切的工作就能通过自助服务和自动化得到解决;
要说到 DevOps
那就又不得不说到CI/CD
(持续集成/持续部署),DevOps
是CI/CD
思想的延伸,CI/CD
是DevOps
的基础核心。
我们经常用开源社区GitHub
中就有个类似的功能:Action
,他有一个工作流的东西(云效中也有),说的是啥呢?
拿我们普通个人项目为例,我们首先需要在本地开发,开发完后要测试,然后 build
,在之后要连接服务器,将build
结果上传到服务器,如果是后端java
类的项目我们可能要重启服务,才能运行最新版,前端项目一般来说直接上传静态资源就可以,整个过程依然十分麻烦,有没有一种可能我们测试完后,在需要一条命令就可以完成呢?那自然是有的,通过定义workflow
,能在我们push
的时候触发workflow
,也就是说开发测试完成后push
到github
稍等一会儿线上项目就会自动同步最新版,省去了后续一大堆步骤。
说了这么大一堆,东一块西一块有啥用呢?那自然是引出阿里云 云效
了
什么是云效
那就得上图看看云效工具链
一眼看上去这么多东西怎么玩?学习是不是要很长时间?
先不慌,看看咱们熟悉的 “代码管理”、“流水线Flow”
代码管理这不是类似与GitHub
吗?流水线Flow
这不是类似于GitHub Action
吗?至于别的可以看看 官方文档
有了上面的介绍,来看看云效界面吧
我们新建一个项目看看,点击新建项目可以看到有很多模板选择,我们就直接选择 DevOps 研发
看看是不是如其名 “一站式DevOps
”
首次使用,可能没有项目分组,需要创建一个项目分组,这里就选私有项目分组吧
来到项目内,一个完整的项目生命周期映入眼帘
需求
产品经理可在这个页面发布一个新需求,可以指派哪些成员去实现这个需求,需求周期,需求提醒
这个在任务面板也能创建
迭代
迭代面板可以看到每一个需求、任务、缺陷、里程碑的 实时状态
任务
任务一栏中,项目中每个成员都能清楚看到自己的分工
省去了协同办公软件上繁多的需求文档,自己的不是自己的都在一起,亲身经历深受其扰,有了云效,谁登录就能精准定位自己的任务,极大提高了效率
右边工作区分隔的很明显,能很好把握项目整体进度
看板中每个任务状态
代码
喜闻乐见的代码环节,就像GitHub
创建代码库一样简单
这里我们试试 快速初始化中的标准智能化仓库
创建完成后会自动与项目绑定,同时会跳转到 https://codeup.aliyun.com 网站
仓库设置中除了一些Github
已有的,还有云效特有的,例如集成服务中的一些功能
自然少不了 阿里推出的 Java开发规约
,识别依赖中的漏洞也是很实用的功能。
推送规则中通过合理的正则表达式规范项目成员git commit
规范
这个也是很实用的功能了,我们来试着提交一个代码,体验一下。当然阿里云也有WebIDE
这个就不多说了,需要在设置
、基本设置
、编程主语言
配置仓库主要语言
首先需要前往 云效个人设置,新建一个SSH密钥(跟Github操作一样)当然在这之前你需要绑定并验证一个邮箱,然后执行下面的命令生成密钥
ssh-keygen -t ed25519 -C "your_email@example.com" -f "C:\Users\your\.ssh\codeup_id_rsa"
然后切换到用户主目录\.ssh
下,新建config
文件,添加如下内容
# codeup
Host codeup.aliyun.com
HostName codeup.aliyun.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/codeup_id_rsa
保存后,执行如下命令
ssh -T codeup.aliyun.com
看到 Welcome to Codeup,
字样说明配置成功,然后就可以愉快的开发啦✌️,我们来试着搭建一个 VitePress
yarn init
yarn add --dev vitepress
mkdir docs && echo '# Hello VitePress' > docs/index.md
在 package.json
中添加如下内容
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:serve": "vitepress serve docs"
}
yarn docs:dev
测试没问题后
git add .
git commit -m "feta: vitepress"
git push
然后我们配置流水线
这里我们选择Node js
会自动绑定当前代码库的主分支,当然你也可以指定分支
配置构建步骤,类似于Github Action
的配置,当然这里部署命令需要改一下,具体看package.json
文件中 script
字段带有build
哪一行,自己改成build
也可以的
上面写的有问题 源文件目录 应该是 docs/.vitepress/dist/
,Bucket Folder 目录不填
点击运行后,等待
这里有一些坑,使用Node构建的时候,请先确认你的Node版本,云效
这里最好选择输入指定版本,这样基本可以避免很多错误
这样就好了,这里我用的是OSS上传,OSS也可以开启静态页面访问,要开启共有读权限,这样静态网站就部署好啦
最后目录中应该是这样的,然后访问域名
就可以看到我们的网站了,这时候将流水线关联到云效项目中
这样基本就完成了,至于后面的我们稍后再看,先来试试我们之前说的一行命令更新线上服务
我这里是测试,所以指定代码提交即可触发真实环境一般是合并后,因为经过提交的代码测试后才会被合并到主分支,保证线上环境的安全
这里就会自动执行流水线部署,稍等片刻,刷新网站
这里后续的测试流程就不演示了,知识库就是文档,演示项目中无需文档
提交完成后就可以更改需求状态
然后后续的流程交由其他负责人完成即可,我们可以进行下一个优先级高的需求了。
总结
云效优势
DevOps
工具链一步配齐,开箱即用- 一套账号、数据体系,打通所有系统
- 简单易用,优秀实践经验模板化沉淀
- 深度集成阿里云产品,云上
DevOps
工具首选 - 多重企业级安全防控能力,安全可信
- 云效公共云产品,基础版,不限人数,免费使用
CI/CD
功能,GitHub
的确已经能完成,但没有企业会用Github
来部署自己的项目吧
像我之前公司 自建 GitLab
jenkins
或许是不少公司的选择,但终究依然有限制,比如产品、开发、测试、运维 不能高效沟通,多少会对项目进度有影响的。
云效 强在哪里?他把一个产品从需求到交付整个流程集合很完善。权限控制、任务分工十分明确;减少无效沟通,一切皆在看板,可以绑定钉钉,项目任何进度都可以随时通知到指定的人!
以上就是我初探云效的体验