我在滴滴做开源
在这里插入图片描述
1、自我介绍
大家好,我是滴滴吴彦祖(狗头) -- 石臻臻(狗头)
为了能够让大家快速的认识并记住我, 我简单列几个关键词
滴滴 Kafka 技术专家
开源项目 LogiKM 的 PMC
Kafka Contributor
Nacos Contributor
石臻臻的杂货铺 号主
一个热爱音乐的码农
有同样爱好的可以来交个朋友, 交流交流琴艺 和 代码 。
经常会有人问我 在这么多年的工作中,有没有一下经验分享分享, 以及我是如何开始参与开源项目的。
那么今天我们就好好来聊一聊
2、工作经历
我总共到目前为止是待了 4 家公司, 一家电商企业,一家金融企业, 2 家网约车企业。
前面 2 家主要是后端开发, 后面到现在的话主要是做基础中间件以及做开源项目。
后端 -> 中间件
那么为什么我从后端开发, 后面转到基础中间件了呢?
C 站可能学生比较多,还没有入行的同学可能不太清楚这两者的区别;
后端开发:
主要是做业务需求, 开发者大部分的时间可能是在 CURD 增删改查, 这个是在已有的框架上造房子, 不需要你过多的去关注一些底层的基础服务。这样可以更高效敏捷的完成业务需要, 但是这个并不是说后端开发没有技术含量, 相反后端开发需要你处理非常复杂的业务场景和各种故障。这个需要你有一定的业务理解能力。
它的优缺点
优点:①. 对底层技术要求没那么高。②. 如果业务发展迅速, 非常容易借着业务来实现快速晋升。
缺点:①.干久了觉得枯燥乏味, 经常会觉得自己就是一个纯粹的 CURD Boy。②. 需求多变, 无止境的跟产品扯皮。③. 没有不紧急的需求。 基本上产品提给你的需求都是没有不紧急的, 恨不得马上上线, 所以会经常加班④. 发布频繁, 经常需要错峰发布(比如经常凌晨错峰发布)
当然 部分问题可以通过规范合理的项目管理可以规避掉。但是目前为止, 大部分公司都是敏捷开发吧.
中间件:
对于中间件呢, 中间件是一类软件统称,而不是特指某种软件。它是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件。
你可以简单的理解为, 它是一座房子的地基能够承接起上层建筑、一座桥梁能够连接河岸两边 。
我之所以后来转到了中间件是因为几个点
我个人对纯粹的技术更感兴趣。
不会有频繁的发布(意味着更少的线上故障)
更有挑战性
当然他也有他的局限性, 一般中间件基础部门很难出大的成果, 毕竟保证服务稳定是他们的职责, 稳定也就意味着不太被感知, 那么一些好的事情就比较不那么容易轮到你头上。
但是如果你强烈的被感知了, 那肯定是很严重的事故的。0.0
我是如何转中间件呢?
这个路是我自己走的, 当然前提是你的技术能力本身过硬。
做好中间件前提是你得对你所从事的那个技术框架本身就要很了解, 比如你想要在 Spring 框架里面做一些扩展, 那么你肯定得对整个 Spring 框架的加载和运行原理非常清楚,然后了解它有哪些可以被你使用扩展接口, 才能够去开发它。
当然这些, 我都有一定的了解, 因为我在业余时间 会去读一些优秀的开源项目的源码,并且写成专栏。
这里我建议大家, 在读源码的时候,进尽量的去创作, 把你得到的信息给记录下来。
因为大部分情况下都是看过就忘。 写下来不仅加深你对它的理解, 也方便你日后自己再次翻阅, 我相信 肯定比你去各种搜索引擎搜索还不一定能搜到强很多把。
所以,当你读了足够多的优秀开源项目的时候,你写一些小组件也就没有你想象的那么难了。
那我真正转中间件做基础建设是在上一家公司。
那时候我是带着乘客端业务组。
公司的某些基础建设不是非常完善, 我就跟领导说要不我来写个小组件吧, 提高一下大家的开发效率。
然后领导同意了, 然后我花了 2 周的时间把这个玩意儿写了出来, 测试了一段时间就推广使用了。
后来 领导就让我专心做起了基础建设这么一件事情, 拉着其他几个同学一同参与进来。
比如开发了:多版本并行开发测试解决方案, 还有网关等等一些自研系统
到目前为止, 我还是更喜欢搞基础建设, 因为没有人凌晨会打电话叫你起来改 bug。(狗头)
开源之路
那么我后来怎么又走上了开源之路呢?
大家都知道,我现在是在滴滴云从事开源工作, 我是我们滴滴开源项目LogiKM 的 PMC .
做开源其实并不是偶然, 大部分我们现在用的中间件都是非常优秀的开源项目。
你经常做基础服务,那么你就会更多的去了解这些开源项目的底层原理, 看看源码什么的。
源码看多了 发现几个 Bug 就是自然而然的事情, 心情好就给他修复一下提一个 Pr。心情不好不了了之。
但是大部分的技术人员我相信都想在开源项目(特别是优秀的开源想)上留下自己的一点痕迹。
那我也不例外, 平时也会提一些 PR.
多参加 MEETUP
然后也会非常积极的去参与一些开源项目的 MEET UP ., 比如这 2 张图就是我去参加 SEATA 的照片
这个时候参与开源, 也仅仅是一个参与者 贡献者, 并没有很深度的参与。
真正深度参与 还是在滴滴做开源!
3、在滴滴专职做开源
其实来滴滴云之前, 我本来是要去另外一个云的。
后来我现在的老板 看到了我的博客, 然后看了我这么写年写的内容。
就得我很适合他们团队的这个工作, 一番沟通之后, 我就来了滴滴云, 做开源。
所以, 很多人问 写博客有没有用?
有用!他有可能让你获得一份合适的工作!我就是个例子。
以前是用爱发电, 偶尔给开源项目提提 PR. 现在专职做开源项目, 挺香的。
特意翻出来之前跟老板的聊天记录
在这里插入图片描述
在这里插入图片描述
滴滴开源项目
滴滴现在在开源项目上也是听看重的, 内部也鼓励并孵化一些开源项目。
我简单介绍一下我所开发的这个项目 LogiKM (现在更名为 KnowStream)
这是一款 Kafka 集群的运管平台, 可以让你很方便的管理你们公司的 Kafka 集群。并且还有很多原生 Kafka 没有的运维能力。技术栈是 Java SpringBoot 这一套
项目地址: LogiKM (现在更名为 KnowStream) https://github.com/didi/LogiKM
在这里插入图片描述
方便的管理公司的 Kafka 集群
在这里插入图片描述
Kafka 中所有的命令行转换成可视化的界面操作
在这里插入图片描述
高级运维
在这里插入图片描述
比如 Kafka 数据迁移操作在原生 kafka 上做起来比较复杂,在我们这个开源项目上可以一键自动化的帮你完成你的操作。而且还会自动监测异常。
监控可视化
在这里插入图片描述
来跟我们一起参与开源项目吧
可能会有很多人觉得,自己技术能力不够,还达不到参与开源项目的水平.
其实吧大可不必,开源项目没有想象的那么神秘, 况且你提交 PR 人家还是 review 的。
也会给你一些修改意见, 这也可以侧面的提升你的编程能力。
还有一个重要的好处就是:给你的简历增加一个亮点。
XXContribuer XXCommiter XXPMC 的 title 至少能够让面试官另眼相看吧。
我们这个项目在 7 月份应该会上线一个新的版本 LogiKM (现在更名为 KnowStreaming)
如果大家有兴趣的话可以跟我们一起来完善它, 多多提交 PR, 我来给大家合并代码。
如果你还没有参与过开源项目, 那么就从 LogiKM (现在更名为 KnowStreaming) 开始吧!
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/c887239220a7794165cd99881】。未经作者许可,禁止转载。
评论