Every step we take, will leave a mark, the more solid, the more clear.

Recently, Apache Software Foundation (ASF) official Blog announced that 40 new Apache members worldwide, and Zhang Huxing was honored to be one of them.

At present, there are 771 ASF members in the world, and only 13 in China. This article will share the author’s feelings along the way from zero-based open source xiaobai, hoping to share his experience during this period, so that more people can see China’s power on the world open source stage. As long as there is continuous pay, there will be a harvest.

First participation in Open Source

In 2014, I joined alibaba middleware team and began to take over the maintenance of application containers of the group. At that time, the majority of the group’s application containers were jBog-based, old and unmaintained, while a small number ran on top of Jetty and Tomcat. At that time, the middleware team maintained a private branch of Tomcat, with the biggest goal of unifying all the group’s application containers as Tomcat. Before that, I had never been in touch with the development and operation of Tomcat, which was a big challenge for me. The bigger challenge, however, came from what seemed at the time an almost impossible goal set by the team leader: becoming a committer for Apache Tomcat.

As one of the core projects of Apache, Tomcat has been the star project of the open source and Apache Foundation since the first version was released in 1999. It still holds the first market share in the field of application container. After 20 years of development, it is still hot. After all these years of Tomcat development, there has never been a Committer from China. With a small team of four people, we had no open source experience and no idea where to start. When the team leader asked us who was willing to take the challenge, I took it without thinking much.

So I began my own Apache open source journey.

To be honest, I didn’t have much idea at the beginning, so I started to repeatedly browse the Tomcat website, hoping to find some useful information. Almost all Apache projects have new user guides on how to get involved in the open source project, and Tomcat is no exception. Soon, I started to fix bugs. The first patch was to fix a Websocket test case failure, which involved some refactoring of the code.

I still remember that I was very cautious before submitting it. After many discussions with the leader, a satisfactory plan was finally formed. After I submitted it to the Tomcat community, it didn’t take long for the community to respond and incorporate the patches I submitted. The first time I submitted it, I was very happy and my nerves were relieved. I was really happy to see my name appeared in Tomcat’s release note.

Apache Roadshow China

In October 2015, I had the honor to participate in the Apache Roadshow China in Beijing, which was the first time I had close contact with the Apache Foundation. In the conference, I witnessed the speeches of Brett Porter, the then chairman of Apache Foundation, Niclas Hedhman, the vice president of Apache Foundation, and some of them in Panel Disussion. And several Apache members from China to discuss the community-led development process.

I felt very far away from them.

In 2015, the Apache community in China was almost exclusively Chinese working for foreign companies. And now look, the degree that domestic company participates in open source already had remarkable promotion. I was lucky to have some communication with Niclas Heldman during the road show in China. I asked him a question:

“I’m participating in the Tomcat community. How do I become a Committer?”

He gave me some advice that still sticks with me: get involved in community discussions, start with simple novice tasks, fix bugs, and get involved in release Voting. All these years later, the advice still applies.

Tomcat Committer

Having tasted the rewards of contributing, the team’s goals have been adjusted. The internal version of Tomcat and the open source version have exactly the same structure:

Making it easy to incorporate open source Apache Tomcat;

Internal enhancements also make it easier to incorporate into the community.

Subsequent contributions to the community mainly come from the following three aspects:

First: Ariane uses Tomcat to fix the problems encountered in large-scale and high-concurrency scenarios.

Typically, the wireless gateway application at that time adopted the architecture of Tomcat NIO+AsyncServlet. As an entry application, Tomcat once had a big failure due to the abnormality of high concurrency. Later, we spent a lot of energy to troubleshoot this problem and finally repaired the problem completely. The detailed investigation process is recorded in “Flash Flood, Tomcat Bug Triggered by High Traffic and Cluster Crash” in the book “Against the Current – Alibaba’s Technological Growth Road”. The fix was also submitted to the Tomcat community. Although the change was not big, it gathered a lot of effort from the team.

Second, fix the problems encountered when Tomcat was rolled out in Ali in a large area.

For example, some behaviors that do not conform to the Servlet specification were found, including some optimizations for Singles Day, parallel class loading, and so on.

Third, actively participate in the open source community to fix some of the ongoing problems.

After more than a year of continuous contributions, on August 23, 2016, on a weekday morning, I opened my email and found a letter from Mark Thomas, a member of the Java EE specification expert Group and core Developer of the Tomcat community, who was then on the Board of the Apache Foundation. Invited me to become a Tomcat Committer. The moment I opened the email, I felt my heart was trembling and my excitement was a little out of control. At that time really beyond their own expectations, did not think of the dream of that day really will come.

Tomcat PMC Member

Being a Committer, with the ability to commit code directly, actually means more responsibility.

In that year, Tomcat had become the standard of Alibaba’s internal application containers, and the scale of the cluster was the world’s leading. I did not stop contributing to the community until 2017. ApacheCon North America Conference will be held in Miami, USA in May. When I received the “Call for Participation” email, I suddenly had an idea:

Why not share with ApacheCon the challenges faced by Alibaba in the context of large-scale high concurrency?

Every year, ApacheCon will basically hold a special “TomcatCon” for Tomcat. I had never shared my experience in a foreign conference before, and I had no idea whether it would be accepted by the conference. Therefore, I submitted the proposal with anxiety and without much confidence. It wasn’t until March of that year that I received an email informing me that my proposal had been accepted by the ApacheCon conference that it was a great feeling to be recognized.

At the conference in May, I had the opportunity to meet a group of developers that I had never met in the community, such as Mark Thomas from the UK, Christopher Schultz from the US, Jean-Frederic Clere from France, and so on. They are all leading experts in the Tomcat community, some of whom have been contributing to the Tomcat community for more than 10 years.

Different from the impression that they were very frank and even stern when discussing problems in previous emails, they were very kind and silently supported me on the day of the speech. The speech was very successful, and I felt very proud to let the world see the efforts made by a Chinese enterprise in contributing to the Tomcat community.

At the dinner party on the second day of the speech, the atmosphere was relaxed. The lightning speech was going on on the stage. Mark came to me with a beer and said that he wanted to invite me to be a Tomcat PMC Member. Gosh, I didn’t expect to be in the same position as the gods in front of me, so I accepted it happily.

Become attached to Dubbo

In 2017, Ali restarted the open source maintenance of Dubbo, and the team took on this important mission.

After Dubbo stopped working, many users in the community had to fork and maintain themselves. After restarting maintenance, the question to ponder is whether the community might have similar concerns. Therefore, the team decided to donate Dubbo to the Apache Software Foundation, hoping to overcome developers’ concerns through the Apache ethos of “community over code,” “transparency,” and “consensus decision making.”

Having been involved in the Apache community for several years, I naturally took it upon myself to help Dubbo get into the Apache Foundation incubation process, from contacting mentors to revising proposals, and finally, Dubbo passed the Apache Incubator community vote and was officially incubated. It was New Year’s Eve of 2017, and AS I sat at my computer at home and emailed the official results, I thought, this is going to be a day to remember.

Being incubated in Apache incubator is just like a prodigal son running around in rivers and rivers for many years. Suddenly, he wants to settle down and start studying. Naturally, there will be many rules step by step, and there will also be a lot of cultural and ideological conflicts. I started thinking about how I could help Dubbo better practice the Apache way, and there was a lot that needed to be done.

The difference between Dubbo and other projects is that before joining Apache, Dubbo was already a huge project with tens of thousands of stars, a huge community and a large number of domestic applications. The emails sent by the community’s daily activities would make tutors feel confused and almost impossible to read.

Getting the giant to follow the Apache path was a big challenge.

A good example is when the community is asking: “Should the issue be discussed on a mailing list or on a Github issue?”

Dubbo users are used to talking on Github Issue, but Mark, one of the mentors, points out that mailing lists are still the most ubiquitous communication tool on the planet. Because there are still some countries in the world, in some circumstances, the Internet speed may only be tens of K /s, or even dial up.

Having a discussion on Github would be disastrous for those who want to participate in the community in a poorly networked environment. Maybe we can give up those users, but that’s not Apache’s value. There are many similar examples. I regret not having written them all down in time and will try to share them in another article.

The first release was an important milestone in the incubation process. In my opinion, the significance of release is much greater than the work at the code level, including accurate License and copyright notice, codes and dependencies in line with specifications, accurate and consistent signatures, etc. Dubbo spent a lot of time preparing and fully documented the whole process. During the incubation process, seven different Release mangers took turns to take charge, ensuring that different people could complete the Release.

In the process of incubation, intellectual property clearance is also an important link. Apache has strict requirements for trademarks and licenses, and will carefully check each release. The most typical example is github.com/dubbo group. It seems normal to us, but from the Apache Foundation’s point of view, since the Dubbo trademark has been transferred to Apache, any use by a third party would constitute infringement and therefore is not allowed. The final solution is to empty all projects under this group, migrate some to Apache, and migrate some back to other groups.

There are many other issues, such as developing community PMC members/committers, hosting a Meetup that meets specifications, etc., to share in a separate article.

As Apache Member

On The eve of Dubbo’s graduation, one day, I opened my mailbox as usual and found a Invitation to join The Apache Software Foundation Membership lying there. I was pleasantly surprised. After I opened it, I found it was an email inviting me to become an Apache Member, which surprised me very much.

To be honest, I dreamed of becoming an Apache Member one day, but I didn’t expect that day to come so soon. Being an Apache Member means being one of the 771 members of Apache and legally becoming a shareholder of the Apache Foundation. But that doesn’t mean the end of contributions. Just like fighting monsters, when you pass the current level, you will encounter a bigger boss.

As an Apache Member, I was more detached from independent projects and focused on horizontal affairs at the foundation level. But I think the biggest significance of being a Member is that I am not alone on the road of open source, especially there are so many members from China, which further confirms that Chinese open source projects can perform better on the world stage.

After becoming a Member, we will help more Chinese open source software and developers to establish a wider and deeper connection with the world through the Apache Foundation. On the one hand, we will help expand the influence of The Apache Foundation in China and let more developers participate in the world’s top excellent open source projects. On the other hand, we should go out and help Chinese open source projects to be incubated by the Apache Foundation, so as to enhance the international influence of Chinese open source software. In fact, there are many excellent open source projects in China, but they lack a window to show to the world. I hope the Apache Foundation can serve as a bridge.

The author:

Zhang Huxing, community nickname ralf0131, nickname Wang Tao, Apache Member, Apache Dubbo PPMC Member, Apache Tomcat PMCMember, Alibaba technical expert, focusing on the field of large-scale distributed systems, RPC framework and micro services.


Author of this article: Middleware brother

The original link

This article is the original content of the cloud habitat community, shall not be reproduced without permission.