基于Ansible和CodeDeploy的DevOps解决方案

名词解释:

Ansible:由红帽Red Hat开源并主导的自动化运维工具,帮助运维实现IT自动化,降低人为操作错误,提高业务自动化率,提升运维工作效率。Ansible常用于软件部署自动化、配置自动化、管理自动化、软件平滑升级等。它拥有丰富的内置模块,并且有开放的API接口、完善的文档体系,以及活跃的社区。

CodeDeploy:是由公有云厂商AWS提出的应用部署规范,利用YAML格式,清晰的定义应用部署的全生命周期(从DownloadBundle开始到ValidateService结束)。AWS实现了基于CodeDeploy规范的公有云服务,即AWS CodeDeploy,提供给AWS客户使用。

DevOps:DevOps中的Dev指Development,Ops指的是Operations。DevOps的目标是打通开发运维的壁垒,实现开发运维一体化。这也就是说DevOps并不是某个系统或者某个工具,更不会等价于某些具体的名词(比如容器、Jenkins)。

图1 DevOps的目标是实现开发运维一体化
图1 DevOps的目标是实现开发运维一体化

背景:DevOps为什么这么火?

毋庸置疑,DevOps已经成为近些年IT行业内最火爆的方向之一。众多企业也在积极的学习、实践并落地DevOps。本质上来讲,由于行业竞争激烈,软件正在不断地颠覆传统行业,有预测称21世纪所有企业都会是软件企业。

业务的快速迭代、变更,依赖于IT能力的变革与提升。DevOps是IT研发、部署、运维能力不断演进的阶段性结果,是新的开发模式、新的运维模式共同作用下,实现IT赋能业务增长、提升企业竞争力的有效手段。

图2 DevOps异常火爆,采纳率超过70%,且逐年上升
图2 DevOps异常火爆,采纳率超过70%,且逐年上升

深入理解DevOps后,我们会发现DevOps涵盖了整个开发和运维的阶段,每个阶段的能力范围和复杂程度都不一样,所以落地DevOps也会涉及不同的工具和系统。

基于Ansible和CodeDeploy的DevOps方案
图3 DevOps涵盖从代码到上线运维的各个阶段

现实:企业在DevOps实践中常见的问题

DevOps早已不是一个新鲜的词汇了。因为它显而易见的优势,过去几年越来越多的企业都在引入DevOps,希望建立自己的DevOps体系与文化。而根据每家企业自身的特点,能够顺利地在较短的时间完成转型的公司又非常少,更多的企业在建设过程中多少都会遇到一些亟待解决的问题。我们总结出了DevOps实践过程中的三条主线,下面来一一分析每条主线下企业可能遇到的一些问题。

基于Ansible和CodeDeploy的DevOps方案
图4 DevOps(CI/CD)的三条主线

主线1:从代码到制品库

大多数客户实践DevOps的过程中已经可以实现从代码库(Git/SVN)到制品库(Nexus)的持续打包流水线,但是仍然还会存在一些经常被忽视的问题,例如:

■ 没有建立统一的打包规范;

■ 没有建立统一的制品库;

■ 不同环境(开发、测试、生产)的部署包是不一致的;

■ 部署时不经过制品库(紧急上线,或者临时变更)。

主线2:从制品库到可运行的服务

这一步是DevOps落地实践中挑战最大的,即如何快速地将开发人员提交的制品快速部署到相应环境。在这一过程中,常常遇到的问题包括:

■ 环境创建非常慢;

■ 手工SSH登录初始化服务器;

■ 无统一的应用部署工具;

■ 部署后没有全面的健康检查。

主线3:从开发环境到生产环境

■ 开发、测试、准生产、生产四种环境不健全,缺少某些环境;

■ 四种环境的创建方法不一样;

■ 四种环境的代码部署方法不一致(这常见于代码和配置没有分离,开发和生产是两个不同的包,部署方法肯定也不一样);

■ 没经过开发测试和准生产环境的验证,直接上线。

从上面的分析不难看出,企业在实践DevOps的过程中,围绕这三条主线或多或少都会遇到一些问题。DevOps的落地很难一蹴而就,企业需要针对上述分析,在一个稳定的框架下不断迭代,做到将“DevOps落地”持续DevOps化。

落地:FIT2CLOUD DevOps解决方案

FIT2CLOUD多云管理平台基于统一的框架,采用灵活的模块化组合来应对不同企业的不同诉求,追求模块级别的重用,逐步形成了以云管平台为核心的多元化解决方案体系。其中,基于FIT2CLOUD多云管理平台的“监控、自动化及DevOps解决方案”便是我们今天所讨论的重点。

基于Ansible和CodeDeploy的DevOps方案

图5 FIT2CLOUD DevOps解决方案全流程

如上图所示,FIT2CLOUD DevOps解决方案涵盖了整个流水线的规范和工具选择。从左至右,开发人员提交代码到仓库(Git/SVN),使用持续集成工具(开源Jenkins)拉取最新代码构建部署包,并上传到制品库(开源Nexus/Artifactory)进行保存。

在Jenkins Job构建的同时,FIT2CLOUD 多云管理平台提供的Jenkins插件会自动在多云管理平台对应的应用下注册一个新的版本。用户可以在多云管理平台进一步执行应用后续部署的相关动作,也可以在插件中设置部署操作的自动触发,以简化流程。

在应用的生命周期内,多云管理平台会对其持续进行各项指标的监控,并基于Grafana提供可视化图表。如果应用监控项超过预设指标,监控告警模块会发出相关告警信息。

运维人员在项目维护中,可以借助JumpServer开源堡垒机(jumpserver.org)访问应用所在机器的后台,进行一系列的运维管理工作。多云管理平台会自动将纳管的机器相关信息同步至JumpServer,并授权给管理人员。同时,该平台还和JumpServer对接了单点登录,用户可在多云管理平台中选择机器一键通过堡垒机登录机器后台,这种方式对于运维团队来说更为便捷与安全。

测试人员可以在Jenkins上使用MeterSphere开源持续测试平台(metersphere.io)所提供的插件将Job与测试用例做关联,通过Jenkins触发MeterSphere测试任务,以便在各个环境更新后第一时间执行预设的测试用例,从而保障系统的稳定与可靠。

在FIT2CLOUD DevOps解决方案中,核心的三个使用场景:

1、 在持续集成CI方面,多云管理平台实现与主流CI工具Jenkins的对接,进一步管理了Jenkins中的凭据、构建任务、视图等。结合多云管理平台自身的组织能力,对以上纳管内容进行权限再分配,实现对资源更加集中与规范的管理。

特别是,我们提供了用于对接多云管理平台的Jenkins插件,即在每次构建任务执行完成后,自动在多云管理平台创建新的应用版本,可以直接用于应用的部署。

基于Ansible和CodeDeploy的DevOps方案

图6 对接Jenkins 配置

基于Ansible和CodeDeploy的DevOps方案

图7 配置Jenkins Job

2、 在持续部署CD方面,FIT2CLOUD多云管理平台主要承担环境管理、制品仓库管理、代码部署引擎的职责。FIT2CLOUD多云管理平台从应用的角度对主机进行分组管理,并完成基础环境配置。该平台支持管理Nexus、Nexus3、阿里云OSS、AWS S3、Artifactory等多种制品库,主要用来存放需要部署的各个版本的应用部署包。

基于Ansible和CodeDeploy的DevOps方案

图8 环境管理、创建应用

持续部署CD中最重要的是代码部署引擎,即按照用户预先定义的事件脚本来实现自动化部署。FIT2CLOUD DevOps解决方案中的代码部署引擎,遵从于前文提到的AWS CodeDeploy部署规范。与之有所区别的是,此方案中的代码部署引擎适用于各种公有云、私有云,以及本地物理裸机环境。

基于Ansible和CodeDeploy的DevOps方案

图9 AWS CodeDepoly 部署规范

应用的打包内容除了应用程序代码外,只需要一个AppSpec.yml文件和一些用于处理安装中一个或多个事件的脚本文件。AppSpec.yml 脚本不仅定义了代码部署的路径,还指定了要在部署过程的各个阶段在每个实例上运行的脚本文件。

一般的部署事件有7个,如图9所示,以Install为中心,在安装部署包前后会自动且规范化地做一些譬如应用停止、依赖检查、依赖安装、部署后的验证等操作。企业可以根据情况按需选择,往往这些步骤只需要脚本化即可。

基于Ansible和CodeDeploy的DevOps方案

图10 FIT2CLOUD 多云管理平台应用部署流程

值得一提的是,上述代码部署引擎的实现,是通过开源自动化运维工具Ansible作为命令下发的组件。与其他一些自动化运维工具相比,Ansible是无客户端Agent的,底层通过SSH通信。因此,用户无需在客户机上安装或配置任何程序,就可以运行Ansible任务,这样减少了许多管理开销。

基于Ansible和CodeDeploy的DevOps方案

图11 Ansible 组件执行部署动作的输出日志

3.、在监控层面,FIT2CLOUD多云管理平台选用Prometheus作为集中的监控告警系统,通过在监控对象上安装部署各种Prometheus Exporter来采集不同维度的监控数据。监控告警中心会根据Exporter自动给监控对象进行归类,并且支持从业务系统维度对监控对象进行管理。

监控告警中心提供了灵活的自定义监控面板的功能,用户可以根据自己的需要自行分组和设置各自所需的监控图表。除此之外,监控告警中心还结合了Grafana的监控展示功能,天然支持所有Grafana的展示面板,给用户提供了更好的体验。

基于Ansible和CodeDeploy的DevOps方案

图12 Grafana监控面板

总体来看,FIT2CLOUD DevOps 解决方案体现了DevOps企业环境落地四个着力点:

首先,注重规范性的建设,尤其是基于AWS CodeDeploy的部署规范,在对项目现有代码及架构无侵入、无限制的前提下,有效保证了CD过程的高效性与可靠性;

其次,在工具的选择上,FIT2CLOUD多云管理平台集成了主流开源技术,例如Prometheus、Grafana、Ansible、Jenkins、Nexus等,并且在代码仓库、制品库等方面提供多种类型工具的支持;

第三,在流程约束方面,多云管理平台在代码到制品库、制品库到可运行的服务,以及开发环境到生产环境三条线路上都建立了完备的流程体系,并且这些体系在很多项目上都经过了时间的验证,可以很大程度地改善了企业DevOps流程混乱的问题。

最后,无论是什么样的企业,有着怎样的业务背景或需求,在建设DevOps系统的过程中,也需要同步建设DevOps企业文化。加强开发与运维部门之间的沟通与协作,让流程中各个角色的员工都参与其中,FIT2CLOUD飞致云会与各个客户一起持续地学习和改进。

基于Ansible和CodeDeploy的DevOps方案

图13 DevOps企业环境落地四个着力点

实践:某大型券商DevOps落地实践

和大多数想要建设DevOps体系的企业一样,该券商也想打破在传统部署方式下所面临的一些困境。在与FIT2CLOUD飞致云的合作中,该券商用户提出的DevOps建设目标包括:

1.、自助服务,操作可追溯。基于多云管理平台的多租户能力、规范的流程为使用者提供丰富的自服务操作,实现资源的自助申请、自动发放、DevOps自动化构建与部署。同时基于多云管理平台的记录能力,使各项操作有迹可循,管理员可以随时追溯。

2.、DevOps全流程便捷操作。基于多云管理平台的集成能力,实现其对DevOps全流程的管理。应用人员在多云管理平台申请资源后,在资源生命周期内,可以继续在多云管理平台进行CI(持续构建)、CD(持续部署)的操作。由多云管理平台统一管理应用构建任务、应用版本,并且输出相关日志。

3.、建构灵活,方便友好支持周边系统。多云管理平台不仅局限于多云管理和DevOps,更希望在复杂且快速更迭的IT环境下它能够持续为企业带来更多的价值。尤其是能方便友好地支持周边系统,建立联系,为企业更好地赋能。

基于FIT2CLOUD多云管理平台,该券商设计并打造出符合自身发展需求的统一资源管理门户。同时,结合多云管理平台对Jenkins、Ansible的集成与支持,可以统一管理资源周期及DevOps周期,用户可以在多云管理平台完成从机器申请到应用部署的一系列操作。

1、异构基础设施资源统一纳管与管理

通过多云管理平台对多种基础设施资源的友好支持,形成对异构IT资源的统一纳管。管理员可对租户设置相应配额,随时查看所有基础设施资源的使用情况。

2、虚拟机生命周期及DevOps周期内自动化漏洞检测

该券商将多云管理平台与漏洞扫描平台对接。这样一来,多云管理平台纳管的机器无需再做额外的配置,即可在其生命周期内进行自动化漏洞扫描。另外,当用户在DevOps模块对机器进行了部署操作后,多云管理平台会自动化触发对该机器的扫描,如果有漏洞信息会及时形成报告推送给相关责任人。这也在一定程度上实现了DevOps一体化的安全防护。

3、整合DevOps能力,形成资源与应用统一操作平台

基于该券商的业务需要,FIT2CLOUD多云管理平台在已有DevOps模块的基础上,进一步升级优化,达到用户可全流程使用该平台进行资源申请、Job构建、代码部署等操作的目标。

4、灵活的模块化架构、规范的API为持续性对接周边系统夯实基础

FIT2CLOUD多云管理平台采用模块化的设计及容器化的一键部署,当需要整合新的功能或者对接外部系统时,能够在不影响原有模块功能的前提下使用新模块进行设计和对接。新的模块可以一键安装在原有多云管理平台之上,并且可以随时对模块进行开关及卸载操作。

基于Ansible和CodeDeploy的DevOps方案

图14 某大型券商DevOps落地全景图

基于Ansible和CodeDeploy的DevOps方案

图15 某大型券商DevOps落地概览(部署分析界面)

编者注:本文作者卢杨为FIT2CLOUD飞致云南区高级项目经理。

相关推荐

支持千问安全围栏模型,1Panel AI网关v1.6.0版本发布

新增上游账号多API Key、同一请求模型多映射、OpenAI兼容图像编辑接口、实时用户活动卡片与版本更新通知。

FIT2CLOUD飞致云的博客 225

飞致云开源社区月度动态报告(2026年10月)

为数智经济时代创造好软件。

FIT2CLOUD飞致云的博客 109

新增语音API与模型管理功能,1Panel AI网关v1.5.0版本发布

上游账号管理支持多种协议类型与错误历史查看。

FIT2CLOUD飞致云的博客 446

持续提升系统安全性与用户体验,JumpServer堡垒机v4.10.20 LTS版本发布

欢迎广大用户升级至新版本。

FIT2CLOUD飞致云的博客 245

安全漏洞和已知问题修复,MaxKB开源企业级智能体平台v2.10.8 LTS版本发布

欢迎升级至新版本MaxKB。

FIT2CLOUD飞致云的博客 188

支持SMB远程文件数据源,查询组件支持多条件搜索,DataEase开源BI工具v3.2.0版本发布

透视表条件样式支持指定范围,汇总表支持图片链接渲染与放大预览。

FIT2CLOUD飞致云的博客 80

离线安装方式上线,支持Token Plan,1Panel AI网关v1.4.0版本发布

进一步提升AI网关部署的灵活性与日常运维体验。

FIT2CLOUD飞致云的博客 185

KoKo、Tinker组件重构,会话录像支持批量下载,JumpServer开源堡垒机v5.1.0版本发布

命令过滤规则支持AI辅助起草

FIT2CLOUD飞致云的博客 180

修复多个安全漏洞,MaxKB开源企业级智能体平台v2.10.7 LTS版本发布

欢迎升级至新版本MaxKB。

FIT2CLOUD飞致云的博客 172

学习笔记丨MaxKB PPT/PDF文档整页转图工作流知识库方案

解决复杂图文文档知识入库难题。

FIT2CLOUD飞致云的博客 294

飞致云开源社区月度动态报告(2026年9月)

为数智经济时代创造好软件。

FIT2CLOUD飞致云的博客 241

1Panel AI网关智能路由新增支持Jev模式

面向多个自定义业务目标进行语义决策。

FIT2CLOUD飞致云的博客 295

电子表格支持嵌入集成,支持GaussDB数据源与StarRocks计算引擎,DataEase开源BI工具v3.1.0版本发布

新增箱线图图表类型,修复7项安全漏洞。

FIT2CLOUD飞致云的博客 447

操作教程|通过1Panel应用商店快速安装Laya

Laye开源模型已上架至1Panel应用商店。

FIT2CLOUD飞致云的博客 209

修复安全漏洞,支持箱线图与汇总表合并单元格,DataEase开源BI工具v2.10.27 LTS版本发布

公共链接支持独立访客权限控制,数据填报与定时报告功能增强。

FIT2CLOUD飞致云的博客 382

强化安全性,Text-to-SQL智能选表升级,SQLBot开源智能问数系统v1.10.2版本发布

强化账号安全初始化机制,新增泰语支持。

FIT2CLOUD飞致云的博客 435

实战丨飞致云面向自身销售场景打造专属CRM Skills

自然语言驱动CRM智能查询、创建、更新、转化、链路追踪与漏斗分析。

FIT2CLOUD飞致云的博客 235

跨越新高度:JumpServer V5 来了!

统一工作台,拥抱AI新时代!

FIT2CLOUD飞致云的博客 112

测评|双卡RTX Pro 5000 Blackwell+Qwen3.8-Flash-Next:WorkBuddy办公场景实测

业务场景一手测试数据解读。

FIT2CLOUD飞致云的博客 281

支持多种登录认证方式、支持MFA与重排模型,1Panel AI网关功能上新

新增支持为上游账号配置代理和更多实用功能。

FIT2CLOUD飞致云的博客 123

案例研究|中国土木构建“财小问”智能体,提升财务管理效率

MaxKB助力财务部门从重复劳动迈向智能决策。

FIT2CLOUD飞致云的博客 96

联合方案丨MaxKB+DataEase实现智能跨库问数

通过自然语言提问,在权限范围内获取一站式的可视化数据以及数据洞察结论。

FIT2CLOUD飞致云的博客 219

GPU监控支持华为昇腾设备,防火墙管理焕新,虚拟机管理下放至专业版,1Panel v2.3.0版本发布

持续完善1Panel在AI模型部署与硬件适配方面的能力。

FIT2CLOUD飞致云的博客 253

免费AI网关测评:LiteLLM、New API和1Panel AI网关

为企业运维团队、AI业务团队提供选型参考。

FIT2CLOUD飞致云的博客 287

告别积分焦虑!WorkBuddy+Qwen3.8-Flash-Next本地部署,实现AI办公自由

把算力自由握在自己手里。

FIT2CLOUD飞致云的博客 417

工作流支持默认模型设置,MaxKB开源企业级智能体平台v2.10.6 LTS版本发布

腾讯混元、腾讯云模型供应商合并为新“腾讯云”供应商。

FIT2CLOUD飞致云的博客 344

1Panel AI网关现已开放,10人及以下团队免费使用

助力小团队低成本落地AI规模化应用。

FIT2CLOUD飞致云的博客 379

算力与带宽的博弈:双GB10算力节点部署DeepSeek-V4-Flash实测

用对场景,才算物尽其用。

FIT2CLOUD飞致云的博客 366

飞致云开源社区月度动态报告(2026年8月)

为数智经济时代创造好软件。

FIT2CLOUD飞致云的博客 195

服务端AI智能体CORDYS AI上线,Cordys CRM发布v1.9.0版本

跟进记录与跟进计划新增评论功能。

FIT2CLOUD飞致云的博客 225
上一篇: 新增实时查看任务执行返回日志等功能,KubeOperator v3.2.0发布丨Release Notes
下一篇: 组织管理员可添加用户到组织、资产树重大优化,JumpServer堡垒机v2.4.0发布|Release Notes
FIT2CLOUD飞致云
FIT2CLOUD飞致云 企业官方账号 企业官方账号
博客等级 码龄7年 3193粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值