CI/CD,Devops,平台工程 概述与应用

CI/CD,Devops,平台工程### CI/CD,Devops,平台工程

CI/CD 概述

** CI/CD(Continuous Integration/Continuous Delivery 或 Continuous Deployment)**是现代软件开发和交付流程中的核心概念,旨在加速代码变更的交付,同时保证代码的质量和稳定性。它结合了开发、测试、部署等过程,实现了软件的自动化和持续迭代。

CI/CD是实现敏捷开发Devops理念的一种方法,具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试,到交付和部署)。这些关联的事务通常被统称为CI/CD 管道(Pipeline),由开发(RD)、测试(QA)、运维(OP)团队以敏捷方式协同支持.

以上所有过程在目前的工作中都有有到,只是很多几个技术集成了一个工具上,比如云引擎工具中监控使用到了prometheus,构建部署使用到了docker,k8s,maven。jenkins本身内部有封装的实现平台。版本控制工具有gitlab,PM工具有内部实现。

平台工程概述

平台工程(Platform Engineering) 是一种通过提供内部开发者平台(Internal Developer Platform,IDP)来提高开发和运维效率 的工程方法。它旨在为开发团队创建自助式工具和服务,使他们能够专注于构建和交付高质量的软件,而无需过多关注底层基础设施或繁琐的操作细节。

平台工程的核心目标
  1. 开发者体验优化
    提供统一、便捷的工具和接口,使开发人员能够轻松完成代码部署、环境管理和性能监控等任务。
  2. 效率提升
    通过自动化和标准化减少手动操作和重复劳动,加快交付速度。
  3. 降低复杂性
    将复杂的基础设施和工具抽象化,让开发者无需直接与底层资源交互。
  4. 增强一致性
    确保不同团队和项目使用一致的开发、测试、部署流程,减少因环境差异导致的问题。
平台工程与传统 DevOps 的区别
特性 DevOps 平台工程
目标 建立文化和实践,提高协作效率。 提供具体工具和服务,提升开发者体验。
关注点 流程和文化的改进。 技术和平台的实现与优化。
实现方式 自定义、团队间协作。 提供统一的、自助式平台。
开发者参与度 开发者需要掌握更多运维知识。 开发者聚焦于业务逻辑,底层由平台支持。
流水线(pipeline)

jenkins pipeline https://www.cnblogs.com/hiyong/p/15890284.html

流水的触发可以通过定时任务触发也可以通过某一事件触发【git某分支上有代码提交】

个人理解CI的很大一部分工作是讲一系列的过程自动化地完成,目前系统中经历过的比较有代表性的实践是:

自动化发布版本

整个过程做的事情是通过maven打包构建新的包体,然后讲该包上传到docker仓库得到一个包的镜像地址,然后再手动进行部署【更加自动化的流程是部署也参与到流水线中,主要代码提交到某个分支,自动构建新版本并进行部署】


自动化入库流程

整个过程涉及到CI服务器,版本控制服务器,应用服务器。 相比于直接在应用服务器上完成所有的操作,达到了解耦的效果,当新增一种资源入库时,只需要修改流水线脚本,而不怎么需要应用服务器代码【修改代价比较大】

![](https://i-blog.csdnimg.cn/img_convert/cee8f71ab7315395d2baa79091fe8011.png

json 复制代码
pipeline pipeline {
    agent any
    stages {
        stage('Example Build') {
            steps {
                echo 'Hello World'
            }
        }
        
        stage('Deploy1') {
            when {
                branch 'production1'
            }
            steps {
                echo 'Deploying1'
            }
        }
        
        stage('Deploy2') {
            when {
                allOf {
                    branch 'production2'
                    environment name: 'DEPLOY_TO', value: 'production2'
                }
            }
            steps {
                echo 'Deploying2'
            }
        }
        
        stage('Deploy3') {
            when {
                beforeInput true
                branch 'production3'
            }
            input {
                message "Deploy to production3?"
                id "simple-input"
            }
            steps {
                echo 'Deploying3'
            }
        }
    }
}
相关推荐
极小狐1 小时前
如何创建极狐GitLab 私密议题?
数据库·ci/cd·gitlab·devops·mcp
识途老码1 小时前
什么是单臂路由
运维·服务器·网络·单臂路由
YuSun_WK3 小时前
程序&进程&多任务&线程
linux·运维·服务器
安顾里9 小时前
Linux命令-iostat
linux·运维·服务器
100编程朱老师9 小时前
面试:什么叫Linux多路复用 ?
linux·运维·服务器
群联云防护小杜9 小时前
云服务器主动防御策略与自动化防护(下)
运维·服务器·分布式·安全·自动化·音视频
PPIO派欧云9 小时前
PPIO X OWL:一键开启任务自动化的高效革命
运维·人工智能·自动化·github·api·教程·ppio派欧云
struggle202510 小时前
LinuxAgent开源程序是一款智能运维助手,通过接入 DeepSeek API 实现对 Linux 终端的自然语言控制,帮助用户更高效地进行系统运维工作
linux·运维·服务器·人工智能·自动化·deepseek
不知名。。。。。。。。13 小时前
Linux—— 版本控制器Git
linux·运维·git
遇到我又惊又喜13 小时前
佛山大旺高新区3650 M5 ERP服务器维修案例
运维·服务器