DevOps 感想附CICD流程

DevOps持续交付:自动化部署与回滚策略 本文详细阐述了DevOps持续交付中的自动化部署与回滚策略,从提高部署效率、确保一致性、风险防控、提升用户体验等方面分析了其重要性。通过介绍自动化部署的实现方式和回滚策略,为读者提供了实践指导。成功案例的分享,进一步证明了自动化部署与回滚策略在软件开发中的重要作用。在未来,DevOps持续交付将更加注重自动化和智能化,以满足快速发展的市场需求。为此,我们建议企业和开发团队深入研究自动化部署与回滚策略,不断优化和改进,以提高软件交付效率和质量。同时,关注行业动态,紧跟技术发展趋势,为我国软件产业贡献力量。 阅读详情

1. 背景

做 DevOps 工作几年了,也感想颇多,多少个日日夜夜,从一个坑到另一个坑,不断的解决各种问题,也总结了不少方案,有了不少经验。

浅谈一下自己对 DevOps 和 CICD 的理解,不牵扯到具体技术,只是些想法分享一下。

2. CICD 流程

CI 持续集成,CD 持续交付/持续部署。

什么是持续集成,从源码到成品包的过程,你以为是直接打个包就完事了吗?不是那么简单,需要做的事还很多,不过也要控制速度,不然如何能称得上迅捷开发呢?

首先,开发人员将开发代码上传到公司私有仓库,gitlab 也好,svn 也罢,都可以。当然,也不能随意上传,需要建分支,建tag,每一次上传代码都要有依据,比如关联itsm等工单。不同环境需要不同的样式,比如开发环境使用分支,测试环境、预生产环境和生产环境使用 tag。还有,tag 名称也需要限制,不能随便起个名字就算了。

其次,开发人员或者测试人员在发布平台上创建工单,点击发布,此刻,发布平台会通过 webhook 将请求调度给 jenkins,加入到 jenkins 队列。等到 jenkins 有线程处理的时候,前提是已经搭建好 jenkins 集群,并且也创建编写好了相应的脚本和 pipeline 流水。会创建一个 pipeline ci 的流程记录,将 jenkins job id 回调给自动化发布平台。第一步,从 gitlab 上拉取对应服务对应分支 tag 到 jenkins 节点上。

接着, 调用 sonar 工具,进行单元测试和覆盖率测试,sonar 将测试结果传递给 sonarquebe 平台,sonarquebe 平台展示 sonar 扫描结果。此时,单元测试结果达到构建阈值要求时,进入流水线的下一步,否则暂停流水线并回调报错。

然后,节点选择本地构建工具,对源码包进行相应的构建操作。java/前端/go等源码分别选择相应的构建工具。构建结束后进入下一步。

接下来,进行成品包 dependcheck 测试,漏洞扫描达到发布要求了进入下一步。

最后,这里的最后,也只是 CI 流程的最后一步,上传到成品库,使用第三方如 jfrog 仓库也好,使用公司自建的 OSS 平台也行,需要根据环境区别存储,方便后期成品包查找。

以上 CI 的流程就结束了,还算是比较完整的,当然根据不同服务,需要走不同的流水线,每个流水线的 CI 步骤也不尽相同,有些需要跳过扫描等,所以,每一步要有个开关控制,方便管理调控。CD 流程呢,被称作持续交付,持续部署。顾名思义,你构建好的包,上线应用了才叫产品,放在本地只是一个包而已,接下来看看 CD 的流程。

首先,做免密。高可用多台目标服务器,你是否能连接上,如果连接不上,需要做免密配置。检验可以连接上,就跳过进行下一步。

然后,安装客户端工具。拉取成品包也需要客户端工具,对应的目标服务器上如果没有安装客户端工具如 jfrog,需要先安装 jfrog。

接下来,服务发布,不同类型的服务,初始化和启动方式不同,需要将脚本区别对待,使用 ansible-playbook 将 shell 脚本部署好后,执行 shell 脚本,开始服务发布。此处,如果不满足发布需求,比如某些依赖没有装,某些版本不配套,内存CPU不够用等,则报错停止流水线并回调错误。

然后,监控进程,看看进程是否启动完成,如果执行完脚本后没有进程,则报错回调错误。

接下来,查看发布日志,从日志中过滤关键词 error 等,如果存在,则提示发布人员错误,如无关紧要,则跳过继续发布。

最后,自动化测试,对上线项目进行自动化测试,没有问题,则整个 CICD 流程结束。

以上为 CICD 的整体流程,当然,同一服务,不同环境,所要求的 CICD 也不一样,要区分对待。

3. DevOps 感想

DevOps 是 开发运维结合体,俗称自动化开发运维,目的是将复杂的东西简单化,简单的东西自动化。将功能写进代码了,这里自己也总结了一些原则

隔离分治原则: 不同应用之间不能有太大耦合,尽量减少不同微服务之间的影响。

削峰填谷原则: 要考虑到波峰波谷,适量选择调度缓存,不能流量上来了就崩溃了。

功能单一原则: 微服务功能不能集成太大,不便于管理和维护。

使用限制原则: 又称权限控制,路由/资源等控制,不能无限制使用。

还有,所有的功能都不能脱离业务,不能你认为这个好你就开发,结果现状往往没有任何帮助,反而做了很多无用功。人员之间做好沟通,尽量有一个标准的开发规范让所有运开人员参考,不能人员一走,代码全换操作。

4. 总结

以上都是些个人工作中的应用与总结,写一写,理一理,不断去学习深入。这一行,学习是在原地踏步,要用尽去学,这才能进步。

14小时搞定K8s企业级DevOps实践 课程目录: 1.1 docker介绍、安装及要素讲解.flv 1.2 Django应用容器化实践.flv 1.3 docker实现原理与网络.flv 2.1 kubernetes架构、工作流程介绍及集群搭建.flv 2.2 使用pod管理业务应用(上).flv 2.3 使用pod管理业务应用(下).flv 2.4 kubernetes workload的使用.flv 2.5 kubernetes调度策略.flv 2.6 集群服务发现及Ingress的实现服务访问.flv 2.7 Kube 阅读详情

相关推荐

DevOps的持续部署和按需发布方法

综上所述,持续部署和按需发布是DevOps中关键的部署和发布方法。持续部署通过自动化测试和部署流程,实现了快速和频繁地将代码更改部署到生产环境中。通过定义不同的阶段(Build、Test和Deploy),我们可以将代码更改从构建到部署的整个过程进行自动化。持续部署和按需发布是DevOps方法论中非常重要的概念,它们旨在实现软件开发和交付的高效性和灵活性。1.2 持续集成:持续集成是指将开发团队的代码更改集成到共享代码库中,以便能够及时发现和解决潜在的冲突和问题。方法,我们可以选择性地启用或禁用新功能。

SaRust的博客 235

CI/CD与DevOps:您需要知道的8个核心区别

CICD持续集成和持续交付,简称CI/CD,是一种为了让开发团队能更可靠和更频繁地更新代码而设计的方法和规则。这其中涉及到从代码集成、测试,一直到最终的产品交付和部署等环节的自动化和持续监控。在这个体系下,有一个特定的工作流程被称为“CI/CD流水线”,这是DevOps团队应当遵循的最佳操作方式。各个组织依赖于CI/CD流水线,目的是减少在软件开发和交付过程中可能遇到的阻碍和延迟。其中,持续集成主要关注如何在开发阶段更好地构建、整合和测试代码;持续交付则集中于如何更有效地将代码部署到生产环境中。

柚橙论 529

10、深入理解 DevOps 中的持续部署、持续交付与发布管道

本文深入解析了 DevOps 中的核心概念:持续部署、持续交付和发布管道,介绍了它们的定义、优势以及实现所需的关键工具和步骤。同时,详细说明了如何在 Azure DevOps 中配置发布管道、实现多阶段部署,并探讨了蓝绿部署等降低风险的策略。文章还展望了 DevOps 领域未来的发展方向,并提供了实践建议,帮助开发团队更高效、安全地交付软件产品。

alice7model的博客 131

为什么大公司一定要使用DevOps?

0 DevOps的意图 究竟什么是DevOps? 要想回答这个问题,首先要明确DevOps这个过程参与的人员是谁?即开发团队和IT运维团队!那么,DevOps的意图是什么呢?即在两个团队之间,建立良好的沟通和协作,更快更可靠的创建高质量软件! 事实上,并不是这两个团队之间的协作帮助交付了更好的软件,而是“开发”和“运维”团队之间的统一导致了软件的改进,并以更快的速度交付。我们不要忘记DevOps工具在实现自动化方面所扮演的角色。 开发和运维“一体”的感觉是由开发人员和操作工程师之间的...

2707

利用Matlab绘制非线性系统相图:从理论到实践

本文详细介绍了如何利用Matlab进行非线性系统的相图绘制与相平面分析。从理论基础的状态空间转换出发,通过无阻尼线性谐振子和范德波尔振荡器等实例,手把手演示了使用ode45求解器绘制相图、分析平衡点与极限环的完整流程,并分享了方向场绘制、参数分岔探索及常见错误解决方案等高级技巧,为动力学系统分析与控制设计提供了直观强大的可视化工具。

yhn456789的博客 905

基于大模型的JMeter日志智能分析服务化实践

在软件性能测试领域,日志分析是定位系统瓶颈、评估稳定性的关键环节。传统基于规则或正则表达式的分析方法,在面对格式多变、上下文关联复杂的海量日志时,往往效率低下且难以深入。大语言模型(LLM)凭借其强大的自然语言理解与推理能力,为这一挑战提供了新的解决方案。其技术价值在于能够自动化地从非结构化文本中提取语义信息、关联分散的上下文,并生成可操作的根因分析与优化建议,从而将工程师从繁琐的日志筛查中解放出来,显著提升问题诊断的深度与效率。这一技术可广泛应用于自动化测试报告生成、实时监控预警、脚本调试辅助等工程实践场

weixin_28839549的博客 338

SpringCloud--20CICD和DevOps

1.CICD 1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。 CD:持续部署 De...

最后的武艺集大成者 1512

unet学习笔记(milesial/Pytorch-UNet)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 unet学习笔记(milesial/Pytorch-UNet)原理讲解unet_parts.py内容predict.py内容 所用到的代码Pytorch-UNet/predict.py at master · milesial/Pytorch-UNet ·GitHub 原理讲解 蓝/白色框表示 feature map; 蓝色箭头表示 3x3 卷积,用于特征提取; 灰色箭头表示skip-connection,用于特征融合; 红色箭头.

weixin_67138138的博客 2553

DevOps(三)持续集成、持续部署、持续交付与Jenkins

持续集成(Continuous Integration, CI)、持续交付(Continuous Delivery, CD)和持续部署(Continuous Deployment)是现代软件开发中的三个重要概念,它们共同构成了一种高效、自动化的软件开发实践。

TradingAgents-CN专栏 2851

STM32硬件SPI驱动W5500以太网模块全流程(附避坑指南)

本文详细介绍了STM32硬件SPI驱动W5500以太网模块的全流程,包括硬件架构设计、SPI接口选型、官方驱动移植、网络协议栈配置与优化等关键步骤。通过实战案例和性能对比数据,帮助开发者快速实现稳定高效的网络连接,特别提供了常见问题排查指南和性能调优技巧。

weixin_29194693的博客 268

高通SDX35:SGMII接口PHY RTL8211FSI-CG驱动适配

高通SDX35 RTL8211F SGMII

不秃头的程序猿Gabriel的博客 785

CI/CD DevOps

CI/CD DevOps 通过技术工具链完成持续集成CI、持续交付CD、用户反馈和系统优化的整合,实现跨团队的无缝协作(DevOps). 什么是持续集成? 他是开发每天代码更新的副本,所有的开发工作都在预定的时间(进度排期)或事件(版本更新迭代)进行集成,然后自动测试和自动构建,通过CI开发过程中出现的错误被及时发现,这样不仅加速了开发周期,而且提高了工作效率. ...

weixin_40881502的博客 853

论文阅读:Training language models to follow instructions with human feedback

这篇论文的目标是通过引入一种基于人类反馈的训练方法,来让语言模型更好地按照用户意图行事。这是因为大规模语言模型虽然强大,但有时候会生成不准确、有偏见或者对用户无帮助的内容,这说明它们和用户的需求之间存在一定的“错位”。论文提出了一个新方法,将 GPT-3 进行优化,称为示例数据与监督学习:让人类标注员生成一些正确行为的示例,并使用这些示例来初步优化模型。比较数据与奖励模型:让标注员比较模型生成的多个输出,并将其排序,从中学到模型输出的优劣规则。强化学习优化:基于这些规则,使用强化学习算法进一步优化模型。

CSPhD-winston的博客 1714

CI/CD DevOps 简单论述

CI/CD DevOpsJUST DO IT温暖春日通过技术工具链完成持续集成CI、持续交付CD、用户反馈和系统优化的整合,实现跨团队的无缝协作(DevOps).什么是持续集成?他是开...

weixin_40881502的博客 281

【Microchip】微芯 MPLAB® X IDE开发环境新建项目(点亮1颗LED灯)(常用右键菜单快捷键)

1.新建项目2. 选择芯片型号和调试器3.选择编译器4.项目命名和选择文件路径5.新建成功,给项目添加main.c7.将新建的mainXC16.c文件添加进项目6000000UL这三个就是。

Naiva的博客 446

终于找到两个稳定好用的Docker镜像加速源,拉取速度提升几十倍!

国内使用Docker经常遇到镜像拉取慢、超时失败的问题🐳 本文分享两个亲测好用的免费镜像加速源⚡ 实测拉取速度从十几分钟缩短到几十秒,稳定性接近100%📊 支持一键配置脚本,支持多平台使用✨

XiaoqiangClub的博客 943

DevOps流程:持续集成与持续部署(CI/CD)

本文详细阐述了DevOps流程中的持续集成与持续部署,从概念解析、价值体现、实践策略和挑战等方面进行了深入探讨。通过分析成功案例,我们可以看到DevOps流程在实际应用中的巨大价值。总结而言,DevOps流程的持续集成与持续部署有助于提高代码质量、加快产品迭代速度、加强团队协作,降低运维成本。然而,在实践过程中,我们也需要面对技术、团队协作和安全等方面的挑战。展望未来,随着技术的不断进步和团队协作的日益紧密,DevOps流程将持续优化,为软件开发和运维团队带来更多的价值。

2501_92487585的博客 565

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

CI(持续集成)/CD(持续交付/持续部署)

一、传统交付 1. 传统软件的开发与交付的周期都很漫长,从需求的分析、系统的设计、编写测试用例、系统开发、单元测试、组装测试到交付调试。 2. 每一次交付、升级,都需要提供基础的硬件、软件的环境、软件的代码、软件的文档与手册。 3. 工程师都按照之前预演过好多遍的流程,对照着系统的部署手册,一步一步的组装硬件,安装软件,稍有差池,就要按照对应的应急预案进行回滚。 二、技术工程师日常 与 痛点 1...

weixin_44980838的博客 1118

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

DevOps -CI/CD 与自动化部署

CI/CD 和自动化部署是 DevOps 实践的核心环节。通过持续集成(CI),开发团队可以更快地发现代码问题,提升代码质量;通过持续交付(CD)和持续部署,代码能够自动化部署到生产环境,从而缩短软件发布周期,减少人工干预。DevOps 的最终目标是通过自动化的工具链、流程和文化变革,打破开发与运维之间的障碍,提升软件交付的频率和质量。

Flying_Fish_roe的博客 2001

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

DevOps:自动化部署和持续集成/持续交付(CI/CD)

DevOps是一种将软件开发(Development)和运维(Operations)过程紧密集成的文化和实践。它的核心目标是通过自动化、协作和持续改进来缩短软件交付周期,同时提高软件的质量和可靠性。在传统的软件开发模式中,开发和运维通常是两个独立的团队,它们之间的合作有时会受到挑战。DevOps试图打破这种隔离,使开发和运维团队更紧密地合作,以实现更快速、更可靠的软件交付。

我滴小博客 1966

作为研发,上线过程需要注意什么?CICD|分级发布

上线是一件很严肃的事情,如果上线不观察不验证,就可能会导致很严重的线上事故,比如机房宕机,资产损失。这就需要研发同学胆大心细,仔细验证每一步,当然最根本的还是研发同学自己的代码质量。写代码还是要多点自己的思考,引用第三方库要经过验证推敲,如果自己写的代码都控制不住的话,那就很糟糕了。

面向生活编程 1166

DevOps之必知必会

DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

qq_51552268的博客 350

企业项目常见环境及其发布部署方式总结

开发环境:开发环境是开发人员用于编写、测试和调试代码的环境。开发环境通常由开发人员自己管理,并且不对外开放。开发人员可以在开发环境中使用开发工具(如 IDE )、版本控制系统(如Git)等。 测试环境:测试环境是用于进行集成测试和系统测试的环境。测试环境通常由测试人员管理,并且不对外开放。测试人员可以在测试环境中使用测试工具(如自动化测试工具、性能测试工具等)来进行测试。 预生产环境:预生产环境是用于进行用户验收测试和上线前测试的环境。预生产环境通常由项目团队管理,并且不对外开放。项目团队可以在预生

FE攻城狮 765

(一)DevOps----介绍 CI/CD

文章目录一:DevOps 简介持续集成,持续部署,持续部署常见的部署方式: 一:DevOps 简介 DevOps 是 Development 和 Operations 的组合,也就是开发和运维的简写。 DevOps 是针对企业中的研发人员、运维人员和测试人员的工作理念,是他们在应用开发、代码部署和质量测试等整条生命周期中协作和沟通的最佳实践,DevOps 强调整个组织的合作以及交付和基础设施变更的自动化、从而实现持续集成、持续部署和持续交付。 DevOps 四大平台: 代码托管(gitlab/svn)、

weixin_45697293的博客 389

CICD与DevOps

持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作。是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率。持续交付是在持续部署的基础之上,将产品交付到线上环境,因此持续交付是产品价值的一种交付,是产品价值的一种盈利的实现。......

我认不到你的博客 6121

CI/CD流程介绍

持续集成(CI)开发人员将代码频繁地合并到共享代码库中。自动化构建和测试:每次代码合并时,系统会自动构建应用程序,并运行一系列自动化测试以验证代码的正确性。快速反馈:如果构建或测试失败,团队会立即得到反馈,以便及早解决问题。持续部署(CD)自动化部署:一旦代码通过了构建和测试阶段,它可以自动部署到预定的目标环境中,例如开发、测试或生产环境。自动化发布:在部署完成后,可以自动执行一系列的发布任务,如数据库迁移、配置更新等。实时监控:对应用程序进行实时监控,以及时发现和处理潜在的问题。

m0_52720486的博客 3644
上一篇: 云计算之ELK部署应用
下一篇: Vue 前端问题系列
mx_steve
博客等级 码龄8年 57粉丝 102原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值