来源|
阿里巴巴云原生公众号Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统自适应保护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的 双11 大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器,原生支持 Java/Go/C++ 等多种语言,并且提供 Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防护的能力。
2020 年年初,Sentinel 社区宣布了 Sentinel Go 版本的发布,为 Go 语言的微服务和基础组件提供高可用防护和容错能力的原生支持,标志着 Sentinel 朝着多元化与云原生迈出了新的一步。在这半年的时间内,社区推出了近 10 个版本,逐步对齐了核心高可用防护和容错能力,同时也在不断扩充开源生态,与 dubbo-go、蚂蚁 MOSN 等开源社区进行共建。
11 月,Sentinel Go 1.0 GA 版本正式发布,标志着 Go 版本正式进入生产可用阶段。详情请看:
《阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳》。
Meet new Sentinel Go committers
可喜的是,社区在 11 月迎来了三位新 committer。接下来,我们一起来认识下这三位新 committer。
1. 是什么契机让你了解到 sentinel 的?
之前在阿里实习过,对 Sentinel 原本有过一些接触。工作中有一些流控需求,就深入调研过 Sentinel,慢慢的开始和Sentinel开源负责人宿何一起共创 Sentinel Go 这个项目。
工作项目中需要实现熔断限流相关的功能,就调研了许多相关的开源项目,最终发现基于 sentinel-golang 开发是最合适的。为了对 sentinel-golang 有更深的理解和更好的把控,就开始深度阅读 sentinel-golang 源码,并加入 sentinel 社区与小伙伴们进行深度交流。
在参与 nacos-sdk-go 项目开发时,了解到 sentienl-golang。另外有计划使用 Nacos 作为外部动态数据源,就参与进来贡献了。
2. 参与到 sentinel 的开源贡献是什么样的体验?
Sentinel 开源社区是一个非常开放,包容,活跃的社区。在这里可以认识很多的牛人,学习分布式系统高可用流量防护的大量实践经验。在这里任何想法和优秀的设计,都可以和社区核心成员一起讨论并且落地。
非常幸运能参与到 Sentinel 的开源贡献,在参与的过程中,收获很多。首先认识了很多牛人,获得了很多难得的交流机会;其次,在贡献代码的过程中,进一步加深了对 Sentinel 项目设计与实现的理解;还有就是利用业余时间参与贡献,让自己的业余时间更加充实。
首先觉得氛围很好,社区大佬 @宿何 和 @louyuting 等等都很热情会非常及时的解答每一个问题。其次觉得社区非常专业,可以和很多小伙伴进行深度交流,参与贡献的过程中会学习到很多知识,对 Sentinel 的设计理念有了更深层次的理解。
3. 支撑你持续贡献 Sentinel 最大的动力是什么?
Sentinel Go 这个项目我算是第一行代码的 Contributor,一路走过来慢慢跟随着项目的成长。整个过程能够看到项目不断的完善成长,也支持了社区里面一些公司的实际需求。对我而言,一方面是个人的成长,自己主导的 Sentinel Go 里面的一些核心设计能够落地,看到自己做的产品能够真正影响到一些人一些公司,产生实际的价值。另外与一些其余社区比如 dubbogo、mosn 社区,以及社区里面的一些公司合作,能够看到 Sentinel Go 能真正帮助他们解决微服务在高可用流量防护方面的一些痛点,非常有成就感。
最大的动力就是希望实现个人与 sentinel 的共同成长。每次自己的代码被合并,对自己是个很大的鼓舞,促使自己继续努力、继续提升自我。也希望通过个人微薄的贡献,能使 sentinel 发展地越来越好,能帮助到越来越多的人或项目。最让我有成就感的是自己主动挖掘到了项目中可改进和可优化的点,并且最终完成相应的代码贡献。我认为能够给在一个优秀的开源项目中发现问题并解决问题,是对个人能力一个很好的证明,所以会让我很有成就感。
最大的动力应该就是对于开源社区的热情吧,以及希望在贡献的过程中与 sentinel 一起成长。在 sentinel 这样的优秀产品中留下自己贡献代码的足迹是非常有意义的事情。从加入社区开始到 sentinel-golang 的 v1.0.0 发布,在这个过程中学习到很多,不断的挑战自己,看着 sentinel-golang 成长很有成就感。
4. 贡献中遇到最大的挑战是什么?
项目前期对一些高可用流量防护的实际场景理解的不够充分,一些核心设计上考虑的可能不够全面。不过整个社区都比较活跃,和一些社区核心成员沟通交流逐渐加深了对一些业务场景理解。
前期由于对整个项目熟悉度还不够,贡献代码时,可能仅考虑到一个表面的点,更深层次的东西可能考虑不到。不过,令人欣慰的是社区氛围比较好,在社区成员的帮助下,自己也逐步的对整个项目熟悉起来了。
最大的挑战也许就是第一次给 sentinel 提交 PR 的时候了。因为刚开始不太熟悉项目 PR 改了很多次。最后多亏 @louyuting 大神耐心指教。
5. 还有在参与 Spring Cloud Alibaba 全家桶中的其他开源项目的贡献吗?
主要会参与一些 Sentinel Go 与 Dubbo Go 融合的相关事情。
目前还没有参与其他的项目,后续有机会的话想参一下 Dubbo Go 项目。
目前也有参与 Nacos 项目。
How to contribute
- 欢迎各位开发者前往 sentinel go 社区和 committer 们直接交流: https://github.com/alibaba/sentinel-golang
- 如果你也想成为 sentinel contributor,不妨从 good first issues 开始: https://github.com/alibaba/sentinel-golang/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
- How to contribute to Sentinel?: https://github.com/alibaba/sentinel-golang/blob/master/CONTRIBUTING.md