DevOps实践:通过云效实现hexo自动构建部署发布

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 项目协作,基础版人数 不受限
云效 DevOps 制品仓库,基础版人数 不受限
简介: DevOps是一种融合开发、技术运营和质量保证的流程,旨在增强跨部门沟通与协作。通过自动化软件交付和架构变更,DevOps加速了构建、测试和发布软件的过程。本文作者分享了如何使用阿里云效平台实现个人Hexo博客的自动化部署,从而实现持续集成和持续部署(CI/CD)。在应用DevOps之前,作者需手动上传和部署文件;应用后,只需提交Markdown文件,其余步骤由DevOps平台自动完成。通过云效平台的代码管理和流水线功能,实现了从代码提交到自动发布的无缝衔接。

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。这是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例,是一个软件开发方法论。
DevOps

DevOps的目标是通过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠。这种方法的出现是因为软件行业日益清晰地认识到,为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

研发管理之认识DevOps》介绍了DevOps的概念和价值,本文我们来做一个小小的实践,通过阿里的云效DevOps平台来实现我的xiejava.ishareread.com的hexo博客网站的自动化部署实现持续集成和持续部署(CI/CD)。

一、没有用DevOps之前

我的xiejava.ishareread.com个人博客是通过hexo搭建的。因为是个人博客用hexo搭建比较简单而且还可以通过github的pages服务不用购买自己的服务器都可让大家访问。hexo博客的搭建教程见《通过Git Pages+Hexo搭建自己的博客》毕竟github在国内访问不是很稳定,所以我是购买了一台阿里的云主机ECS来部署我的hexo应用。

在没有用DevOps之前,我是通过自己本地用VS Code来编辑hexo的markdown博文,让后在本地通过执行hexo g命令生成构建hexo网站,然后登录到自己的阿里云主机上将文件传到服务器目录,再在服务器上构建并部署hexo应用。hexo很简单,这样构建发布也很容易,这几年也是这样做的。唯一不方便的就是有时候写的博文要修改,改一次就要重新上传发布到服务器上。毕竟咱也是搞IT的,感觉这样还是很不优雅。能不能提交markdown博文的.md文件候就自动给我发布了,省得每次还要登服务器,上传文件,编译,重启服务搞一系列的操作。

二、用了DevOps之后

为了体现程序员的优雅,我的个人博客xiejava.ishareread.com,小小的hexo用上了DevOps的牛刀。
hexo的DevOps

用了DevOps后,我只需要在本地用VS Code来编辑hexo的markdown博文,提交到代码仓库。后面的构建,打包,部署我都不用管了,直接通过DevOps平台自动做了。

三、如何实践DevOps实现hexo网站的自动发布

DevOps平台工具有很多,最常见的就是大名顶顶的Jenkins,本来想搭一套Jenkins的我的云服务器本来就只有1核1G的内存,更本就扛不住。后来在阿里的网站上看到阿里推出了自己的DevOps平台云效,赶紧来试试。
云效DevOps平台功能很多,包括有项目协作、代码管理、流水线、测试管理、制品仓库、知识库。
在这里插入图片描述

对于我这个小小的hexo个人博客的应用,其他都用不上,我就用了代码管理和流水线。

1、代码管理

将我的hexo博客代码托管到云效的代码管理Codeup代码库。
代码管理

可以支持从github、gitee、coding等代码仓库导入代码库。
云效从其他代码库导入代码

2、构建流水线

新建一条流水线用于拉代码、构建、部署。
构建流水线

1)设置流水线源

这里流水线源就是设置代码源流水线将从代码管理的Codeup代码库获取代码。其实也可以不用托管到云效的Codeup代码库,流水线代码源支持github、gitee、coding等代码仓库。
设置流水线源

2)添加并设置构建环节

云效添加构建环节

因为hexo是通过Node.js构建的,所以这里添加构建任务Node.js构建。
Nodejs构建写入自己的构建命令

在node.js构建节点,可以选择Node的版版本,将自己hexo应用的构建命令写入到构建命令。
我这里只用到了三条命令,安装hexo,从代码库中拉取hexo的主题,通过hexo g生成hexo的博客应用。

npm install -g hexo-cli --unsafe-perm
git clone https://gitee.com/xiejava/hexo-theme-next.git themes/hexo-theme-next
hexo g

这一步的任务输出就会生成hexo的博客应用的制品,给你打好包。下一步的动作就是将打好的制品包上传至自己的服务器进行部署。

3)添加并设置部署环节

云效支持很多种部署,因为我是要部署到自己的云主机,所以选择“主机部署”
添加主机部署环节

要部署到自己的云主机,就要让云效知道你的主机在哪里,可以点击新建主机组,将自己的主机添加进来。
新建主机组

将需要部署的主机添加到主机组
将主机添加到主机组

然后添加在主机上执行的部署脚本
添加在主机上执行的部署脚本

我在主机上hexo 服务进程用supervisor进行了托管,在这里部署脚本只有三条命令。

supervisorctl stop hexo
tar zxvf /home/admin/app/package.tgz -C /home/myhexo/myblog
supervisorctl start hexo

停止hexo的服务,将制品包解压到hexo的目录,然后再启动hexo服务就可以了。
云效还可以定义任务插件,比如在部署成功后发个邮件通知等。
云效邮件通知

到这里流水线就构建好了。

3、测试流水线

设置触发条件,开启Webhook触发,实现提交代码到到云效的Codeup代码库就可以触发流水线,开启自动拉取代码,自动构建、自动打包上传至主机、自动部署的流水线作业。也可以手动运行触发流水线。
设置触发条件

流水线执行后,可以在运行历史中看到每次流水线执行的情况。
查看每次流水线执行情况

也可以收到云效自动发过来的每次部署情况的邮件。
云效邮件通知

4、其他

云效针对流水线还提供了统计报表,可以看到流水线运行的概况的统计数据。
流水线运行的概况的统计数据

四、总结

本文通过一个hexo个人博客进行了DevOps的实践,当然因为项目太小不能实践到DevOps的全部,但也可以窥豹一斑。通过DevOps拉通开发和运维,通过应用DevOps平台能实现自动化“软件交付”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,提交研发交付效率。


博客地址:http://xiejava.ishareread.com/

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
目录
相关文章
|
25天前
|
运维 监控 Devops
自动化运维实践:打造高效的DevOps流水线
在软件开发的快节奏中,自动化运维成为提升效率、确保质量的关键。本文将引导你理解自动化运维的价值,通过实际案例分享如何构建一个高效、可靠的DevOps流水线。我们将从持续集成(CI)开始,逐步深入到持续部署(CD),并展示代码示例来具体说明。准备好让你的运维工作飞跃式进步了吗?让我们开始吧!
|
1月前
|
运维 安全 Devops
DevOps实践中的安全审核和合规性
在DevOps实践中,确保安全审核和合规性至关重要。通过自动化合规审查、持续安全集成、基础设施即代码管理、敏捷合规框架、跨部门合作、教育与培训、实施DevSecOps模型、使用安全编码技术、整合正确工具及采用安全即代码等措施,组织能有效管理并降低合规与安全风险,促进高效可靠的DevOps文化发展。
|
1月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
在DevOps实践中,为平衡开发速度与安全审核效率,可采取自动化安全测试、安全编码实践、持续监控与日志分析、集成安全工具、合规性代码审查、基础设施即代码、权限和访问控制、安全培训、漏洞及补丁管理和持续反馈改进等措施,确保高效安全的开发流程。
|
1月前
|
运维 Devops jenkins
DevOps实践:持续集成与持续部署在现代软件开发中的作用
【10月更文挑战第42天】在快节奏的软件开发世界里,DevOps已经成为一种提升效率、确保质量和加速交付的重要方法。本文将深入探讨DevOps的核心组成部分—持续集成(CI)和持续部署(CD)—并展示它们如何通过自动化流程优化开发周期。我们将从基础概念讲起,逐步过渡到实际操作,最终通过一个简单代码示例来演示这一过程。文章旨在为读者提供清晰的指导,帮助他们理解和实现CI/CD流程,从而在软件开发领域取得竞争优势。
|
1月前
|
Devops jenkins 测试技术
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第41天】在软件开发的世界中,快速迭代和高效交付是企业竞争力的关键。本文将带你走进DevOps的核心实践——自动化部署与持续集成,揭示如何通过它们提升开发流程的效率与质量。我们将从DevOps的基本理念出发,逐步深入到具体的技术实现,最终展示一个实际的代码示例,让理论与实践相结合,为你的开发旅程提供清晰的指引。
54 4
|
1月前
|
运维 安全 Devops
DevOps实践中的安全审核和合规性
DevOps实践中的安全审核和合规性
|
1月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率?
DevOps实践中,如何平衡开发速度和安全审核的效率?
|
1月前
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
1月前
|
运维 安全 Devops
DevOps实践中的安全审核和合规性
DevOps实践中的安全审核和合规性
|
1月前
|
运维 Devops jenkins
DevOps实践之持续集成与持续交付
【10月更文挑战第32天】在软件开发的快节奏世界中,DevOps已经成为提升效率和质量的关键策略。通过将开发(Development)和运维(Operations)紧密结合,DevOps促进了更快速的软件发布和更高的可靠性。本文将深入探讨DevOps的核心组成部分——持续集成(CI)和持续交付(CD),并展示如何通过实际代码示例实现它们,以帮助团队构建更加高效和稳定的软件发布流程。

热门文章

最新文章