kl个人博客 首页>>架构/杂谈>>2023 KL的年终总结

2023 KL的年终总结

接 :《2020 KL的年终总结》


上一次写年总结还是在 2020 年,那会正是疫情爆发的一年,然后万万没想到,口罩一带就是 3年,已记不清什么时候才彻底和疫情拜拜。只记得有一天公司园区的围栏被拉走了,我漫无目的在在园区里乱走,享受自由。

回顾

新工作新挑战

是的,在接近年终快发年终奖的时间里,我闪辞了。可能很多人都有疑问,为什么不等拿完年终奖在走,为什么在凯京待了四年,做了这么多成绩却选择离开重新开始。这里面有非常多的个人考量,因为涉及到公司的一些信息所以不便说明。可以说明的一点是,我看中了心动TapTap的流量。在凯京虽然从事架构中间件的工作,但是因为业务偏toB的,一直以来中间件做的非常轻松顺利,技术也进入了一个内卷的状态。TapTap的流量能带来新的刺激和更多的挑战。心动和凯京都是非常优秀的公司。加入心动,和当初加入凯京一样,有非常多的机缘巧合,这里就不一一说了。新工作已两个月,已适应了这种开发节奏,希望自己在新的岗位上有新的成就,突破自己迎接新的挑战。还有希望可以推动一些项目的开源


也是在疫情爆发的那年,我跳到了现在的公司,回头看,算在正确的时间做了非常正确的选择。在过去两年里也践行着来新公司的前做的一些设想(面试的时候就奔着当时说正从 PHP 到 Java 到 GO 的改造过程,百废待兴有活搞)。完善 Java 基础组件、完善 Java 工程,完善 java 应用观测性、推进 JDK 升级 17、建设分布式链路追踪系统 opentelemetry、任务调度系统 xxljob、dolphinscheduler等等。感谢公司同事、领导的大力支持,相关项目推进的过程也很顺利。也实现了一些项目的开源,比如:

这个项目因为功能点聚焦,开源后也没怎么迭代,没想到,快3年了,截止现在这个项目在公司的开源组织的 star (120)数一直还是第一(主要整体没啥关注)。

在 2021 年的冬季,家里迎来了新的成员,我也荣升为爸爸。小家伙的到来给生活增添了很多的色彩。带小孩最辛苦,每个当家长的应该都深有体会,同时也有了当爸爸的快乐。

开源

开源早已是独立于工作和生活外的另外一部分。翻了翻 2017 至今的总结,发现每次都写了开源的事情,2023 年也发生了很多和开源相关的事情。

1、开源之夏

开源之夏是由中科院软件所“开源软件供应链点亮计划”发起面向全球高校学生并长期支持的一项暑期开源活动。今年举行第三年了。今年照例作为 Apollo 配置中心项目的导师,带领社区同学顺利完成了[非 properties 的配置支持灰度发布] 的功能模块,这个功能是我们公司以及社区呼声较高的功能,开发过程涉及比较老的 angularjs 技术,不得不感叹,现在的学生动手能力、学习能力是真的很强。

这个活动有活动奖金,项目完成后,导师固定 3000,学生按难易程度不同,有 8000~12000 不等的奖金。然后学生和导师都会颁发一个结项证书。

2、GLCC 编程夏令营

GitLink 编程夏令营(GLCC),是在 CCF 中国计算机学会指导下,由 CCF 开源发展委员会举办的面向全国高校学生的暑期编程活动。今年才发起的活动, kkFileView 应邀参加了这个活动,提了三个课题,1 个有奖金课题,奖金 6000,只面向学生,2 个无奖金课题。有奖金的课题比较受欢迎,完成率较高,就给了 kkFileView 社区里的伙伴来带。然后,顺利结项了 1 个有奖金课题、1 个无奖金课题,流产了一个无奖金课题。最后本人获评了优秀社区管理员、社区伙伴拿到了结项证书。

个人是比较鼓励学生多参加这些活动的,无论结果如何,你已经比别人更快的起跑了。

3、kk开源社区知识星球

早在两年前和社区伙伴讨论 kk开源项目的可持续发展问题时,提到可以创建一个知识付费的社群,通过这种方式来补贴开源项目发展迭代的运营开支(比如官网、CDN、演示站等的云资源费用),以及替换 QQ 群聊天形式的技术支持方式。这个事情一直拖到今年,2023 年初终于联合了 kk 社区里的两个核心代码贡献者,把【kk开源社区】这个知识星球给搭建起来了,截止目前已经有 768位付费成员。感谢这些慷慨解囊的社区伙伴对开源项目的支持。

kkFileView 项目也一如既往的活跃,加上最近要发布的的一个版本,23 年发布了三个大的版本更新,希望广大社区用户继续支持。

4、Apollo

作为 Apollo 配置中心开源项目的 PMC ,作为公司 Apollo 配置平台的 Owner ,今年把非常多的公司里遇到的问题,和社区对齐,并最后在社区里实现了。等相关功能在社区迭代完成发版后,又自然的会在公司落地。我觉得这种关系,是最最健康的工作和开源的关系,对多方都有益。感谢 Apollo 社区、公司的信任和支持。

5、Sentry

Sentry 是今年玩的最深入的一个开源项目。它是一个应用性能剖析、异常日志收集观测的平台,背靠 Clickhouse 解决大数据存储的问题。架构设计非常灵活,服务拆分的非常细,完整的部署一套可扩展的 Sentry ,至少需要 14+ 的服务,导致部署运维 Sentry 非常复杂。

来张图感受下 Sentry 的复杂。

Sentry 版本发布又非常快,一年至少 6 个大版本(我也贡献了 10+ 的 PR)。每次发版都是大变动。今年追更了一个版本后,在更新下一个版本就发现 Clickhouse 版本不兼容了,完全跟不上更新的节奏。

我们公司是 Sentry 的深度用户,年初算了一笔账,《Sentry 自建成本 VS Sentry-SaaS 服务成本》,自建资源月成本只需:11535¥,使用 Sentry 公司的 SaaS 服务月成本需要:18621$ 。这里必须得感谢下 Sentry 公司毫无保留的开源了 Sentry 这个商业级项目。

6、OSC 高手问答

曾受邀过录制技术视频教程、参与一些大会的演讲,都被我一一拒绝了。一是担心沉淀的不够讲不来、二是这种 1 对 N 的面对面的没有经验怕怯场了。然后今年有幸受邀参加 OSC 的线上的且离线的高手问答活动,感觉挺适合我的,就答应了下来,也非常认真的对待了。准备了一个和开源相关的问题

共互动了 19次,阅读 3k+ ,问了下 OSC的小编,说这个提问量属于中等偏上了。还是非常开心的。每个问题都尽心尽力的回答了,其中有些问题特别好,这里摘录一个:

Ericpoon 问:保持做开源项目的动力,会有哪些方面?

KL博主 答:这个问题可能个人各异,就我来说,做开源项目就好比读书时解数学题,能够带来非常多的成就感和满足感、荣誉感。比如:开源初期的时候,

每每解决一个 issue

或者看到用户 star 了

或者收到用户真挚的感谢反馈了

看到用户登记在公司生产环境使用了

想到我的代码在金融、教育、银行、政务、计算机、制造行业有应用,对社会产生巨大的价值了

这些时刻都非常有成就感。



7、23年把玩的一些新的开源项目

在 23年,因为工作关系,小试牛刀了下这些项目

  • OpenObserve :一个云原生可观测性平台,涵盖 log、trace、metrics 内容,目前只有日志存储较为成熟,其他的还在迭代中。
  • ClickVisual:一个基于 Clickhouse 存储的日志管理平台
  • pika(改名为 PikiwiDB):一个基于 RocksDB 实现的兼容 Redis 协议的开源项目

这些项目当前都只是在本地搭建了开发环境,跑了跑,给社区提了点实践过程中遇到的问题,并没在生产使用。也许后面会推上生产,欢迎社区里的朋友一起交流。


工作

关键词(努力工作,保持好奇心、自驱力、洞察力,抓住问题的本质)

今年的主要大目标是云资源管理优化,四个字概括:降本增效

降本总线概述

  • 后面有时间会系统系的梳理下降本的套路,这些套路是可以被复制落地的,价值很大

OSS

通过优化生命周期管理、清理无效数据、治理公网流量等优化措施,实现全年前三季度 OSS 实例费用降本 11万/月。

SLS

通过优化数据存储周期、数据采样上报、业务日志治理、索引创建治理、合理匹配存储类型等方式,实现全年 SLS 费用降本 27万/月。

Redis

通过切换低成本的 Redis ESSD 实例、实施流量压缩方案、清理无效数据、治理实例 TTL、下线无用实例等措施,自研了 Redis 流量复制&流量放大、Redis 数据迁移、Redis 数据在线压缩&解压缩、Redis 数据定向清理&定向指定TTL、Redis 扫描分析Key最后访问时间等工具辅助方案落地。实现全年 Redis 费用降本  46万/月。

其他支线

1、运维 xxl-job 、kafka-proxy 、kafka-mirror-maker 、nexus 、Otel 等基础设施,保障这些服务 100% 可用,并给开发使用提供技术支持

2、协助并保障 dolphinscheduler 任务调度系统迁移到 bj-k8s 集群,并从老的 1.3.1 升级到社区最新稳定版本 3.1.2 ,升级后带来了更方便使用的UI、更多的 workflow 调度支持,完善了 dolphinscheduler 可观测信息。

3、Apollo 配置中心运维,主要完成如下重点工作:

  • 集群高可用性增强,开启内存缓存,不强依赖DB存储, 配置获取接口延迟降到 1ms 内。
  • 作为社区 PMC , 参与社区 v2.1.0 版本发布。并将我们的 Apollo 版本从 2.0.1 升级到 2.1.0,升级后Tap 内部需求驱动的 namespace 项目 UI 加载提速 、OpenAPI 在线管理、系统配置在线管理等功能正式生产可用。
  • 作为社区 PMC, 提交 Tap 内部需求:历史发布记录清理策略、支持非 properties 的 ns 的灰度发布功能。顺利通过提案,并完成代码开发提交合并到社区。
  • 开发了 Apollo Proxy 应用,用于 CI 集成 Apollo ,节省了新应用申请 Apollo工单审核操作的时间。

4、Sentry APM 运维,主要完成如下重点工作

  • 推动Sentry 版本 22.10.0 升级到 22.12.0
  • 作为重点项目深入研究了 Sentry 的架构,向 Sentry 提交了 6个修复 PR 均合并到主仓
  • 下线了 6 个在 Tap 使用场景未实际工作的服务,节省了资源
  • 海外版本 Sentry Relay 部署,落地了国内、海外外部流量入口分离,内部分析、使用统一 的 Sentry 部署架构
  • 搭建 RND 环境的 Sentry 集群并交付给客户端开发使用,为了降低云成本,依赖的  Postgresql、RabbitMQ、Redis、Kafka、ClickHouse 等中间件均在 RND 自部署实现。
  • 重点支撑了客户端开发对 Sentry-apm 需求。

5、支撑 IEM 向量数据库选型,调研 Milvus 向量数据库,完成 Milvus 分布式集群部署,并输出性能压测报告。支援 XDSDK 性能压测优化,并输出性能优化建议报告


生活

有了孩子后,生活的主旋律就是陪伴孩子快乐成长,今年逛了N次公园,N 次商场的游乐场,这个只有带过娃的才懂。娃也慢慢开始说话了能交流了。收获了很多开心的瞬间,很多第一次,第一次走路,第一次爬爬爬。第一次自己上下床,第一次说话,第一次叫爸爸。

然后今年终于告别了疫情,去了千岛湖、普陀山,人生第一次看见大海。

最后祝家人身体健康,平平安安。


展望 2024

无 Flag ,平常心,继续热爱生活、工作

kl个人博客