Introduction:Now that Dubbo has graduated one year, more and more developers begin to ask what changes have taken place in Dubbo 3.0, whether it is an open source KPI project, and what is the relationship between Dubbo and spring cloud. This article will have an exclusive dialogue with GitHub, the second generation leader of Dubbo project [email protected] ）Listen to him answer these questions one by one.
Author: Beiwei, Zhao Yuying
Introduction:In 2008, Dubbo project was born; in 2014, due to internal team adjustment, Dubbo was suspended; in 2017, Beiwei led the team to revive Dubbo and donated it to the Apache foundation. In just 15 months, Dubbo graduated from the foundation. Now that Dubbo has graduated one year, more and more developers begin to ask what changes have taken place in Dubbo 3.0, whether it is an open source KPI project, and what is the relationship between Dubbo and spring cloud. This article will have an exclusive dialogue with GitHub, the second generation leader of Dubbo project [email protected] ）Listen to him answer these questions one by one.
Years of Dubbo’s return
The Dubbo project was born in 2008 and was originally just an internal system of Alibaba. In 2011, Alibaba B2B decided to open the whole project, and a large number of users from different industries were harvested in one year. In 2014, due to the internal team adjustment, Dubbo was suspended from updating. In September 2017, when the project has not been active for nearly three years, Dubbo launched the project Several new versions have been released in succession, and colleagues interested in Dubbo have been recruited internally. The main development team behind the new version is Alibaba middleware team. One of the most important people is Beiwei, who has taken over Dubbo since July 2017.
“I know that this is a very famous open source software, but no one has maintained it for a long time. At that time, my work direction in Ali was completely consistent with that of Dubbo, and it was also a service framework, so it was not very difficult to understand dobbo.
After taking over the project, we didn’t do too much. We just said that we would re maintain the project, and we received a lot of positive feedback. This surprised me. Many developers also asked how long we could re maintain the project. With the in-depth understanding of this project, I found that many large domestic manufacturers and even traditional state-owned enterprises were widely using the project. At that time, I also felt that they had a great responsibility, and I didn’t know whether we could do a good job in this project. “
At that time, the first problem Beiwei faced was: during the years when the main version of Dubbo stopped updating, many branches of Dubbo appeared in the industry, and different teams were maintaining their branches. If we do not pay attention to this objective fact, it is likely that only the main version is rapidly iterating, and other community members can not participate in it. This kind of open source is of little significance. “These branch versions are equally important to Dubbo,” he said in an interview. We still hope to give most deep users a secure merge path and iterate according to our major version. In the process, we have talked with the development teams of several major branch versions, and they are very willing to merge with the main version. “
After Dubbo’s official comeback, Beiwei also heard some developers’ questions, such as how long it can be maintained this time. “Since the developers have such concerns under Alibaba, I will simply put it in a neutral position. Apache foundation is a good choice because GPL protocol is too idealistic. Dubbo project is more used in commercial companies. GPL protocol may affect subsequent promotion. Relatively speaking, Apache protocol is more practical. “
It is this decision that allows developers to see the projects that graduated from the Apache foundation in the shortest time:On May 21, 2019, Dubbo graduated from the Apache foundation in just 15 months.
“I remember that Dubbo graduated with five projects in the same period, and Dubbo was the shortest. We are not in a hurry to let Dubbo graduate, but we originally expected a shorter time than 15 months, but due to the communication process of the foundation, the time cycle will be relatively longer. “
The characteristic of Apache foundation is that it is easy to enter but difficult to graduate. It emphasizes openness and transparency. In China, most people are used to communicating via wechat and nailing, and the response time will be relatively short. However, Apache foundation is a global organization, and all communication is based on mail delivery. A proposal can only be adopted if no member raises any objection within 72 hours (considering the global time difference). These processes make the time cycle longer.
Now, the Dubbo project has graduated for more than a year. The whole community has 18 PMC members, 57 committers and as many as 370 contributors. The community code proportion has exceeded 50%. In the interview, Beiwei said that in the past year, Dubbo has successively obtained the implementation of JS, python, Erlang, PHP and go from the community in terms of multilingual construction. In particular, I would like to express my sincere thanks to kmnet, Lexin and other developers for bringing multilingual support to the community. When it comes to Dubbo, the first thing you think of may be Java. However, Dubbo go has already caught up with Dubbo Java 2.7 features in version 1.5. Currently, we are working together with java to plan the roadmap of cloud native in Dubbo 3.0.
Since Dubbo 2.7, the whole release rhythm has gradually slowed down. Many developers have noticed that the announcement “Dubbo 3.0 will come soon” has been hung up for a long time. Beiwei said that in fact, it has consciously slowed down the pace of publishing and pursued the stability of functions. This is not only because deep users of Apache Dubbo, such as ICBC, Ctrip, Didi, douyu and Guazi, are using Dubbo more and more widely. In the future, the whole Ali economy will gradually promote the integration of Dubbo and HSF in its internal core e-commerce business The more users, the stronger the sense of awe of the team.
In the process of leading Dubbo forward, the team also heard voices from the developer community, such as what is the relationship between Dubbo and the spring cloud? Is it enough to choose one from two? What is the difference between Dubbo and grpc? Is this an open source KPI project of Ali? Ali for internal use?
The relationship between Ali and Dubbo
“In fact, since I was in charge of this project, my personal feeling is that people have been more worried about whether the project can continue to develop or not. I also know that some developers are worried that Dubbo is just an open source KPI project led by Ali. “
According to the latest open source digital report of micro service field in 2020 released by X-lab open laboratory, Dubbo’s open source activity ranks 693 in the world, ranking fifth in the microservice framework. Only this year, the number of developers who have participated in community construction has reached more than 500. The whole community is booming, and the contribution of code from outside has exceeded that from Ali employees.
Data source: open source digital report of micro service field in 2020
In the background of Alibaba cloud original official account, reply to the “micro service report” to see the complete report.
“I always think the community is very important. It’s very difficult to rely on a few engineers from the core team to do this. Some ideas are also unexpected. Today, there are hundreds of enterprises using Dubbo all over the country. It is not enough to rely on the strength of our two or three engineers. We hope that developers in the community can participate more. “
For a long time, the ideal state of open source may be simply relying on feelings, but it is really difficult to do well. Only a few people rely on feelings. Especially in China, the current open source is far from reaching this state and is still in the process of development. In the interview, north latitude said that for Dubbo, whatever the reasons for the developers’ initial entry and contribution to the project. What’s important is that we hope to keep the whole community open. Even if individual engineers just want to find a job to participate in the community in the future, it doesn’t matter. I think this idea is very normal. After all, contributing projects will occupy a lot of developers’ spare time. We also hope that this project can help you.
In addition, Alibaba is also adopting the Dubbo project internally, and is gradually moving towards the core transaction scenarios. In the initial growth process of Dubbo, Ali once proposed the idea of “the whole company is unified. I hope that there will be no duplication of construction, but all the same projects will be merged”. At that time, Taobao’s HSF project was also a middleware service framework, which was highly coincident with Dubbo’s work, so it said that the two projects would be merged at that time.
Up to now, HSF and Dubbo have landed in Ali economy. According to Beiwei, the right to choose is decided by the business according to its own demands, which ensures the interoperability between the frameworks technically. Relatively speaking, HSF is the mainstream in e-commerce scenarios, while Dubbo is more used in cloud scenarios. Of course, for such a large-scale service-oriented scenario, unified technology stack has always been our demand and goal. In the definition of Dubbo 3.0 in the cloud native era, we have begun to integrate the open source Dubbo as the core, and define the key features in the cloud native scene on this basis. We have entered the implementation stage in some e-commerce businesses of the group. We will share our practical experience with you in the future.
How do you see the relationship between Dubbo and spring cloud?
For a long time, there have always been developers who like to compare Dubbo with spring cloud. The first reaction to mentioning the two names is often to choose which one to choose, rather than how to use the two together.In northern latitude’s view, this is mainly the problem of technology selection, and users’ concerns about the consequent switching cost.In fact, this is a misunderstanding. The relationship between the two is not either or. Today’s Dubbo has become an important technical component of spring cloud Alibaba. Dubbo service and spring cloud service can perfectly call each other. In the future, Dubbo 3.0 further simplifies the deployment of service infrastructure in Dubbo and spring cloud mixed scenarios.
Today, spring cloud has become the standard framework of java development relying on spring, which is indisputable
In fact, combined with a large number of industry experience, a set of microservice general architecture pattern standard is gradually abstracted. The advantage of this set of standards is that it makes it very convenient for developers to develop microservice software products, and has become a “package” solution for developers with the blessing of the whole spring ecology.
In contrast, Dubbo is Alibaba’s product of continuous practice in the field of micro services. At the beginning of the framework design, scalability and flexibility have been placed in a very important position, which is why the community’s enthusiasm for Dubbo has been rising. With the recovery and update of Dubbo, its scene richness and stability have also been greatly improved, and it has been widely used in many head companies.
Back to many developers’ concerns about technology selection: these two frameworks are not either or. 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 has also contributed to the spring cloud Alibaba implementation, which is the most perfect and constantly updated implementation scheme under the whole spring cloud system.
Spring cloud Alibaba appears
Now Dubbo 2.7 can work well under the spring cloud system. Through the integration of Dubbo in spring cloud Alibaba, spring cloud applications can call the native Dubbo service, and the Dubbo service released by spring cloud can also be called by the native Dubbo client. This benefits from the experimental project of service self reflection in 2.7 and the adaptation of spring cloud side to Dubbo.
In the ongoing 3.0 release, this experimental project has evolved into a native application level service registration mechanism. Through this feature, spring cloud applications and Dubbo applications can be more perfectly mixed in the future. Users can reuse the same set of service discovery, service configuration, and service management system for spring cloud and Dubbo. It will become a thing of the past to build additional gateways for Dubbo and spring interworking. Users can switch between them at zero cost, or choose different frameworks according to different scenarios, or even mix them in the same application. With the efforts of Ma Ge, the core member of the project, the traditional proxy cluster in the industry in the mixed distribution scenario of Dubbo and spring cloud is finally removed, and the architecture of the whole system is simpler and more stable. In Dubbo 3.0, the whole team will continue to evolve the idea of application level service registration. It is expected that through this work, spring cloud Alibaba and Dubbo can reach a high degree of unification on the registration data model, reuse the same set of service registry, and further simplify the architecture in the mixed distribution scenario.
“We leave the freedom of choice to our users, which is an important goal in Dubbo 3.0.”
In addition, the whole team of Beiwei is also actively developing spring cloud Alibaba ecology. As one of the most influential teams in the domestic Java industry, Alibaba middleware team has been paying close attention to the spring project and improving Alibaba’s middleware development experience through spring encapsulation. In the interview, Beiwei said that most applications of Alibaba’s e-commerce system have been booted.
“When spring cloud began to have influence, it became a natural thing that we took the initiative to integrate Alibaba’s open source components through spring cloud.”. At present, spring cloud Alibaba has supported Nacos as the service registry and configuration center, sentinel as the current limiting component, Seata as the distributed transaction component, rocketmq as the distributed message component, and Dubbo as the RPC component, which has completely replaced the spring cloud Netflix family bucket that has been announced to stop updating. In addition, in order to speed up the access of domestic engineers to spring initializr, the team also uses the start.aliyun.com It provides the ability to quickly generate spring cloud Alibaba applications.
Dubbo and grpc?
Spring cloud and Dubbo may be partially complementary, 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 for many years.
Similarity is inevitable to be compared by developers. In this regard, Beiwei is very frank: “we never avoid GPRC. It is a respectable opponent and the de facto standard of communication protocol between cloud native infrastructures. We have been paying close attention to the development of grpc and the annual meetings of grpc
“The most valuable thing we learned from grpc is to reflect on the inadequacy of protocol design in Dubbo 2 and start to pay attention to two important issues in cloud native support: multilingual support and gateway / mesh parsing friendliness.” In the interview, Beiwei said that in Dubbo 3.0, the new version of the protocol is the top priority. In addition to solving the above two problems, compatibility with grpc protocol is also one of the design objectives of the new protocol.
In the cloud native era, grpc is ahead of the RPC framework, which needs to be supplemented as soon as possible in northern latitude. 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 an important role in the process of business migration to cloud native technology.
Future development of Dubbo
Today, many developers in the community have been looking forward to version 3.0 for a long time. Beiwei said that the main keynote of version 3.0 is cloud native support. It focuses on cloud native friendly new generation RPC Protocol, application level service registration and discovery, k8s native service release, mesh control plane XDS protocol docking and distributed service flexibility.
In fact, the function of Dubbo 3.0 will be carried out in stages. Currently, application level service discovery has been conducted in the internal and some scenarios of head users. With the progress of the project, the team will release the function implementation details as soon as possible. “Through the delivery of Dubbo 3.0, we are looking forward to bringing a new generation of service framework that is friendly to cloud native migration and friendly to cloud native infrastructure.”
Facing the future, the general development keynote of Dubbo project is to adhere to the open-source route of cooperation and opening up, and to pursue the route of higher quality and better functions. At present, Dubbo 3.0 evolution is the top priority of community development. In September, Dubbo 3.0 application level registration discovery will be implemented in Alibaba and other companies on the open source side. This is not only the first step for Dubbo to move towards cloud native microservices, but also a prerequisite for docking k8s registration discovery and cross framework RPC interworking.
For the application side, from interface level registration discovery to application level registration discovery, the memory pressure of registry and client can be significantly reduced. This year’s double 11, cloud native service governance rules will integrate Dubbo’s best practices in large-scale and highly concurrent service governance into cloud native. The next generation protocol based on http2 / protobuf will bring better ecological and reactive comprehensive support, and the adaptive strategy and distributed load balancing covered by the flexibility enhancement will bring more breakthroughs in performance and stability. Beiwei said that in the development of Dubbo 3.0, more high-quality community forces are urgently needed to join in to build a service framework for the next generation.
Back when Dubbo restarted open source, the ecology was relatively weak. Today, 15 months after graduation, Dubbo’s ecology has become increasingly perfect.
(Dubbo’s rich extension implementation today)
For example, multi language support has reached six, 30 + ecological subprojects. While Dubbo actively integrates the surrounding areas, we are also actively integrated by third-party open source projects such as spring cloud sleuth, Zipkin, skywalking, Evoy and Tengine.
“Maybe today’s ecology is not perfect, but it’s also very rich. The improvement in my heart is to produce an officially recommended Dubbo stack, so as to avoid users’ worries about choosing. As for whether all Dubbo stacks are originated from Ali, I’m going to let it go. It still needs data to speak. We will recommend whoever has the most widely used components in the production system. In general, it’s up to the community and Dubbo users to decide. “
Introduction of guests
North latitude, second generation leader of Dubbo, and head of Apache Dubbo PPMC & spring cloud Alibaba.
Link to original text
This article is the original content of Alibaba cloud and can not be reproduced without permission.