从去年 11 月以来,基本上都在写一些成长心得与技术管理类的文章,也有不少朋友问我:“你之前写的 DevOps 系列的连载呢?晃点我们喽?” 如果说这是晃点,还不如说是纠结更合适,因为 DevOps 这东西并不是一天两天的体力活,它更类似 ‘搭积木’ 这样的细致活,在这个过程中充满不确定,节奏中有前进、有倒退。
这种纠结,会导致原本顺理成章的事情在短时间内中断,作为一直倡导落地总结性原创输出的我,与其急急忙忙,还不如 “让采坑多一点” 再写出来。
本系列的两个月轮空,请允许我啰嗦一下,下面继续唠 DevOps。
前两篇,我谈到在「敏捷文化」与「配置中心」的实施过程中所遇到的挑战,并基于实际场景与背景的前提下是如何应对的。其实,自好买提出持续集成、持续交付、持续部署以来,以上两个问题就从来不是核心问题,原因很简单:
文化:慢慢培养,培养不到想要的境界,就坦然面对去接受;
配置:纯技术问题,更容易解决,狠一狠心就行了;
那么,核心问题是什么呢?
对于应用研发来说,如果有一个平台,能够提供项目协作和持续交付两大功能,并将交付形成从需求到反馈的完整闭环,最终提供流水线式的一站式平台,那该是件多么美好的事情。
可是,梦想终究是梦想,现实终究是现实,如果平台提供者每天都在憧憬着梦想,那么当下的痛点又有谁来解决呢?
01 为什么流水线的落地如此困难?
好,先看下我们最初设想的美好蓝图:利用自动化手段,将标准化落地。
这张图展示的是一个常见的新增应用研发过程,我们先在版本管理系统中注册完相关信息,再从「配管系统」中将 master 拉出开发分支进行开发,通过「配置系统」提交相关应用配置信息,然后在「测试系统」中利用自动化测试手段完成测试,最终合并成 release 分支,提交至「部署系统」完成发布。
为了规范操作,提高协作效率,避免错误,我们需要一套平台话流水线来承载这一切。
以上这个看似没毛病的故事,在落地的过程中却遇到了一些困难,主要表现为 “平台使用者” 的出发点与 “平台提供者” 不一致:
1.收益周期:有限的资源必须优先保障业务实现,有多余的资源满足技术改进,每次投入都应该立即有收益,如果连续投入都看不到效果,那我不干;
2.效率优先:用一堆工具就能搞定,界不界面,流不流程不重要,无法容忍建设性等待,能用就行。
3.资源成本:用了这个平台如何才能让我人肉化变为自动化?如果用了你的平台,我还需额外支出更多成本,那我情愿自己来。
4.依赖路径:随着测试与运维进入 FeatureTeam 之后,平台化逐渐失去原有的需求来源,而 FeatureTeam 更愿意自己当即解决痛点,而不依赖于其他团队。
对于大部分金融类企业,「效率至上,结果导向」都是基本原则,在遇到这么多困难时,我们开始思考,在推动流水线一站式平台之前,我们还能做什么?
02 用工具化提升效率,再来谈流水线
其实,如果可以用一堆工具就能解决的事情,非要搞个平台,整一堆界面才能实现的东西,在落地过程中先天就具有劣势。
好吧,我们暂时忘记那张美好的蓝图,通过某个系统的试点,通过工具化的方式,先把持续集成玩透,让使用者快速获得收益。
某系统的痛点与需求(持续集成)
1.测试活动各环节是独立运行的,无法充分利用夜间空闲时间,不便于为研发提供快速反馈的服务。
2.因系统依赖性强,测试环境需部署多系统,但部署耗时长,部署环境容易出现遗漏,造数据难度高。
3.接口测试需手工替换环境上的 dubbo 包,增加测试环境准备时长,上线包不等于测试包。
(第一阶段)
第一阶段:某系统的工具化解决方案(持续集成):
直接使用 Jenkins 组装 CI 场景
通过 Jenkins 脚本,实现数据初始化、构建、部署、调用自动化测试脚本(Python)
在核心接口中,手工编写两套 APP,一套用于 Mock,一套用于正式;
配置更新继续停留在手工阶段;
(第二阶段)
第二阶段:某系统的流水线解决方案(持续集成):
提供 CI 流水线,并支持 Mock 功能:
1.通过 Jenkins 脚本,数据初始化;
2.部署系统(自研): 构建、部署;
3.自动化测试与流程(自研): CI 流水线,mock 测试;
4.服务治理功能(自研): 基于 Dubbo 支持动态路由功能,满足 Mock 场景服务;
5.资源系统(自研):?(暂时没想透)
6.配置系统(自研):?(暂时没想透)
当然,无论从哪个视角来看,这个方案已不像 DevOps 了,只是简单的用「Jenkins+自动化脚本+自研工具」解决一些人肉化的工作罢了。不过这个没关系,至少通过这样的方式,我们可以在一个月内提升效率,释放资源。
用未来的视角展望一下,最终是否完成那张美好的蓝图,又有谁关心呢?毕竟,系统也好,平台也罢,是给人用的,不是用来装 B 的。
今天咱就唠到这吧,下回咱们来谈谈 —— 在 DevOps 中,那些高度集中的基础服务。
本文转载自头哥侃码公众号。
原文链接:https://mp.weixin.qq.com/s/VhiuYIG9DBTLq6oekKF7cg
评论