01什么是DevOps

在日常开发中,运维人员主要负责跟生产环境打交道,开发和测试,不去操作生产环境的内容,生产环境由运维人员操作,这里面包含了环境的搭建、系统监控、故障的转移,还有软件的维护等内容。

当一个项目开发完毕,在开发环境正常运行,交给运维人员,可能就会出现一些莫名其妙的,意料之外的问题,这本质上是因为开发和运维在发布的产品上不一致,开发和运维对环境的理解也不一样,所以就会出现在开发环境可以运行的程序,到了生产环境就不一定好使了。

为了打破这道壁垒,使开发环境的程序可以不出差错的迁移到生产环境,不需要做任何的变化,这便是DevOps要做的事情。

DevOps是一种方法论,是开发(DeveLopment)和运维(Operations)的一种组合,是一组过程、方法与系统的统称,用户存进应用开发、应用运维和质量保障(QA)部门之间沟通、协作与整合,打破传统开发和运维之间的壁垒和鸿沟。

DevOps的核心是CI/CD

CI/CD是一种通过将自动化引入应用程序开发阶段来频繁向客户交付应用程序的方法。CI/CD的主要概念是持续集成、持续交付和持续部署。

CI指持续集成,它是开发人员的自动化过程。成功的CI意味着对应用程序的新代码更改会定期构建、测试并合同到共享存储库。这是解决同时开发的应用程序有太多分支可能相互冲突的问题的解决方案。

CD指持续交付,在CI中构建和单元测试和集成测试自动化之后,持续交付会自动将经过验证的代码发布到存储库。持续交付的目标是拥有一个始终准备好部署到生产环境的代码库。在持续交付中,从代码合并更改到交付生产就绪版本的每个阶段都涉及测试自动化和代码发布自动化。在该过程结束时,运维团队能够快速轻松地将应用程序部署到生产环境。

CD还指持续部署,成熟的CI/CD管道的最后阶段是持续部署。它可以自动将生产就绪的构建发布到代码存储库,持续部署可以自动将应用程序发布到生产环境。

DevOps是整体设计,CI/CD是具体的步骤。

具体的技术落地,有Gitlab(代码仓库,自带CI/CD的流水线),Jenkins(自动化工具集,从应用的部署、编译、发布),HELM(应用包的管理工具,可以管理发布的脚本)

现有的这种自动化平台产品,比如:阿里云的云效产品等。

相关推荐
白清羽9 小时前
7.3系统安装docker
运维·docker·容器
翼龙云_cloud9 小时前
阿里云国际渠道代理商:如何在ECS上部署Flask应用?
运维·数据库·阿里云·flask·云计算
GGG76610 小时前
Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战
运维·python·云原生·pip
可乐鸡翅yeah_10 小时前
个人 / 外包流媒体项目交付实战,M3U8 验收与问题闭环完整工作流
运维·网络·python·低代码·django·m3u8·在线播放
St_rive11 小时前
移动端自动化环境搭建与准备
运维·自动化
INNOVIX稳石机器人11 小时前
稳石500强实战验证:从人工仓储迈向AI自主智造,给出仓储自动化升级标准答案
运维·人工智能·自动化
飞飞传输11 小时前
国产化 MOVEit 替代:文件传输架构与安全能力深度解读
大数据·运维·安全
JXJD200411 小时前
【无标题】
人工智能·ai·自动化
研发小能11 小时前
需求黑洞、业务与 IT 脱节、外包失控:企业需求管理平台如何破局?
devops