
來源|
阿裡巴巴雲原生公衆号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