Z
当我们在谈论DevOps时我们在谈论什么?
DevOps 集文化理念、实践和工具于一身,可以提高企业高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助企业更快地发展和改进产品。
开发,测试,运维在以前可能更多的是相关性较低的独立个体.更关注于独立自主的任务,职责划分较为明显,出问题后也更容易产生对立情绪.
DevOps运用一系列的标准化流程,以及自动化工具.使得需求管理正规化,从代码编写,测试,部署,监控报警可视化,数据回收分析,正向反馈需求评审形成完整闭环.
从技术角度来说,DevOps更像是自动化工具链的整合.
撇开ideas阶段的需求管理不说,我们来看通常情况下代码从提交到变成服务需要经历哪几个步骤.
代码提交-构建-测试-代码审查-部署-测试-监控
Devops里称之为CI(Continuous Delivery)/CD(Continuous Deployment)
传统运维只负责最后两个步骤,部署及监控,稳定性是他们的最爱,变更是悬在他们头上一把摇摇欲坠的利刃.
可是日益快速变化的市场需求使得开发不得迭代版本变更服务,从而更好的适应市场.
变更意味着风险与矛盾,如何降低风险,减少矛盾,提高效率就是DevOps干的活.
为了保证代码上线交付的安全性,敏捷性,可控性.
流程化以及标准化必不可少,尽量脱离人工干预的可能.
在DevOps里有个理念叫Pipeline as Code,当DevOps工具链完全整合后,只需要修改pepeline的代码就可以自动化管理代码上线的流水线,在可视化平台可以一眼看到每个步骤的执行过程及结果.
DevOps工具链是一个非常庞大的分支,会在后续章节一一展开.
DevOps的火热也对DevOps提出了更高的要求
DevOps需要运维站在开发的角度想问题,可以不会高超的编程技巧,但是基本的编译,依赖,构建知识必不可少
Devops需要有更敏锐的大局观,需要掌握的知识点更多了,要求也更高了
Devops需要更懂底层原理,出了问题才能更快的定位出问题的本质
Devops需要有更强的独立完成任务能力,Google/Github/Stackoverflow是最好的老师
Devops需要有更强的持续学习能力.技术在进步,架构在演化只有持续学习才能找到最合适自己的解决方案
Devops需要足够懒,才会想尽办法 Automatic everything
不会说段子的运维不是好DevOps,沟通协调能力也很重要
DevOps Roadmap
以下是Kamran Ahmed,以及佚名整理制作的两张devops roadmap图
接下来我们不会对每个模块进行详细深入解刨,而是以最佳实践的方式进行展开
最后附上一张大家眼中的DevOps