什么是DevOps
DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。(1)
Dev注重开发,提倡创新。而Ops则注重维护,追求稳定,因此在团队中Dev与Ops间矛盾不断。而DevOps方法应运而生。通过自动化工具与检测打破的Dev与Ops的壁垒。使团队效率得到极大的提升
DevOps的发展过程
1,瀑布模型
我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。然而随着技术的发展。工种开始分化除了软件开发工程师之外,又有了软件测试工程师,软件运维工程师。分工后一个软件开发流程就变成了:开发人员将代码编写完成后,交予测试人员,测试通过后。由运维人员进行维护。这种方法就叫做瀑布模型
但是瀑布模型的方法较为理想化。因为瀑布模型的方法使一步步来,测试,部署只能等开发完成之后才能展开(合理摸鱼羡慕了)。而随着客户的需求不断变化。瀑布模型往往无法适应变化。大家发现,笨重迟缓的瀑布式开发已经不合时宜了。
2,敏捷开发
敏捷开发在2000年左右开始被世人所关注,是一种能应对快速变化需求的软件开发能力。其实简单来说,就是把大项目变成小项目,把大时间点变成小时间点
敏捷开发可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的版本变化是比较小的,风险会更小。即使出现问题,修复起来也会相对容易一些。
敏捷开发将开发与测试联系到一体,而运维仍是铁板一块。开发(Dev)注重开发,提倡创新。而运维(Ops)则注重维护,追求稳定,因此在团队中Dev与Ops间矛盾不断。而DevOps方法应运而生。通过自动化工具与检测打破的Dev与Ops的壁垒。使团队效率得到更大的提升(万恶的资本)
3,Devops
随着自动化运维与检测工具的完善,DevOps变得火了起来
DevOps就是将项目变为更小的项目,打破了Dev与Ops间的壁垒。促进了开发与运维的基情(bushi)
DevOps工作内容
持续部署:已交付的代码在通过评审之后,自动部署到生产环境中。
持续监控:通过专业的监控软件(如Prometheus等),按事先设置的监控策略,监控业务应用以及系统平台的运行情况,形成监控报告和监控展示。
持续反馈:基于监控的结果作数据分析,提供建议方案,如针对应用的监控,实现应用的弹性伸缩等能力。
持续改进:基于反馈的意见,启动新的改进计划流程。
持续集成:开发人员研发的代码向软件整体部分交付,频繁进行集成以便快速发现问题。
持续交付:在已完成集成的代码上面将完成测试的代码部署到“类生产环境”中。
1,CI/CD是什么?
CI(持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。。
CD(持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。(3)
DevOps工具
常见工具:
Jenkins:一种运用cd模式支持任何项目的构建、部署和自动化的开源自动化服务器(4)
Docker:Docker 是一个开源的应用容器引擎。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。人话:(将环境与程序打包发布的容器)
Git:Git 是一个开源的分布式版本控制系统
Github:一个代管你代码的仓库社区
TerraformAnsible
Ansible。。。。。。
(卒)
DevOps 自动化工具
- 基础设施自动化
- 配置管理:Jenkins
- 部署自动化
- 性能管理
- 日志管理
- 监控
Devops发展前景
目前,DevOps处于高速增长的阶段。尤其是在大企业中,DevOps受到了广泛的欢迎。如图
一体化的DevOps平台正在成为全球范围内的DevOps发展趋势,国内企业通常采用一体化平台+开源软件的方式构建自己的DevOps体系。2020年国内DevOps相关产品的市场规模达到27亿元,未来5年的CAGR将超过25%,市场发展前景良好
参考资料:(1)百度百科
(2)知乎:DevOps到底是什么意思? - 知乎 (zhihu.com)
(3)Jenkins详细教程 - 简书 (jianshu.com)
(4) https://www.Jenkins.io
定格动画,让你快速搞懂什么是DevOps_哔哩哔哩_bilibili
【狂神说】CI/CD到底是什么?十分钟理解企业级DevOps_哔哩哔哩_bilibili
从 CI/CD 持续集成部署到 DevOps 研发运维一体化 - 掘金 (juejin.cn)
DevOps建设流程_gcttong00的博客-CSDN博客_devops流程
通俗讲解:什么是容器?为什么我们要使用它?_SAP资深技术专家Jerry Wang的分享-CSDN博客_容器
Docker 教程 | 菜鸟教程 (runoob.com)
Docker 10分钟快速入门_哔哩哔哩_bilibili
Docker 是什么?30秒听懂。_哔哩哔哩_bilibili
Git 教程 | 菜鸟教程 (runoob.com)
5 大 DevOps 工具,你用过几个? - 知乎 (zhihu.com)
「全国devops招聘」-2021年全国devops人才招聘信息 - BOSS直聘 (zhipin.com)
DevOps教程:DevOps 自动化 - 码者无疆 - 博客园 (cnblogs.com)
2020年中国DevOps应用发展研究报告_企业 (sohu.com)



