时长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 的最佳学习路径。
本专栏主要由 4 个部分组成。
另外,我还设置了特别放送环节。在这个环节,我会跟你分享一些经典的学习资料、DevOps 工程师的必备技能等内容,让你全方位、多层次地掌握 DevOps。
其实,整个专栏的整理和写作,对我来说也是一场修行。毕竟,作为 DevOps 多年的实践者,我在用它解决问题的同时也发现了更多的问题,好奇心和对效率建设的执着追求让我乐此不疲。现在能够静下心来,把我多年的经验与反思整理出来跟你分享,也是一件非常有意义的事情。
在这个过程中,我也越发地感受到,DevOps 的思想和文化的落地依然任重道远。每个时代都会有一群先锋走在时代的前沿,中流击水,鹰击长空,希望通过本专栏的学习,你也可以成为 DevOps 的思想者和实践者,实现个人价值和企业价值的双赢。
最后,我想请你聊一聊,关于 DevOps,你都有哪些困惑?对于专栏,你又有哪些期待?欢迎你写在留言区,我们一起交流,期待你的反馈。
好了,从现在开始,就让我们一起踏上这场 DevOps 的奇妙旅程,一路同行,不断进步。
作者回复: 感谢你的回复,看来你对DevOps的前景充满信心,也期待你的问题,我们一起学习进步。另外,你是我见过的对DevOps最有信心的同学,30年足够做到退休啦!
作者回复: 你好,感谢你的提醒,我会后面注意的!主要DevOps内容太多,看来可以给极客时间App提个慢速播放的需求哈😄
作者回复: 很赞,一个月的时间能把这一套东西整出来相当不简单啊。其实我理解每一个工具和实践都需要在实战中积累经验,所以后面我会针对每一个实践,从理论,案例和经验方面进行展开。当然这多业务形态和行业背景,不可能面面俱到,最好的方式还是就事论事,讨论实际推行过程中的问题,所以也欢迎你继续关注并提出你们的挑战和疑惑,我们一起讨论哈。
作者回复: 你好,我见过很多公司都是配管在推DevOps,作为过来人,我觉得配管有其他角色不具备的优势,比如全局视角,流程能力,沟通能力,工具链等,所以可以和专栏的伙伴多多交流哈😄
作者回复: 看你的描述,你现在应该是在做面向内部的工具平台开发吧。其实,在稍微大点的公司里面都有这样的团队,比如像运维开发,测试开发,相比业务系统来说,由于不直接面向用户,所以这些系统相对服务端来说对架构设计,高可用,高并发等的需求没有那么高,也就是你所谓的自由度大吧。
而SRE是传统运维演进的一个方向,需要有很好的开发能力和运维背景,所以经常被视为DevOps工程师。
其实我的理解,这些岗位都很重要,完全看你个人的方向,在国内很多公司,都是最优秀的人来做内部工具平台,因为他们既了解开发喜欢和工作方式,又具备类似DevOps这样的知识和理念。
所以如果倾向业务开发,服务端更合适一些,但相对的接触面会比较窄,而SRE又是需要运维经验的积累,是不同的方向。DevOps代表未来的趋势,需要加强技术积累的同时,对技能的广度要求更高。所以,你可以根据自己的发展方向来考虑哈。
作者回复: 谢谢你的支持,也欢迎你多多分享你的经验,我始终觉得有一个平台给志同道合的朋友一起交流,这很DevOps😄
作者回复: 说的太对啦,咱们搞IT还是切忌什么都懂一点,但又什么都不精通。我的建议还是从当前的职责范围出发,先把现有领域的技术实践搞透,再拓展上下游领域那些最核心的能力。关于这部分内容,我会在番外篇中聊聊我的个人看法。
关于第二点,可以多做做内部分享,推荐大家听听专栏,外面的大会也有很多,适当的洗脑还是很有必要的😄
作者回复: 其实,我觉得能解决问题的DevOps,才是真正的DevOps哈。DevOps只是一个符号,我们真正关心的还是如何不断提升软件研发交付效率和质量,更好的为业务服务哈。
作者回复: 你好,Jenkins X体系相当庞大,我会在云原生和开源工具的部分有所涉及,但是不会面面俱到,感兴趣的话我们可以线下交流哈🤝
作者回复: 你好,DevOps不像一门具体的技术,而是文化和实践,在实践篇我会从具体实践的角度切入,结合我的一些经验分享,也欢迎你多多提出你的问题哈。
作者回复: 你好,这个建议很好,稍后我问下编辑同学哈!
作者回复: 你好,分久必合 合久必分啊,现在流行的全栈工程师就是你说的走向综合吧,所以多面手,跨领域的人才现在比较热门。
作者回复: 小企业基本都是英雄主义,一个人身兼数职,我的理念就是够用就好,不知道你们使用的是自研平台还是云厂商的一体化研发平台。我觉得这也是未来的一个趋势,只要关注业务研发,工程能力也会慢慢成为一种基础设施。
作者回复: 感谢你的支持,也欢迎你提出你关心的问题,我们共同讨论。
作者回复: 你好,很高兴又见到一位DevOps产品经理,无论你们是开发内部产品还是外部产品,对DevOps的深入了解都会助你一臂之力,因为只有将DevOps的理念和实践融入产品中,才能解决用户面临的实际问题。了解软件交付中所面临的痛点,才能有的放矢的给出产品设计和解决方案。
我目前也是在负责内部DevOps平台的研发,深知做产品不容易,作出好用的产品很难,所以我也会在专栏中分享我在设计产品过程中的一些观点和思路,期待与你的交流。
作者回复: 感觉你们这一顿操作猛如虎啊!应用架构,工具平台,基础设施都有助于DevOps的实施,但是每一个都需要很大的投入,还得需要体系化建设才行啊,如果你提到这些都没有基础,的确比较挑战,还是得明确主线,分阶段实施。你觉得当前最大的问题是在哪里呢,公司是基于而第三方云服务还是全字研呢?
作者回复: 😓
作者回复: 同意,总会有新的软件开发交付模式诞生,推陈出新,期待下一波节奏可以由中国的工程师来主导💪💪💪
作者回复: 你好,看来大家对DevOps的相关技能关注度非常高啊,我会在番外篇中聊聊我的看法,简单来说,我觉得云和容器对于DevOps还是非常重要的能力,建议有时间可以多了解下哈
作者回复: 你好,你所关心的这些内容,我会在第一个番外篇中说说我的看法,敬请期待😄