say it up front

In 2022, when sailing and breaking the waves, a group of lovely Shufan colleagues will shine with love at work and outside of work.

Behind every little story, they show their constant exploration and pioneering power in digital technology and application practice.

Today is the second issue of the "Wavebreaker" column.


Invited to be the first and only Maintainer in the Envoy community in China, Wang Baiping, senior architect of NetEase Shufan, shared his experience in four years of open source contributions.

Envoy Maintainer is the owner of multiple technical fields of the Envoy project. He is responsible for the development direction and quality assurance of these fields. He is the core person of the project and needs to have a high sense of responsibility and sufficient technical sensitivity.

Guest profile: Wang Baiping, NetEase Shufan cloud native expert and senior architect, CNCF Envoy Maintainer, Hango/Slime Maintainer, Qingzhou API Gateway and Qingzhou Service Grid Data Plane, proficient in gateway, load balancing, service grid and other distributed Technical principles, familiar with Envoy and Istio, and rich experience in API gateway and service mesh implementation.

Screenshot of Wang Baiping's award

Under the wave of digitalization, cloud-native underlying core technologies tend to mature. According to the "Cloud Computing White Paper (2021)" of the China Academy of Information and Communications Technology, the adoption rate of domestic micro-service architecture will exceed 50% in 2020, service registration discovery and service proxy technologies have entered a mature stage, and as a new generation of micro-service architecture, service mesh ( Service Mesh), is also about to enter the integration period from the technological explosion period.

NetEase Shufan is a pioneer of cloud native applications in China, taking the lead in realizing the integration of classic microservice framework and service grid, service grid and API gateway, and also the integration of cloud native architecture and traditional industries such as finance and manufacturing. These integrations have also been recognized by the China Academy of Information and Communications Technology and leading customers in the banking and securities industries. Behind this result, the cloud native community technology and ecology continue to mature, and the NetEase Shufan cloud native team insists on participating in open source community contributions.

The Envoy mentioned in this article is the third graduation project of the Cloud Native Computing Foundation (CNCF). At present, the Qingzhou team has contributed 60+ PRs and more than 14,000+ new codes to the Envoy community, covering core functions such as Envoy's stateful session retention, enhanced tracing capabilities, Lua script support, and enhanced Dubbo governance capabilities .

Envoy (github.com/envoyproxy/envoy) is a high-performance data and service proxy open sourced by Lyft. It is known for its observability and high scalability. It can achieve functional expansion at all levels through the L3/L4/L7 plug-in mechanism, so as to provide The business builds flexible, easy-to-expand, stable and high-performance service meshes, API gateways and other infrastructures.

Recently, the Envoy community invited NetEase Shufan cloud native expert and senior architect Wang Baiping to become the community Maintainer - this is the first and only Envoy Maintainer in China, and also the Dubbo Extension Senior Maintainer, which shows the community's recognition of NetEase Shufan's continuous contribution. In this article, Xiaobian invited Wang Baiping to share his experience from participating in open source to growing into a well-known project maintainer.

The speaker is Wang Baiping

Getting to know Envoy: Contributions start with bugfixes

In 2019, NetEase's exploration of the application of service grid technology has reached a new stage. The second-generation service grid platform jointly built by NetEase Shufan and NetEase Yanxuan based on Istio has gradually taken shape. Wang Baiping joined NetEase Shufan at this time, engaged in and Data plane Envoy related work. Adhering to NetEase Shufan's open-source and open technical route, Wang Baiping has been following some developments in the Envoy community since then.

Since then, when the Qingzhou microservice platform adopted Envoy to implement the API gateway and service mesh, Wang Baiping accidentally discovered some small bugs in Envoy, and tried to contribute the fixes of these bugs to the Envoy open source community. Immediately accepted, it became a good start to his Envoy open source contribution.

High-frequency contribution: reduce internal branch maintenance costs

With the deepening of NetEase's Shufan cloud native practice, the Qingzhou microservice team has made more and more intrusive modifications to Envoy, and the cost of maintaining a separate internal Envoy branch has gradually increased. In order to avoid the growing differences between the follow-up and the community, and to better leverage the power of the community to evolve in the future, the team began to invest more energy into the open source community, abstracting and generalizing some of the internal enhancements, and then contributing to the open source community.

During the whole process, on the one hand, the technical accumulation of the Qingzhou microservice team and the understanding of Envoy have been greatly improved. Because the community has contributors from different regions of the world with different styles and habits, in order to ensure the long-term health of the project, in addition to the improvement of functions, the constraints and specifications of various coding are also much more detailed, so the code contributed to the Envoy community must be written in a It is more cautious, and the requirements are very high. Of course, many community leaders will help in the process. On the other hand, the Envoy community has also gained more vigorous support. The contribution of the Qingzhou team enables the advantages of the Envoy project to be fully utilized, and is more suitable for the needs of a large number of domestic Dubbo users.

"This is a win-win process." Wang Baiping said.

Becoming a Maintainer: Team Support is the Key

In 2021, under the guidance and encouragement of NetEase Group, NetEase Shufan's independent open source work has ushered in a small climax: on the one hand, four projects have been open sourced in one go in the cloud native field, including service mesh management based on Istio and Envoy Slime (github.com/slime-io/slime ) and cloud native API gateway Hango (github.com/hango-io/hango-gateway ); on the other hand, the Kyuubi project as a Spark ecosystem was included in the Apache Foundation incubator, Yan Qing, the head of Spark and Kyuubi, became an Apache Spark Committer and was selected as a Databricks Beacon. These achievements have been affirmed by the management.

In this context, Wang Baiping also set a small flag-hoping to become the Maintainer of the Envoy community in 2022. On the one hand, he explained to the community his willingness to become a Maintainer. On the other hand, in addition to creating PRs to contribute to the community, he started doing some PR reviews in areas he was more familiar with to help other contributors complete their PRs. "The open source community is really pure and simple," he said.

The hard work pays off, and Wang Baiping achieved his goal 8 months ahead of schedule. Talking about his feelings, he said:

Before I became a Maintainer, I thought that if I could become a Maintainer, it would definitely drive me crazy. In fact, happiness is indeed happy, but it is not so excited, it is just a sense of comfort that one's own efforts have been recognized.
Regarding the role of Envoy Maintainer, he said that there is not much difference in what he did before and after, including some reviews of related PRs in the daily community, answering questions, guiding new people, and making some new contributions. Of course, the responsibility is heavier. Because doing PR review and making contributions before is actually optional, but after becoming a Maintainer, you have related obligations.

Looking back at the reason why he can become an Envoy Maintainer, Wang Baiping gave three key factors:

The first is the support of the team. The role given by the team gave him more opportunities to study Envoy in depth, and also gave him full freedom to invest in the open source community. This is also the most critical factor.

The second is perseverance. Making open source contributions takes patience. Sometimes, because the reviewer is very busy, a PR may hang there for more than ten days, so it is necessary to adapt to this rhythm.

The third is that the Envoy community has provided great help. There are many big guys who carefully help review the plan and PR, and give suggestions for modification.

Talking about why domestic Envoy Maintainers are so rare, while the Istio community has more attention and domestic Maintainers, Wang Baiping thinks this is a normal thing. He explained that although the service mesh is very popular, most teams are still in the "use" stage for the data plane Envoy - Envoy has a complex design and is written in C++, which has more guaranteed performance, but in the per capita Golang cloud native The community is quite different and difficult to control, and with the help of Service Mesh or Istio (domestic Mesh is basically equivalent to Istio) encapsulation, you don't need to pay too much attention to the details of Envoy. This is actually a very important meaning of Istio's existence.

However, he also hopes that more and more Chinese will be able to participate in the Envoy community in the future. According to NetEase Shufan's experience, Envoy's in-depth practice in more businesses will inevitably put forward higher requirements for the technical team's ability to master the key basic components of Envoy, so as to ensure the team's understanding and effective control of the project, and maintain the cloud-native landing process. Microservice platform strongly supports business needs. For example, in some financial field scenarios, there will be requirements such as private protocol proxy or complex protocol conversion. If the team does not have sufficient control over the data plane, it is difficult to cover such requirements. Participating in the open source community is obviously the fastest way to learn and master Envoy.

Open source experience: don't be shy, just ping a few more times

For participating in open source community contributions, Wang Baiping summed up three general principles.
One is to remain humble. Because the field of technology is really a person outside the person, and there is a heaven outside the sky. A humble and sincere attitude makes it easier to get help from others.

The second is to keep learning. In a large open source community, due to the large number of modules and the very fine division of fields, it is difficult for one person to cover all the problems at the beginning. This requires participants to maintain the spirit of continuous learning, learn from each other's strengths, and grow gradually.
**
The third is to abide by the rules. **Any open source community has some basic norms. As a later participant in the community, you should respect the norms built by the predecessors of the community.

These principles can be learned slowly in the process of participating in the community. Wang Baiping believes that the most important thing is actually the first step, which is to take the initiative to participate.

It is good to raise issues and suggestions, to review auxiliary code, or to make the simplest contributions. Taking the first step in a journey of a thousand miles is the most important thing.
As far as Envoy is concerned, the community is still very friendly to newcomers, and everyone will be very enthusiastic to provide the help newcomers need. Of course, considering that many community members are not working on open source full-time, Envoy is a project initiated by a foreign team, and it is normal for the communication time to be out of sync, so there may be some delayed responses. "Don't be shy, just ping a few more times." Wang Baiping said.

So, in the case of participating in open source part-time, commercial customer projects are heavy, how can we achieve the desired results? In this regard, Wang Baiping's answer is still to take the first step and stick to it. He said that, first of all, as a commercialization team, ensuring customer project tasks is always the first priority . Secondly, it is best to assume that some points of value for open source can be extracted from the project tasks. Moreover, compared to the assault-style open source, the long-term flow and perseverance may be more valuable. In the end, the beginning of everything is difficult, although the middle is also difficult, and the end is also difficult, but the beginning is especially difficult. Take the first step first, then stick to it, and with proper publicity, there will be a good result.

Talking about the team's own open source projects, Wang Baiping said that he hopes that Slime can become an indispensable standard component for the implementation of service grids, and that Hango can become a leader in the field of open source cloud native gateways. Of course, these projects are still newcomers in the open source field, and more things need to be accumulated and accumulated, as well as more opinions from users and the community itself.

He also realizes that projects like Envoy are likely not replicable.

For me personally, as long as our open source project can bring value to some users or community members, and at the same time can bring positive feedback to the team, it is considered a success, and the road can be taken slowly.

Recognition from authorities and top customers, as well as from the Envoy community, convinced the team that it was on the right path.

Related Links:

Introduction to Hango Rider, NetEase's Open Source Envoy Enterprise Custom Extension Framework

Envoy architecture and its implementation in NetEase Shufan

NetEase Shufan's Envoy-based Cloud Native Gateway Practice

How to build a high-performance cloud-native microservice gateway based on open source Envoy

Hango Open Source Interpretation: Cloud Native Gateway Practice, Why Choose Envoy?

Cloud Native API Gateway - Open Source Project Hango Gateway Design and Practice

NetEase Open Source Slime: Make Istio Service Mesh More Efficient and Smart

Istio1.5 & Envoy data plane WASM practice

Envoy project address: https://github.com/envoyproxy/envoy

Slime project address: https://github.com/slime-io/slime

Hango project address: https://github.com/hango-io/hango-gateway


网易数帆
391 声望550 粉丝

网易数智旗下全链路大数据生产力平台,聚焦全链路数据开发、治理及分析,为企业量身打造稳定、可控、创新的数据生产力平台,服务“看数”、“管数”、“用数”等业务场景,盘活数据资产,释放数据价值。