Source | alibaba cloud native public number

Sentinel is an open source flow control component of Alibaba that is oriented to distributed service architecture. It mainly takes traffic as the entry point and helps developers guarantee the stability of micro-services from multiple dimensions such as flow limiting, traffic shaping, fuse downgrading and system adaptive protection. Sentinel has undertaken the core scenarios of alibaba’s double 11 traffic promotion in the past 10 years, such as second kill, cold start, message peak cutting and valley filling, cluster flow control, real-time fusing of downstream unavailable services, etc. Sentinel is a powerful tool to ensure the high availability of micro services. It supports Java, Go, C++ and other languages. Istio/Envoy global flow control support is also provided to provide high availability protection for the Service Mesh.

In early 2020, the Sentinel community announced the release of Sentinel Go, which provides native support for the highly available protection and fault tolerance capabilities of the Go language’s microservices and basic components, marking a new step towards the diversification and cloud native of Sentinel. In the past six months, the community has launched nearly 10 versions, gradually aligned with the core high availability protection and fault tolerance capabilities, and continuously expanded the open source ecosystem, co-built with dubbo-Go, Ant MOSN and other open source communities.

Sentinel Go version 1.0 GA was released in November, marking the start of production availability of the Go version. For details, please see: Sentinel Go, the same type of flow control downgrade component of Alibaba Double 11, is officially GA, helping the stable and stable cloud native service.

Meet new Sentinel Go committers

Happily, the community welcomed three new committers in November. Let’s meet three new committers.

1. How did you learn about Sentinel?

I had some experience with Sentinel from my internship at Ali. I had some flow control requirements in my work, so I made in-depth research on Sentinel. Gradually, I started to co-create Sentinel Go project with Chu He, head of Sentinel open source.

In order to implement fuse-current limiting functions in my work project, I investigated many related open source projects and found that sentinel-Golang development was the most suitable one. In order to have a deeper understanding and better control of Sentinel-Golang, I began to read the sentinel-Golang source code in depth, and joined the Sentinel community to have in-depth communication with friends.

I learned about Sentienl-Golang when PARTICIPATING in the development of nacos-SDK-Go project. There are also plans to contribute using Nacos as an external dynamic data source.

2. What is it like to participate in sentinel’s open source contribution?

Sentinel Open Source community is a very open, inclusive, active community. Here you can meet a lot of people, learn a lot of practical experience in distributed system high availability traffic protection. It’s a place where ideas and good design can be discussed and implemented with core community members.

I am very fortunate to be a part of Sentinel’s open source contribution, and have learned a lot in the process. First of all, I got to know a lot of great people and got a lot of rare communication opportunities. Secondly, in the process of contributing code, the understanding of Sentinel project design and implementation was further deepened. There is also the use of spare time to participate in contributions, so that their spare time more substantial.

First of all, I think the atmosphere is very good. The community leaders @Suhe and @Louyuting are very enthusiastic and will answer every question in time. Secondly, I feel that the community is very professional, and I can have in-depth communication with many friends. During the process of participating in the contribution, I will learn a lot of knowledge and have a deeper understanding of the design concept of Sentinel.

3. What is your biggest motivation for continuing to contribute to Sentinel?

I was the Contributor for the first line of code of Sentinel Go project, and gradually followed the growth of the project. Throughout the process, the project continued to improve and grow, and supported the actual needs of some companies in the community. For me, on the one hand, it is personal growth. Some of the core designs of Sentinel Go, which I lead, can be implemented, and I can see that the products I make can really affect some people and some companies, and generate real value. Working with other communities like Dubbogo, MOSN, and other companies in the community, it’s been very rewarding to see how Sentinel Go can really help them solve some of the pain points of hRA protection for inservers.

The biggest motivation was the desire to grow both personally and sentinel. Every time my code is merged, it gives me a big boost to keep working and keep improving myself. It is also hoped that through my humble contribution, Sentinel will become better and better and help more and more people or projects. What gives me the greatest sense of achievement is that I have actively explored the points that can be improved and optimized in the project, and finally completed the corresponding code contribution. I think being able to identify and solve problems in a good open source project is a good testament to my ability, so it gives me a great sense of accomplishment.

The biggest motivation is the passion for the open source community and the desire to grow with Sentinel in the process of contributing. It’s meaningful to leave your own code footprint on a great product like Sentinel. From joining the community to the release of Sentinel-Golang v1.0.0, I’ve learned a lot in the process, constantly challenged myself and felt a sense of accomplishment watching Sentinel-Golang grow.

4. What was the biggest challenge to your contribution?

In the early stage of the project, some practical scenarios of high availability traffic protection were not fully understood, and some core design considerations may not be comprehensive enough. However, the whole community was active, and communication with some core members of the community gradually deepened my understanding of some business scenarios.

In the early stage, due to the lack of familiarity with the whole project, when contributing code, only a superficial point may be considered, while deeper things may not be considered. However, thankfully, the community atmosphere was good, and with the help of community members, I gradually became familiar with the whole project.

Perhaps the biggest challenge was submitting a PR for Sentinel for the first time. Because I was not familiar with the project at the beginning, the PR changed many times. Finally, thanks to @louyuting’s patient advice.

5. Do you have any contributions to other open source projects in Spring Cloud Alibaba?

I will be involved in the integration of Sentinel Go and Dubbo Go.

Currently, I have not participated in other projects. I would like to participate in the Dubbo Go project if THERE is an opportunity in the future.

Currently participating in Nacos projects.

How to contribute

  • Developers are welcome to visit the Sentinel Go community and speak directly to committers: github.com/alibaba/sen…

  • If you also want to become a Sentinel contributor, start with Good First Issues: github.com/alibaba/sen…

  • How to contribute to Sentinel? : github.com/alibaba/sen…