Wu Sheng, the first Chinese director of Apache: lazy learning in open source


In April 2019, the Apache Software Foundation announced that Apache skywalking (hereinafter referred to as “skywalking”) graduated and became the top project of Apache. In March 2021, Wu Sheng, founder of Apache skywalking, was successfully elected as a director of Apache Software Foundation and became the first Chinese member of Apache’s board of directors. At present, more than 100 companies have publicly announced that they are using skywalking, and more than 550 source code contributors from hundreds of companies are active in the skywalking community.

In December, Tengyuan club was honored to invite Wu Sheng to join as a mentor of Tengyuan club, trying to talk about his open source ideas and best practices. In this interview, although we talk about his “laziness” in open source, we actually convey his most valuable practical methodology based on skywalking project and community operation in recent years, as well as his most profound concept and knowledge of open source community management.

Wu Sheng, the first Chinese director of Apache: lazy learning in open source

Laziness is the source of creativity

I like the word “lazy” very much. Because in my opinion, “laziness” is actually the source of a lot of creativity. Because “laziness” has to walk, someone invented the car; Because “lazy” to write, so someone invented voice; It is because many things are “inconvenient” that we are prompted to solve problems.

I think I should only work 8 hours a day, or even less, but it’s best to earn the same or even more money. This is the preset condition for me to do everything. So I hope I can create more value with the least time. Because first, the body is your own. Second, you can only be creative when you rest, but it’s hard to be creative when you work.

“Lazy” learning move 1: make the project highly modular

Many open source teams will encounter a problem when doing community operation. Although there are many project users, there are very few people who are really willing to contribute to the community in the end.

This problem needs us to look at and reflect from two aspects. First of all, we should understand that human consciousness needs to be cultivated. Anyone who uses your open source project will not have the awareness of “I want to contribute code to you” at the beginning, because his secondary development based on this project may only be for the service of the company, so this does not encourage him to have the idea of feeding the community.

However, as the core personnel of the project, there are two things we must do: the first is at the technical level. You need to examine whether your project is suitable for contribution. Now many projects are relatively “cohesive” in design. When one line of code in the project is changed, it may affect the code and logic of the whole project. This means that users should consider all the needs of all users in the community before changing anywhere in the project. Therefore, unless he is a professional developer, it is impossible to consider completely, which will raise the threshold of project contribution to some extent.

Therefore, it can be seen that whether it is Linux, istio or skywalking, there is a great feature: when the project is “highly modular”, the contributors will begin to increase sharply.

The vast majority of good open source software has been well designed and has a large number of modular design ideas to ensure that the project will not affect other regions when modifying the implementation of one region. This has very high design and technical requirements for the original creators and project personnel of the project.

It is not what we want to see that the project can develop as long as the core co builders have. Although we know that the project can be applied to many different scenarios in the future, we will only do a good job in one scenario, open the interface and reserve space for other developers to innovate and expand. This requires the core co builders to constantly examine the whole industry and maintain the foresight of the project. Some project creators will be more committed to realizing the functions of the project without providing space for other developers to innovate and expand, which will lead to further maintenance and modification by themselves.

At present, skywalking has entered a stage where I don’t need to supervise it and let it run by itself. We have established a complete set of code module specifications, automatic inspection and automatic testing of various scales for it to ensure that it will not combine any unexpected code, and almost every submitted code can be used for production services. So that’s why skywalking only needs 2-3 review codes to operate this huge and complex community.

Wu Sheng, the first Chinese director of Apache: lazy learning in open source
Note: introduction to Apache skywalking project

“Lazy” learning move 2:
Project contributors “forced” out

Some people always say that China’s open source environment is not good. In my opinion, it is because many open source projects in China serve everyone very well.

At present, skywalking hardly provides too much technical support to users in the open source community. We believe that skywalking has provided developers with enough project documents to support them to understand the project, solve problems and further expand and develop it. Unless the problem has affected the original function of the project, we may provide more positive help.

If you are in skywalking community, no matter QQ group or other channels, our defenders (including myself) rarely answer all kinds of questions from the community. We believe that the document has been given to the user. If he wants the report, he will go through the normal channel. However, even if the report contains some real problems, it does not mean that the community will help to repair them.

If we think that the problem fed back by users does affect the function of the project itself, I may be relatively positive to help, but if it is a weak correlation or irrelevant problem, I may not care whether it is a bug at all.

This is the principle that we have always followed in North American companies. We spend our energy on open source projects in order to better serve commercial companies. The time spent in the open source community is more in my spare time after work.

When I look at it in this way, I don’t care whether others will like this open source software, because I don’t have the responsibility and need to spend my time solving all the problems I encounter, which is not the scope of business services in itself.

In fact, China is enjoying the services of the world’s best open source projects, even more than commercial projects, but the skywalking community will not do so. In the long run, in fact, this will do great harm to the “co construction” of open source projects. Because to some extent, community contributors need to be “forced” out. When the project does not provide other technical support, your only choice is to contribute or endure.

“Lazy” learning move 3:
“The Best Thing as the Perfect
Founder is Disappear
and Enjoy My Vacation”

I think good managers must learn to delegate power, especially in the open source community. A very important thing for open source projects is whether you can transfer ownership and share.

Every large-scale open source project is not a personal open source project. As the founder of the project, maybe you can permanently enjoy the title of “founder” of the project. You are honored for this title and glad to have created a project that can be used by everyone, but that’s all. What your open source project can do today and tomorrow, and whether it can survive in ten years, all depends on the rest of the community.

Therefore, as the founder of the project, I can take a vacation and disappear from the project for a short time. At least I don’t have to deal with the daily review in the community. You may find that I may be very active and will go back. That’s because I have time, but it doesn’t mean I have to go back. There are more than 30 subprojects in skywalking. Different people are reviewing, and different PMC are managing these subprojects and the external integration of these subprojects.

There are many projects in China. I hope you can contribute, but I think in my heart that I don’t want to let you do this program. Most of the reasons come from “I don’t want to hand over the control of the code”.
In essence, this is indeed a very difficult psychological process, because our growing environment has made us form an invisible “subconscious”. If you are the leader, you has the final say, the following people do not have the decision-making power. However, if the open source community does not build the concept of equality for all, does not release its ownership, and releases the ownership of the code, it is difficult to mobilize everyone’s initiative.

In addition, for early projects, the first question you need to think about is who needs you, not what you want to do.

This boundary is actually very clear, but it may be a tangle for many people. What do you want to do? Maybe you have a technical plan in mind. But if you don’t just aim at entertainment, but really want more people to use your open source project, you need to figure out the positioning of your project at the beginning of the project, what problems it needs to solve, see what others need you to be, and think about the commonalities of the current industry. Whether your projects have something in common will determine whether you can go to a certain height in the future.

After figuring out these issues, you need to set a clear goal for the project. Each version iteration is to do different things around the different objectives of the project in different periods, so each small version number has a clear goal. Through constant trial and error and updating the version, it can be further improved. This requires you to be prepared for time, because the well-known good projects are slowly boiled out after many years of iteration.

In addition, one of the reasons why skywalking is easy to go to sea is through the introduction of friends. As for “going out”, for me or the project, rather than asking me to hire many people to operate, I prefer to let several core contributors of the project maintain a very strong social ability and be able to communicate and communicate with more people, so that the project can really bring the project out, rather than relying solely on their own strength.

Highlights of QA playback

Q: Before 2017, skywalking may not be an open source project that can ignite popularity, but it has been applied on a large scale today. What is the critical point of breakthrough? Why?

Until 2017, skywalking was just a toy. So 2017 is the critical time for it to break through.

We officially decided to do this at the GOPs conference in 2017. At that time, the version number was 3.2.6, which is still far from today. However, in today’s view, 3.2.6 is the first time that we decided to let skywalking run in production. After 3.2.6, we decided to adopt many designs previously only used in the business environment to turn it into an APM product really suitable for operation and maintenance.

Therefore, skywalking has been popular and widely used since 2017-2019, so it took nearly 4-5 years from the first line of code to the project. What you see is an exponential distribution. On the contrary, it is the least important time point from 2019 to now, because it is a normal communication effect.

When a critical point is reached, it is a normal propagation effect, just fast or slow, that’s all.

Q: Skywalking took only a year and a half from entering Apache to graduating as a top project. What are the criteria for Apache top projects? What did skywalking experience in that year and a half?

In fact, the root of this problem is your understanding of your project team, or you need to know what a healthy open source project is.

In fact, there are many projects in the Apache foundation, which do not necessarily have a large community or have a lot of participation. Now there are about 300 top-level projects, and the vast majority of Chinese people may not even have heard of them. Then there may be only three or five people in some projects, which is very normal.

In my opinion, top open source projects are not equal to how hot and how high the number of stars is. Instead:

First, as mentioned above, it is necessary to create a fair environment. It should not be a company or someone who controls the project. If you want to control an open source project, you should open source in the company. There is no need to put it into the foundation.

Second, can you recognize your developers very well? When they have made great contributions to the project, can you attract them in and give them the power to submit and review the code submitted by others.

Third, can you build a basically benign community, where some people contribute, some propose code, some propose and others use it.

Finally, whether the intellectual property rights of your project are clear or not may be the most difficult thing, because many open source projects are not completely written by yourself, and there will be a large number of component level dependencies. The key is whether you use these dependencies reasonably and in compliance, which will be strictly reviewed by the foundation.
Guest introduction: Wu Sheng, the first Chinese director of Apache Software Foundation, founder of skywalking of open source APM project, distributed tracking and diagnosis technology expert, and ashes open source community enthusiast. He has successively engaged in technical work in Datang software, CICA China and Huawei; In May 2018, he joined tetrate, a foreign enterprise of to-b hybrid cloud, and became the founding engineer of the company.

WEOPEN is an open community established by Tencent cloud that gathers open source projects, open source enthusiasts and open source leaders. It is committed to helping open source projects grow healthily, open source enthusiasts can communicate and assist, and open source leaders can give play to their leadership value, so as to make the global open source ecology more prosperous.

Wu Sheng, the first Chinese director of Apache: lazy learning in open source