devops学习笔记
1. devops的背景和含义:
1 2 3 4 5 6 7 8 9 | IT 公司需要 负责的事情很多,其中包括下面两个必须实现的目标: 1. 对变化莫测的市场做出反应; 2. 为客户提供稳定、可靠和安全的服务。 开发部门通常负责对市场变化做出响应,以最快的速度将新功能或者变更上线。而 IT 运维部门则要以为客户提供稳定、可靠和安全的 IT 服务为已任,让任何人都很难甚至无法引入可能会危 害生产环境的变更。这种配置方式让开发部门和 IT 运维部门的目标和动因之间存在巨大的冲突。 Eliyahu M. Goldratt 博士称这种配置为“根本的、长期的冲突”—公司对不同部门的考核和激励不同,阻碍了公司全局目标的实现。 这种冲突造成了一种恶性循环,阻碍了业务目标的实现,不但波及 IT 公司的内部,而且还 会影响外部。这些长期冲突常常导致技术工作者交付出质量低劣的软件和服务,打造出糟糕的客 户体验,每天都要采用临时解决方案、应对紧急情况。以上情景在产品管理、产品开发、QA、 IT 运维和信息安全管理中不断上演。 你会注意到产品代码部署消耗的时间更长了,从几分钟到几个小时,再到几天或者几周。更 糟的是,部署的效果越来越差,这导致客户服务中断的次数越来越多,需要运维部门来救急,而 他们也因此无法偿还技术债务。 小团队的开发人员独立地实现自己的功能,在类生产环境中验证其正确性,再 把代码快速、安全、可靠地部署到生产环境里。代码部署是日常的且可预测的工作。部署工作不是 选在周五的午夜开始、鏖战整个周末才完成,而是在每个人都在办公室的工作日进行,大多数时 候甚至不会引起客户的注意(客户兴奋地看到出现了新功能或者旧缺陷被修复了的情况除外)。 由于代码部署是在工作时间段内进行的,几十年来,IT 运维人员第一次可以像其他人一样在正常 工作时间段工作了。 |
引用《devops: 方法 原理 和实践》书中的一段解释:
2. devops的发展历程:
2007-2008 萌芽阶段
2009-2010 社区确立阶段
2011-2012 产业关注阶段 《凤凰项目》 devops圣经
2013年~ 相关技术基础协同发展的阶段
2013年,dotCloud公司推出docker
同年 Google推出k8s
2015 cloud-native云原生概念成熟—CNCF开源组织成立。
3. 持续集成和持续交付
devops已经指导了一些关键实践:例如持续集成,持续交付
持续集成:
与版本控制系统相连
构建脚本
某种类型的反馈机制 email
集成源代码变更的过程(使用手动或持续集成服务器)
持续交付:Continuous Delivery,需要手动部署到产品环境。
持续部署: 自动并连续的完全部署到实际的生产环境
4. devops自动化工具
devops本身是一种思想理念, 为了将devops从概念转换实际可操作的实践方法需要借助一系列自动化工具。
持续集成— 目标是对开发团队进行集成
包括 代码的构建,单元测试,集成测试,生成结果报告。
目的: 让开发人员更加关注代码的质量,而不是把时间浪费在解决代码冲突和等待测试报告上。
持续集成工具:
最流行的工具是:Jenkins ,类似的还有JetBrains
Travis CI是基于GitHub API打造的托管持续集成工具。 jenkins通过插件完成类似Travis CI的功能。
持续部署工具:
ansible,puppet,chef + docker
流水线 pipeline
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步