开篇词 从默默无闻到风靡全球,DevOps究竟有什么魔力?
你好,我是石雪峰,目前在京东商城负责工程效率体系建设和平台研发。从业十多年,我一直在软件行业深耕,尤其是从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的奇妙旅程,一路同行,不断进步。
- 晴空万里 👍(26) 💬(3)
石老师您好 我是一个java开发工程师 做了一些后端开发 写过一些管理系统 一些小公司项目 看到现在外面主流java开发是微服务 分布式 高并发很是羡慕 但是自己机缘巧合进入了一个财务软件企业的DevOps工程部 负责自动化运维平台的开发 这个平台基于云平台来进行开发 我一个写后台的 对此一窍不通 而且觉得这个运维平台和主流java开发不符合 也不知道devops的前景怎么样 或者说只是因为这家公司比较大 工作不好找 而暂时留下来了 看到课程 就果断加入了 我的疑问是 做DevOps平台开发和做业务系统开发 有没有前途 我的年纪也30+了 不能在方向的选择上荒废了 ...请老师解答
2019-10-18 - 陈斯佳 👍(18) 💬(3)
这个专栏真是来得及时,我们公司从今年年初开始全面转向DevOps开发模式,整个发布流程都要重新建构。希望通过这个专栏,不仅能帮助公司顺利转型,也能让我这个半路出家的运维工程师打下扎实的DevOps知识基础,为将来至少30年的DevOps工作铺平道路。谢谢石老师!
2019-10-08 - Quincy 👍(9) 💬(1)
校招从服务端调岗到devops,一个人做内部系统,前后端都写,弄得我很迷茫,感觉devops算运维吧,可又不涉及sre的运维业务,跟服务端比,写起功能来感觉很随意,自由度大,没什么规范。老师,我想问下,您觉得devops跟sre以及后端开发的区别在哪,各自有什么特点,devops有必要再转回服务端嘛。
2019-10-09 - xiaoxiunique 👍(8) 💬(1)
哈哈 我还不懂DevOps 是啥意思
2019-10-15 - caozhao 👍(8) 💬(3)
石老师 好 我们部门这边的项目 已经在摸索 devops在项目中的应用。 已经开始用docker容器快速部署,gitlab、jenkins持续交互。接下来会做k8s和监控的应用以及敏捷开发,进而完成快速迭代和持续交付。 因为 刚接触一个月,所以需要全面了解相应知识点和各个工具的作用,更希望 能快速上手,所以希望 石老师 能先实战,然后回头解释理论,用案例和项目来驱动。 学以致用,才会掌握知识和工具,希望石老师 的课后练习不要少。
2019-10-10 - 心在飞 👍(8) 💬(1)
有幸在上海 JUC 2017听过石老师的 Jenkins 落地最佳实践分享,收获很多。 目前正在外企做DevOps,给我困惑比较多的是 DevOps 涉及的技术实在是太广了,涉及编程语言、操作系统、网络技术、路由器配置、自动化配置管理(Chef, Packer),云计算及虚拟化等。很多时候我会迷失在知识的海洋中,不知道该学什么,有种什么都想学,什么都学不好的感觉。 还有一点我做的不好的,那就是我没有宣传和推广DevOps。我们团队很多人都不知道DevOps 是什么,我每天都在干什么。
2019-10-09 - 阿硕 👍(6) 💬(1)
石老师的语速可以在慢点
2019-10-08 - Bryan Bai 👍(5) 💬(2)
配置管理 -》构建发布 -》Agile -》DevOps -》 SRE ,DevOps热度超不过10年,会有新的名词来代替,尤其是机器学习出现以后,连软件开发都要重新定义了,DevOps也会变的。
2019-10-09 - YoungMarshual_besos 👍(5) 💬(2)
配置管理新兵,一开始就做配置管理。没有开发经验没有运维经验,一个人艰难步行。
2019-10-09 - Geek_23dfce 👍(4) 💬(1)
请问老师有什么devops的书籍推荐呢 谢谢!
2019-10-21 - Geek_599062 👍(4) 💬(1)
其实不太懂什么才是真正的devops
2019-10-08 - 竹影 👍(3) 💬(1)
devops应该是一种自上而下的运动,文化或习惯,从业务到研发开发,没有形成标准流程和规范,没有默契的跨团队对接,像我,单独一个运维,在公司倡导不起来。
2019-11-12 - a 👍(3) 💬(1)
目前我们服务均实现了容器化部署,jenkins自动集成和自动发布,gitlab源码管理,k8s编排容器.但需求管理这一块没有纳入进来.我最想知道的是需求和自动构建如果串起来的最佳实践.另外希望了解版本更新的最佳实践.谢谢石老师.
2019-10-20 - Geek_dn82ci 👍(3) 💬(1)
最近一年也在做软件工程方面产品的go to market工作,也看了一些书籍,例如凤凰项目,O'Reilly的学习敏捷等等,正好也想看看业内的实际应用,因为不是研发技术出身,但却看好这个市场特别是在国内还是有很大发展空间,只是苦于如何转型,不知道是否有适合自己的岗位角色
2019-10-20 - 杨越 👍(3) 💬(1)
老师请问你这个课会具体教gerrit jenkins,sonarqube,git的配置,自动配合和操作实战吗,还是以理论为主?
2019-10-14