The author |, Zhao Yuying north latitude

**2008, Dubbo project was born; In 2014, Dubbo stopped updating due to internal team changes; In 2017, Norwich led a team that reawakened Dubbo and donated it to the Apache Foundation. Dubbo graduated from the foundation in just 15 months. Now that Dubbo has been out of school for a year, more and more developers are asking questions about the changes to Dubbo 3.0, whether Dubbo is used inside Alibaba, whether it is a KPI open source project, and what the relationship between Dubbo and Spring Cloud is. In this article, we will have an exclusive conversation with GitHub ID@beiwei30, the head of Dubbo project ii, to hear him answer these questions one by one.

Dubbo’s comeback years

The Dubbo project was launched in 2008 as an internal alibaba system; In 2011, Ali B2B decided to open source the whole project and gained a large number of users from different industries within a year. In 2014, Dubbo stopped updating due to internal team changes; In September 2017, after nearly three years of silence on the project, Dubbo released several new releases in a row and began recruiting colleagues internally who were interested in Dubbo. The main development team behind the new version is the Alibaba middleware team, and one of the most important people is Beiwei, who has been fully in charge of Dubbo since July 2017.

“I knew it was a well-known open source software, but no one had maintained it for a long time. I was working in the same direction as Dubbo at Alibaba, which was also a service framework, so it was not very difficult to understand Dobbo.

After we took it over, we didn’t do much at first, just announced that we would re-maintain the project, and received a lot of positive feedback, which surprised me, and a lot of developers asked us how long we could re-maintain the project. As I learned more about this project, I found that many large domestic manufacturers, even traditional state-owned enterprises, were widely using this project. At that time, THEY also felt heavy responsibility and did not know whether they could do this project well.”

The first problem northern Latitude faced at the time was: In the years since the main release of Dubbo ceased to be updated, there have been many branches of Dubbo in the industry, and different teams are maintaining their own branches. If this fact is not taken seriously, it is likely that only the main release will be iterated rapidly, and the rest of the community will not participate at all. “For Dubbo, these offshoots are equally important,” Norwich said in an interview. We still want to be able to give a large number of deep users a safe path to merge and iterate over our major releases. In the process, we spoke to all the major branch development teams, and they were very willing to merge with the major release.”

Since Dubbo’s official comeback, Northern Latitude has heard some questions from developers about how long it can be maintained. “Since developers have such concerns under Alibaba, I simply put it in a neutral position. Apache Foundation is a good choice, because the GPL agreement is too idealistic, Dubbo project is more used in commercial companies, the GPL agreement may affect the subsequent promotion. The Apache protocol is relatively practical.”

Dubbo graduated from the Apache Foundation in just 15 months on May 21, 2019.

“I think Dubbo graduated at the same time as five programs, and Dubbo was the shortest. We are not in a hurry to graduate Dubbo, but we expected it to take less than 15 months, but due to the foundation’s communication process, it will take longer.”

The Apache Foundation is characterized by broad access and strict exit, which means that getting in May be relatively easy, but graduation is difficult, and there is a strong emphasis on openness and transparency. In China, most people are used to communicating through wechat and Dingding, and the response time is relatively short. However, Apache Foundation is a global-oriented organization, and all communication is based on email transmission. A proposal can be adopted only when no member raises objection within 72 hours (considering the global time difference). All of these processes make the time cycle longer.

Today, more than a year after the Dubbo project graduated, the community has 18 PMC members, 57 committers, and 370 contributors, with more than 50% of the community code. In an interview, Beiwei said that in the past year, Dubbo has gained JS, Python, Erlang, PHP and Go implementations from the community in terms of multi-language construction. We particularly thank the developers of Km, LETxin and other developers for bringing multi-language support to the community. Java is probably the first language that comes to mind, but Dubbo Go is now on par with Dubbo Java 2.7 in version 1.5. Currently working hand in hand with Java to map out cloud native in Dubbo 3.0.

Since Dubbo 2.7, the overall release has slowed down, and many developers have noticed that the “Dubbo 3.0 will come soon” announcement has been hanging around for a long time. According to Beiwei, in fact, it has consciously slowed down the release pace to pursue the stability of functions. This is not only because Apache Dubbo’s deep users, such as INDUSTRIAL and Commercial Bank of China, Ctrip, Didi, Douyu and Guazi, are increasingly using Dubbo. In the future, the whole Alibaba economy will also start to promote the integration of Dubbo and HSF in the internal core e-commerce business. The more users of Dubbo, the stronger the sense of awe of the team.

In taking Dubbo forward, the team also heard from the developer community, such as what is the relationship between Dubbo and Sping Cloud? Is one of the two choices enough? What’s the difference between Dubbo and gRPC? Is this a KPI open source project of Ali? Ali for internal use?

Ali’s relationship with Dubbo

“In fact, since I took charge of the project, my personal feeling is that people have been worried about the sustainability of the project. I also know that some developers are concerned that Dubbo is just an Open source KPI project led by Alibaba.”

According to the “open Source Digitization Report 2020 in Microservices” released by X-Lab, Dubbo ranks 693 globally in open source activity and fifth among microservices frameworks. This year alone, the number of developers involved in community building has reached more than 500. The community is thriving, and code contributions from outside the company have surpassed contributions from Alibaba employees.

Data source 2020 Open Source Digitization Report in microservices

You can view the full report by replying to “Micro service Report” on the background of alibaba Cloud’s original public account.

“I’ve always believed that community is important, and it was very difficult to do it with just a few engineers on the core team, and some ideas we didn’t think of. Today, hundreds of companies across the country are using Dubbo. It’s not enough to just rely on our two or three engineers, and we want developers in the community to get more involved.”

For a long time, the ideal state of open source may be to rely solely on feelings, but it is really difficult to do well, and only a few people rely on feelings, especially China’s open source is far from reaching this state and still in the process of development. In an interview, Norman said that for Dubbo, no matter why a developer came in and contributed to the project in the first place. The important thing is that we want to keep the community open, even if it’s ok for individual engineers to participate in the community just to get a job later, which I think is normal, because contributing projects take up a lot of developers’ spare time, and we want this project to help people.

In addition, The Dubbo program is being adopted internally, and alibaba is beginning to move toward core transaction scenarios. During the initial growth of Dubbo, there was an idea within Ali that “the whole company should be unified. We hope that the same projects should be merged instead of repeated construction”. At that time, Taobao’s HSF project was also a middleware service framework, which overlapped with what Dubbo was doing, so they said they would merge the two projects.

Up to now, BOTH HSF and Dubbo have landed in Ali’s economy. Options are left up to the business to see what it wants, says Norman, and interoperability between frameworks is technically guaranteed. Relatively speaking, the use of HSF is dominant in emporium scenes, while Dubbo is more prevalent in cloud scenes. Of course, for such a large-scale service scenario, the unified technology stack has always been our appeal and goal. In the definition of cloud native generation Dubbo 3.0, we have begun to integrate open-source Dubbo as the core and define key features in cloud native scenarios on this basis. We have entered the implementation stage in some e-commerce businesses of the group, and we will share our practical experience with you in the future.

What is the relationship between Dubbo and Spring Cloud?

Dubbo has long been compared to Spring Cloud by developers, and the first thing that comes to mind when mentioning the two names is which one to choose, not how they work together. ** In Norwick’s view, it is mainly a matter of technology selection and user concerns about the resulting switching costs. ** This is a misunderstanding. It’s not an either-or relationship. Today, Dubbo has become an important technical component in Spring Cloud Alibaba. Dubbo service and Spring Cloud service can perfectly call each other. Going forward, Dubbo 3.0 further simplifies the deployment of service infrastructure in Dubbo and Spring Cloud hybrid scenarios.

Today, it is indisputable that Spring Cloud is the standard framework for Java development based on Spring

Combined with a large amount of industry experience, a set of microservices common architecture pattern standards are gradually abstracted. The benefit of this standard is that it makes it very easy for developers to develop microservices software products and has become a “package” solution for developers supported by the entire Spring ecosystem.

Dubbo, by contrast, is the product of Alibaba’s ongoing practice in microservices. Scalability and flexibility were a priority from the beginning of the framework’s design, which is why the community’s enthusiasm for Dubbo continues to run high. With the renewal of Dubbo, its scene richness and stability have also been greatly improved, and it has been widely used in many head companies.

Going back to the concerns many developers have about technology selection: the two frameworks are not either. On the contrary, users can easily switch between the two frameworks and even work together perfectly in the future, thanks to the emergence of Spring Cloud Alibaba.

Spring Cloud has a strong international community. As an important member of the community, Alibaba also contributes to the implementation of Spring Cloud Alibaba, which is the most perfect and continuously updated implementation scheme in the whole Spring Cloud system.

Spring Cloud Alibaba emerges

Dubbo 2.7 now works well with the Spring Cloud. Through the integration of Dubbo in Spring Cloud Alibaba, Spring Cloud applications can invoke natively published Dubbo services, and Spring Cloud published Dubbo services can also be invoked by native Dubbo clients. This benefited from the experimental project of service introspection in 2.7 and the Spring Cloud side adaptation of Dubbo.

This experimental project has evolved into a native application-level service registry mechanism in the ongoing 3.0 major release. With this feature, future Spring Cloud applications and Dubbo applications will be better blended. Users can reuse the same set of service discovery, service configuration, and service management systems for Spring Cloud and Dubbo. Additional gateways for Dubbo and Spring will become a thing of the past. Users can switch between the two at zero cost, or choose a different framework depending on the scenario. You can even mix them in the same application. With the efforts of Ma Ge, the core member of the project, the conventional Proxy cluster in Dubbo and Spring Cloud mixing scene was finally removed, and the architecture of the whole system was simpler and more stable. In version 3.0 of Dubbo, the team will continue to evolve the idea of application-level service registration, hoping that through this work, Spring Cloud Alibaba and Dubbo will achieve a high degree of unity in the model of registration data, reuse the same set of service registries, and further simplify the architecture in the mixed scenario.

“We leave the freedom of choice to the user, which is an important goal in Dubbo 3.0.”

In addition, the whole Team of Northern & Wakefield is actively developing the Spring Cloud Alibaba ecosystem. As one of the most influential Java teams in China, Ali middleware team has been paying close attention to the Spring project and improving ali’s middleware development experience through the encapsulation of Spring. In the interview, Beiwei said that the vast majority of applications in Alibaba’s e-commerce system have been booted.

“When Spring Cloud took off, it was natural for us to take the initiative to integrate Alibaba’s open source components through Spring Cloud.” Currently, Spring Cloud Alibaba already supports Nacos as a service registry, configuration center, Sentinel as stream limiting, Seata as a distributed transaction component, RocketMQ as a distributed messaging component, and of course Dubbo as an RPC component. Completely replaced the Spring Cloud Netflix bucket, which has been announced to stop updating. In addition, in order to accelerate the access of domestic engineers to Spring Initializr, the team also provided the ability to quickly generate Spring Cloud Alibaba applications through start.aliyun.com hosted on Alibaba Cloud.

Dubbo and gRPC?

Some complementarity between Spring Cloud and Dubbo might make sense, but Dubbo and gRPC are very similar. As a high-performance, open source and universal RPC framework, gRPC has been welcomed and adopted by many developers over the years.

“We’ve never shied away from gPRC, which is a respected competitor and the de facto standard for communication protocols between cloud-native infrastructures,” says Norman. We have been following the development of gRPC and the annual meeting of gRPC.”

“One of the most valuable lessons we learned from gRPC was to rethink the protocol design deficiencies in Dubbo 2 and focus on two important issues in the cloud native support space: multilingual support and gateway /Mesh parsing friendliness.” In an interview, Norman said that in Dubbo 3.0, the new version of the protocol is the most important, in addition to addressing the above two issues, gRPC protocol compatibility is one of the new protocol design goals.

In the cloud native era, gRPC takes the lead as an RPC framework, which should be filled up as soon as possible in the view of Northern Wei. Dubbo’s advantage is that it is not only an RPC, but also a service framework with strong governance capability. It can be said that, Dubbo is gRPC with batteries. At the same time, Dubbo has a huge user base in China, and Dubob 3.0 will play a huge role in the business migration to cloud native technology.

The future of Dubbo

Now, many developers in the community have been waiting for version 3.0. According to Norman, the main keynote of version 3.0 is cloud native support, focusing on the new generation of cloud native friendly RPC protocol, application level service registration discovery, K8s native service publishing, Mesh control surface xDS protocol docking and distributed service flexibility and other blockbuster features.

In fact, Dubbo 3.0 features will be implemented in phases, with application-level service discovery currently being piloted internally and with some head user scenarios. As the project progresses, the team will release implementation details as soon as possible. “With the delivery of Dubbo 3.0, we look forward to delivering a new generation of services frameworks that are cloud-native migration friendly and cloud-native infrastructure friendly.”

Facing the future, the overall development tone of Dubbo project will adhere to the open source line of cooperation, and the pursuit of higher quality and more perfect functions. At present, the top priority of community development is the evolution of Dubbo3.0. In September, Dubbo3.0 app registration discovery will be launched in alibaba and open source companies. This is not only the first step towards cloud native microservices for Dubbo, but also a prerequisite for docking K8s registration discovery and cross-framework RPC interworking.

On the application side, moving from interface-level registration discovery to application-level registration discovery can significantly reduce memory stress on registries and clients. On November 11, the cloud Native Service Governance rules will incorporate Dubbo’s best practices in large-scale, high-concurrency service governance over the years. The next generation of protocols based on Http2 / Protobuf will bring better ecology and overall support to Reactive, adaptive strategies and distributed load balancing covered by flexibility enhancements will lead to greater breakthroughs in performance and stability. “As Dubbo 3.0 develops, more high-quality community forces are urgently needed to build the next generation of service framework,” Norwick said.

Back when Dubbo relaunched open source, the ecosystem was relatively weak. Today, 15 months after graduation, Dubbo’s ecology is improving.

(Now Dubbo’s rich extension implementation)

For example, multilingual support has reached 6 and 30+ ecological subprojects. While actively integrating with Dubbo, we are actively integrating with third party open source projects like Spring Cloud Sleuth, Zipkin, Skywalking, Envoy, Tengine, and others.

“Maybe today’s ecosystem is not perfect, but it is greatly enriched. In my mind, I hope to produce an officially recommended Dubbo Stack, so that users will not have to choose from it. As for whether the Dubbo Stack will all come from Alibaba, I’m willing to let nature take its course. It’s still a matter of data, and we’ll recommend whichever component is most widely used in the production system. In general, the decision is up to the community and the Dubbo users.”

The guest is introduced

Beiwei, second generation head of Dubbo, Apache Dubbo PPMC & Spring Cloud Alibaba.

“Alibaba Cloud originator focuses on micro-service, Serverless, container, Service Mesh and other technical fields, focuses on the trend of cloud native popular technology, large-scale implementation of cloud native practice, and becomes the public account that most understands cloud native developers.”