DevOps实战笔记
石雪峰
京东商城工程效率专家
立即订阅
3436 人已学习
课程目录
已更新 30 讲 / 共 35 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从默默无闻到风靡全球,DevOps究竟有什么魔力?
免费
基础理论篇 (4讲)
01 | DevOps的“定义”:DevOps究竟要解决什么问题?
02 | DevOps的价值:数字化转型时代,DevOps是必选项?
03 | DevOps的实施:到底是工具先行还是文化先行?
04 | DevOps的衡量:你是否找到了DevOps的实施路线图?
落地实践篇 (16讲)
05 | 价值流分析:关于DevOps转型,我们应该从何处入手?
06 | 转型之路:企业实施DevOps的常见路径和问题
07 | 业务敏捷:帮助DevOps快速落地的源动力
08 | 精益看板(上):精益驱动的敏捷开发方法
09 | 精益看板(下):精益驱动的敏捷开发方法
10 | 配置管理:最容易被忽视的DevOps工程实践基础
11 | 分支策略:让研发高效协作的关键要素
12 | 持续集成:你说的CI和我说的CI是一回事吗?
13 | 自动化测试:DevOps的阿克琉斯之踵
14 | 内建质量:丰田和亚马逊给我们的启示
15 | 技术债务:那些不可忽视的潜在问题
16 | 环境管理:一切皆代码是一种什么样的体验?
17 | 部署管理:低风险的部署发布策略
18 | 混沌工程:软件领域的反脆弱
19 | 正向度量:如何建立完整的DevOps度量体系?
20 | 持续改进:PDCA体系和持续改进的意义
平台工具篇 (4讲)
21 | 开源还是自研:企业DevOps平台建设的三个阶段
22 | 产品设计之道:DevOps产品设计的五个层次
23 | 持续交付平台:现代流水线必备的十大特征(上)
24 | 持续交付平台:现代流水线必备的十大特征(下)
特别放送 (4讲)
特别放送:成为DevOps工程师的必备技能(上)
特别放送:成为DevOps工程师的必备技能(下)
特别放送:学习DevOps不得不了解的经典资料
特别放送:Jenkins产品经理是如何设计产品的?
总结答疑 (1讲)
期中总结:3个典型问题答疑及如何高效学习
DevOps实战笔记
登录|注册

开篇词 | 从默默无闻到风靡全球,DevOps究竟有什么魔力?

石雪峰 2019-10-08
00:00
08:24
讲述:石雪峰 大小:7.70M
你好,我是石雪峰,目前在京东商城负责工程效率体系建设和平台研发。从业十多年,我一直在软件行业深耕,尤其是从 2015 年接触 DevOps 至今,我一直在企业内部从事 DevOps 的落地实践工作,也曾帮助多家大型企业进行 DevOps 的相关能力评估,积累了很多实战经验。
在写开篇词的时候,我才意识到,DevOps 从诞生至今已经整整十个年头了。十年之间,DevOps 从默默无闻到风靡全球,很多人都在反思和总结 DevOps 究竟有什么魔力。
十年前的 2009 年,我在一家日本软件公司工作,长期被外派到日本尼康公司做项目。虽然当时敏捷已经兴起,但在日本,软件开发还是瀑布模式的天下。每当一个新项目来临时,我们经常不分白天黑夜地埋头苦干几个月,完全不敢想象,如果不能顺利交付会怎么样。
可是,怕什么就来什么。有一次,我负责开发一款客户端软件,给客户交付的方式是事先刻录一张光盘,把光盘带去现场,一边部署,一边演示。刚开始还挺顺利的,可是到了生产数据拉取的环节,系统竟然异常退出了。我至今都还记得那位项目负责人不满的表情。
调试后我发现,客户的生产环境使用的是 Oracle 数据库,而我们使用的是微软的 Access 数据库,数据访问协议不一致,数据自然会同步失败。
之后的三个月,我总共休息了两天,每天的节奏就是吃饭睡觉写程序,干到搭乘最后一班电车回家,唯一的娱乐活动就是在吃加班餐的时候吐槽老板。
所以,当时我就在想,一定会有一种更好的软件开发方式,在这种方式下,团队间沟通和协作的重要性一点也不亚于写代码、写文档、做测试之类的常规工作。但我不知道的是,远在大洋彼岸,DevOps 的旅程才刚刚开始。
十年后,也就是 2019 年,以移动互联网、云计算、微服务、大数据、人工智能等为代表的技术日新月异,技术的迭代和演进都在以十倍速的方式向前发展,数字化转型浪潮正在席卷各行各业。“软件正在吞噬世界”“每一家企业终将成为软件企业”……行业领袖口中的这些预言,都在慢慢地变成现实。
如今,软件正在深刻地改变着我们的生活方式。前段时间,我去新疆旅行。在旅行途中,我发现即便是在沙漠边缘的小镇,微信支付也是畅通无阻。另外,用户喜新厌旧的成本已经低到可以忽略不计,企业之间的竞争已经升级为软件即服务的竞争。
所以,如何快速地持续交付高质量的软件,满足用户的多样化需求,并借此提升企业的利润和市场占有率,已经成为企业必须要面对的现实问题
可问题是,现在很多企业采用的软件开发方式,同十年前我所在的公司其实并没有什么区别,甚至由于组织分工的细化,内部沟通的消耗成本更加高昂。
你应该也遇到过这样的场景吧?两个部门为了数据打通,来回拉锯,各种方案和排期一天一个样,还美其名曰“PK”。原本特别简单的一件事情,非要扯上几天甚至几周才能有点眉目。每当这个时候,我都忍不住想说:“嘿,兄弟,我不是来抢你饭碗的,我只是想通过系统间的打通来简化一些工作而已,何必搞得这么复杂呢?”
所以你看,软件开发过程的改进,除了依赖于技术进步,还依赖于流程、理念、文化等全方位的改进,而这正是 DevOps 带给软件开发方式的一场革命
从 2017 年 DevOpsDays 大会北京站举办以来,DevOps 在国内的发展正式驶向了快车道。作为从业者之一,我深刻地感受到 DevOps 的影响力与日剧增,不仅仅是互联网行业,就连传统的电信、金融,甚至是政府机构,也都把 DevOps 作为核心能力在快速建设。
现在已经很少有人会问 DevOps 有什么用、DevOps 是否适合我之类的问题了,更多人开始关注要如何落地实践 DevOps,并且让 DevOps 充分发挥它的价值,真正改善软件交付方式,提高 IT 工程师的幸福指数。
除此之外,越来越多的企业开始招聘 DevOps 方面的人才,对 DevOps 的技能和经验背景的要求越来越高,DevOps 专家的岗位薪资甚至仅次于高级管理层,一跃成为 IT 行业的金字塔顶端。
我个人认为,DevOps 已经成为了所有 IT 从业人员应知应会的必备技能。在这些技能中,技术和实践当然非常重要,但文化和理念更是尤为珍贵。如果每个从业者都认同 DevOps 的文化和理念,认同快速交付价值远胜于部门间的零和博弈,认同我们应该共享一个目标,并从自身做起持续改善上下游的关系,那么,怎么可能还会出现刚刚我提到的 PK 的例子呢?
也许你从各种渠道了解过 DevOps 的相关信息,但是因为市场上资料庞杂、个人精力有限等原因,还存在着以下几个困惑:
如何梳理出一套清晰的 DevOps 理念和完整的知识体系?
如何获得一线大厂的实践经验,让 DevOps 真正落地?
如何获得一条渐进式的 DevOps 学习曲线,让自己在正确的方向上不断增值?
这些问题,正是多年来我一直在思考的,也希望在这个专栏中传递给你的核心内容。
学习 DevOps 的过程,对你来说将会是一场探索之旅。DevOps 涉及软件开发的方方面面,因此,你将漫步于需求、开发、测试、运维的完整开发流程,途经管理实践和工程实践的领域,探寻方法论、最佳实践和工具平台的有机结合方式,让自己在全栈工程师和斜杠青年的道路上更进一步。
DevOps 涉及的领域如此之广,想在一个专栏中学遍所有内容几乎是不可能的事情,所以我从实战的角度出发,臻选出最重要的内容,帮你梳理出一条 DevOps 的最佳学习路径。
本专栏主要由 4 个部分组成。
第 1 部分是“基础知识篇”。我将详细介绍 DevOps 的定义、价值、实施与衡量,在最开始帮你建立起正确的 DevOps 体系认知。
第 2 部分是“落地实践篇”。这一部分占据整个专栏一半的篇幅,是最核心的部分。我将带你通盘梳理 DevOps 的转型路径,你一定不要错过。
第 3 部分是“平台工具篇”。它涵盖平台建设的 3 个阶段、产品研发和设计、不可忽视的开源工具等,帮你找到快速搭建平台的钥匙。
第 4 部分是“转型案例篇”。我将分享 1~2 个实际案例,将前面提到的理论、落地实践和工具融入其中,让你能够融会贯通。
另外,我还设置了特别放送环节。在这个环节,我会跟你分享一些经典的学习资料、DevOps 工程师的必备技能等内容,让你全方位、多层次地掌握 DevOps。
其实,整个专栏的整理和写作,对我来说也是一场修行。毕竟,作为 DevOps 多年的实践者,我在用它解决问题的同时也发现了更多的问题,好奇心和对效率建设的执着追求让我乐此不疲。现在能够静下心来,把我多年的经验与反思整理出来跟你分享,也是一件非常有意义的事情。
在这个过程中,我也越发地感受到,DevOps 的思想和文化的落地依然任重道远。每个时代都会有一群先锋走在时代的前沿,中流击水,鹰击长空,希望通过本专栏的学习,你也可以成为 DevOps 的思想者和实践者,实现个人价值和企业价值的双赢。
最后,我想请你聊一聊,关于 DevOps,你都有哪些困惑?对于专栏,你又有哪些期待?欢迎你写在留言区,我们一起交流,期待你的反馈。
好了,从现在开始,就让我们一起踏上这场 DevOps 的奇妙旅程,一路同行,不断进步。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《DevOps实战笔记》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(39)

  • 陈斯佳
    这个专栏真是来得及时,我们公司从今年年初开始全面转向DevOps开发模式,整个发布流程都要重新建构。希望通过这个专栏,不仅能帮助公司顺利转型,也能让我这个半路出家的运维工程师打下扎实的DevOps知识基础,为将来至少30年的DevOps工作铺平道路。谢谢石老师!

    作者回复: 感谢你的回复,看来你对DevOps的前景充满信心,也期待你的问题,我们一起学习进步。另外,你是我见过的对DevOps最有信心的同学,30年足够做到退休啦!

    2019-10-08
    2
    11
  • caozhao
    石老师 好
    我们部门这边的项目 已经在摸索 devops在项目中的应用。
    已经开始用docker容器快速部署,gitlab、jenkins持续交互。接下来会做k8s和监控的应用以及敏捷开发,进而完成快速迭代和持续交付。
    因为 刚接触一个月,所以需要全面了解相应知识点和各个工具的作用,更希望 能快速上手,所以希望 石老师 能先实战,然后回头解释理论,用案例和项目来驱动。
    学以致用,才会掌握知识和工具,希望石老师 的课后练习不要少。

    作者回复: 很赞,一个月的时间能把这一套东西整出来相当不简单啊。其实我理解每一个工具和实践都需要在实战中积累经验,所以后面我会针对每一个实践,从理论,案例和经验方面进行展开。当然这多业务形态和行业背景,不可能面面俱到,最好的方式还是就事论事,讨论实际推行过程中的问题,所以也欢迎你继续关注并提出你们的挑战和疑惑,我们一起讨论哈。

    2019-10-10
    1
    5
  • Quincy
    校招从服务端调岗到devops,一个人做内部系统,前后端都写,弄得我很迷茫,感觉devops算运维吧,可又不涉及sre的运维业务,跟服务端比,写起功能来感觉很随意,自由度大,没什么规范。老师,我想问下,您觉得devops跟sre以及后端开发的区别在哪,各自有什么特点,devops有必要再转回服务端嘛。

    作者回复: 看你的描述,你现在应该是在做面向内部的工具平台开发吧。其实,在稍微大点的公司里面都有这样的团队,比如像运维开发,测试开发,相比业务系统来说,由于不直接面向用户,所以这些系统相对服务端来说对架构设计,高可用,高并发等的需求没有那么高,也就是你所谓的自由度大吧。
    而SRE是传统运维演进的一个方向,需要有很好的开发能力和运维背景,所以经常被视为DevOps工程师。
    其实我的理解,这些岗位都很重要,完全看你个人的方向,在国内很多公司,都是最优秀的人来做内部工具平台,因为他们既了解开发喜欢和工作方式,又具备类似DevOps这样的知识和理念。
    所以如果倾向业务开发,服务端更合适一些,但相对的接触面会比较窄,而SRE又是需要运维经验的积累,是不同的方向。DevOps代表未来的趋势,需要加强技术积累的同时,对技能的广度要求更高。所以,你可以根据自己的发展方向来考虑哈。

    2019-10-09
    4
  • 阿硕
    石老师的语速可以在慢点

    作者回复: 你好,感谢你的提醒,我会后面注意的!主要DevOps内容太多,看来可以给极客时间App提个慢速播放的需求哈😄

    2019-10-08
    4
  • YoungMarshual_besos
    配置管理新兵,一开始就做配置管理。没有开发经验没有运维经验,一个人艰难步行。

    作者回复: 你好,我见过很多公司都是配管在推DevOps,作为过来人,我觉得配管有其他角色不具备的优势,比如全局视角,流程能力,沟通能力,工具链等,所以可以和专栏的伙伴多多交流哈😄

    2019-10-09
    1
    3
  • xiaoxiunique
    哈哈 我还不懂DevOps 是啥意思

    作者回复: 所以我听到过这样一种说法,为什么持续交付没有火起来呢,是因为大家都能看得懂是啥意思,到了DevOps创造了一个新词,看不懂了,所以就火起来了😄

    2019-10-15
    2
  • Bryan Bai
    配置管理 -》构建发布 -》Agile -》DevOps -》 SRE ,DevOps热度超不过10年,会有新的名词来代替,尤其是机器学习出现以后,连软件开发都要重新定义了,DevOps也会变的。

    作者回复: 同意,总会有新的软件开发交付模式诞生,推陈出新,期待下一波节奏可以由中国的工程师来主导💪💪💪

    2019-10-09
    2
  • 心在飞
    有幸在上海 JUC 2017听过石老师的 Jenkins 落地最佳实践分享,收获很多。
    目前正在外企做DevOps,给我困惑比较多的是 DevOps 涉及的技术实在是太广了,涉及编程语言、操作系统、网络技术、路由器配置、自动化配置管理(Chef, Packer),云计算及虚拟化等。很多时候我会迷失在知识的海洋中,不知道该学什么,有种什么都想学,什么都学不好的感觉。
    还有一点我做的不好的,那就是我没有宣传和推广DevOps。我们团队很多人都不知道DevOps 是什么,我每天都在干什么。

    作者回复: 说的太对啦,咱们搞IT还是切忌什么都懂一点,但又什么都不精通。我的建议还是从当前的职责范围出发,先把现有领域的技术实践搞透,再拓展上下游领域那些最核心的能力。关于这部分内容,我会在番外篇中聊聊我的个人看法。
    关于第二点,可以多做做内部分享,推荐大家听听专栏,外面的大会也有很多,适当的洗脑还是很有必要的😄

    2019-10-09
    2
  • Geek_23dfce
    请问老师有什么devops的书籍推荐呢 谢谢!

    作者回复: 你好,这个问题有点宽泛,我在后面也会有专门一讲来介绍学习的资料,简单来说看趋势可以参考DevOps状态报告,全局视角和案例可以看《DevOps实践指南》,敏捷实战可以看何老师的《精益产品开发》,学习工程实践主要参考两本《持续交付》,这些都是比较经典的书或者材料哈

    2019-10-21
    1
  • 没带就是没写
    老师请问你这个课会具体教gerrit jenkins,sonarqube,git的配置,自动配合和操作实战吗,还是以理论为主?

    作者回复: 你好,关于这些工具的使用问题,你可以随时问我哈,还是比较熟悉的哈。关于工具,可能每个人的问题都不同,所以专栏更多的会关注具体的工程实践,辅助工具介绍。
    当然如果类似这样的问题很多,我会提取一些在番外篇中进行加餐,咱们的专栏还是以大家的反馈为参考哈,所以欢迎你多多留言哦!

    2019-10-14
    1
  • Christina Han
    将自己的经验分享,可以让后来人有参考,支持👍

    作者回复: 谢谢你的支持,也欢迎你多多分享你的经验,我始终觉得有一个平台给志同道合的朋友一起交流,这很DevOps😄

    2019-10-09
    1
  • 玉剑冰锋
    想请教老师,这个专栏更适合运维还是开发?

    作者回复: 你好,很难讲只有开发,或者只有运维就能落地DevOps的,因为最开始的初衷也是把敏捷的思想在运维工作中实践,所以开发和运维一个都不能少。
    从我接触过的公司来说,开发中心主导的不在少数,但是运维SRE也很DevOps,所以我觉得对于不同的角色,出发点和侧重会存在不同。

    2019-10-09
    1
  • Geek_599062
    其实不太懂什么才是真正的devops

    作者回复: 其实,我觉得能解决问题的DevOps,才是真正的DevOps哈。DevOps只是一个符号,我们真正关心的还是如何不断提升软件研发交付效率和质量,更好的为业务服务哈。

    2019-10-08
    1
  • Woosang
    会涉及Jenkins X的内容吗?

    作者回复: 你好,Jenkins X体系相当庞大,我会在云原生和开源工具的部分有所涉及,但是不会面面俱到,感兴趣的话我们可以线下交流哈🤝

    2019-10-08
    2
    1
  • 随波逐浪
    雪峰老师,听完了很有诱惑力的开篇,更期待后续精彩的内容。作为一名忠实粉丝,给你点赞,为你打call,。◕‿◕。

    作者回复: 你好,感谢支持,一起加油哈!

    2019-11-21
  • 王皓
    谢谢雪峰老师的分享:)

    作者回复: 你好,谢谢你的关注,欢迎多多留言交流😝

    2019-11-16
  • devops应该是一种自上而下的运动,文化或习惯,从业务到研发开发,没有形成标准流程和规范,没有默契的跨团队对接,像我,单独一个运维,在公司倡导不起来。

    作者回复: 你好,你说的的确是很多公司的现实,我一直在团队内部倡导一个思想,救人先救自己,如果改变不了别人,就先把自己范围内的工作按照DevOps的思想进行改造,至少自己的工作标准清晰自动化了,那么上下游协作就有精力思考和改进了。

    2019-11-12
  • 雷霹雳的爸爸
    老师能不能介绍一下京东内工程效率部和业务部门的关系,在开发过程、运维上线、故障排查方面的协作机制,还是之间只有平台和工具的交集?

    作者回复: 你好,工具平台只是其中一个方面,想做好工程效率,还离不开流程优化,实践落地,培训教练等等,关于工程效率团队的职责,我可以给你分享下之前的想法和总结,供参考:

    * 提供一体化开放的标准研发协同平台和高效易用的研发工具链
    * 持续优化端到端产品交付流程,助力产品和服务的高质量持续交付
    * 塑造业务导向高效协同的工程师文化,鼓励创意创新的快速落地实践
    * 面向用户提供灵活的研发效能解决方案,并反哺平台核心能力建设

    2019-10-29
  • 架构专家
    期待后面会有DevOps全开源端到端部署流水线的部署讲解或案例,谢谢!

    作者回复: 你好,如果感兴趣的话,我可以增加一个番外篇内容,专门介绍工具哈。

    2019-10-24
  • a
    目前我们服务均实现了容器化部署,jenkins自动集成和自动发布,gitlab源码管理,k8s编排容器.但需求管理这一块没有纳入进来.我最想知道的是需求和自动构建如果串起来的最佳实践.另外希望了解版本更新的最佳实践.谢谢石老师.

    作者回复: 你好,如果说需求和自动化串联,我理解第一要明确需求的颗粒度,一般比较推荐的是用户故事,或者直白的说是可交付用户的特性,需求的颗粒度决定了软件开发交付的速度。
    其次,就是分支策略,这是需求和代码的结合点,如果说DevOps推荐的做法,就是以特性为单位的交付,也就是说一个需求作为一个特性,基于需求拉出特性分支,这条分支上只提交跟这个特性相关的代码,然后以特性分支的维度进行交付。
    比较好的实践,一个是你提到的自动化,也就是需求,分支自动创建,并且可以自动构建,最典型的就是在IDE中集成需求管理系统,在IDE中完成分支创建,代码提交关联需求的工作。第二个就是需求和下游的串联,也就是从需求维度关联所有的代码,版本,测试用例等。如果能做到特性维度的灵活组合发布,那么版本更新也就不是什么难题了。
    具体的实践,我会在后续文章中进行展开。

    2019-10-20
收起评论
39
34
返回
顶部