Yu Yu, head of dubbogo community, said


1. Please introduce yourself

Many people think my name is Yu Yu. In fact, it is the wechat name used when I used wechat in 2012. Later, it was also used as a flower name when I joined Ali. Now it has become my common name.

Over the past 11 years, he has been working in the front line of server-side Infrastructure Research and development, covering RPC, NoSQL storage, real-time monitoring and alarm, instant messaging, message push, etc. The research content is also quite extensive. From 2018 to 2019, I searched rocksdb in Google. My personal technology blog has been on the first page. I am probably also the earliest gogo protobuf and pulsar research and advocate in China.

Starting from C / C + +, I came into contact with the go language on ChinaUnix in 2013 and began to learn with the go official blog. Therefore, in terms of the go language, I was born in a wild way, and no one officially took me. I love open source. I started to contribute code to redis in 2015, reconstructed Muduo with C + + 11 in 2015, built dubbogo in 2016, and contacted Pika in 2018. At the time, in addition to repairing bug for pika, the main task was to build data proxy PikaPort between Pika and Redis. PikaPort was put into use in 360, Sina, Kwai Fu, Shun Kwai, fast forward, good future and so on. Until this year, many Sina, good future and fast hands companies were not DBA, but also because of this tool to find me.

At present, my spare time mainly focuses on promoting dubbogo project in dubbogo community. In addition to dubbogo community, I also have technical exchanges with practitioners in the instant messaging circle in my spare time. I have accumulated seven or eight years of practical project experience in IM.

2. Talk about the project you are working on in the last year. What is its technical value? What is the development of its industry? Can you talk about the technical highlights and challenges of the project you are responsible for?

Since the second half of 2018, I have made every effort to build dubbogo community. Of course, its main open source projects are https://github.com/apache/dub… 。

Personally, the technical value of this project is the key for me to get through my instant messaging technology system. Personally, I think technology is by analogy. Compared with MQ technology, microservice governance technology is only one less storage technology, and the others are the same. Not to mention its own technical value, I personally think it is the cornerstone for Dubbo to move forward into the era of cloud native technology.

As far as the development of its industry is concerned, dubbogo is developing very well. At present, there are 35 registered users, actually more. The industry covers e-mall, instant messaging, transportation, games, third-party payment, express delivery, tourism, Internet of vehicles, IOT, health care, cloud platform, video website, digital currency, emotional communication app, children’s education Educational electronic equipment, marketing training, tax handling, automobile transaction, video chat, document office and other aspects, see https://github.com/apache/dub… 。

There are more than 100 contributors in dubbogo community, including 23 Apache Dubbo committees and 5 Apache Dubbo PMC. Community infrastructure projects in https://github.com/dubbogo After hatching, donate to https://github.com/apache , has contributed five projects to the Apache organization as a whole. The code of the overall project [including Getty \ gost \ hessian2 \ triple \ v3router, etc.] has as many as 170000 lines, many of which are “borrowed” by other domestic peer projects without greeting.

Dubbogo is the first go language implementation of Dubbo, and its first meaning is to be fully compatible with Dubbo. The underlying network library of Dubbo is netty, and its native serialization protocol library is Hessian 2. When building Dubbo in April 2016, the first thing I have to do is to use go language to implement Getty, a network library similar to netty https://github.com/apache/dub… The second is to build the go language version of Hessian 2 protocol https://github.com/apache/dub… , In short, dubbogo has its own system from the bottom to the top. At present, except for aligning all Dubbo versions, dubbogo goes hand in hand with Dubbo.

Dubbogo also has a second mission: make full use of the advantages of go language, the first language in the cloud native era, to expand Dubbo’s capabilities. Dubbogo first implemented the microservice governance scheme with k8s as the registry. The current dubbogo k8s registry solution was born out of this.

Dubbogo’s third mission is connectivity. Dubbogo aims to “bring the gap between Java and go”. In addition to being compatible with Dubbo, it has also been connected with grpc and rest protocol compatible frameworks such as spring cloud Alibaba.

Recently, the community mainly focuses on building dubbogo ecological matrix, and the key is the gateway project newly migrated to Apache https://github.com/apache/dub… , it will gradually get through Dubbo / spring cloud / grpc / rocketmq and preliminarily verify personal assumptions about the future form of cloud primitives https://mp.weixin.qq.com/s/EW… 。

3. What issues do you usually pay attention to in the process of implementing technical solutions? How to ensure the smooth implementation of the technical scheme?

For the implementation of technical solutions, individuals mainly focus on their value, and consider their benefits, human resource costs, technical risks and other issues from the perspective of technical value and customer value. Once the goal is determined, the next thing to do is to disassemble the goal, find reliable engineers and track the project progress in real time. Once faced with the project progress or unexpected technical risks, it is first necessary to timely expose them to stakeholders to ensure that the problem can converge within a controllable time range.

If convergence is not possible, large companies need to consider raising the problem, managing upward, and using various resources to promote the problem to be solved. In small and medium-sized companies, if the current resources [including human resources] can not guarantee the convergence of the problem, what can be done is to stop the loss in time.

4. What are the challenges that architects need to face in the recent wave of technological changes? How to deal with these challenges?

I have been a front-line brick moving Engineer for more than two years in the current company. I feel that I am not qualified to talk about this topic as an architect.

However, when I worked in the company in the past, the title was an architect. If the scope of the topic is not limited to the “wave of recent technological changes”, I can talk about the challenges and Countermeasures at that time. The challenge at that time was that the company’s infrastructure capacity was zero. When colleagues faced online failures, their first reaction was to restart all services that were most likely to have problems. If the problem could not be solved, they would rollback and restart the versions of all services on the relevant links. The personal response method is to realize the company’s lightweight real-time monitoring system, log collection system, instant messaging system and kV storage system from zero based on personal work experience, learn from the mature technical solutions in previous work, and bring several colleagues in our group.

The so-called merit is not donated. In the first five years of personal work, he has been moving bricks with various masters. At the same time, he has also actively participated in various open source projects. He has eaten some pork and seen many pigs’ walking posture. The accumulated experience well ensured the rapid and efficient implementation of these systems during the implementation of these systems at that time.

5. What problems do you often consider in the process of technology selection?

In my humble opinion, technicians must not only look at problems from the perspective of technology, but also from the perspective of value or the boss. From the perspective of the boss, I think there are probably three points: rapid implementation, system stability and lowest cost.

The so-called rapid implementation means that relevant technologies can solve problems and achieve business objectives in the shortest time. To ensure the stability of the system, first of all, ensure the stable and reliable operation of the system. Secondly, ensure that the architecture will not be repeated for three years [at least one year], and the necessary patches are acceptable. On the premise of the first two points, keep the human resources, machine cost, maintenance cost and other costs as low as possible, so that the business can earn money, at least not lose money.

6. Which project or technology are you optimistic about in the cloud native field, and why?

For specific projects in the cloud native field, I am optimistic about dubbogo first, because I have persisted in the project for the sixth year, and my initial intention and enthusiasm are still there. If you are willing to join the open source community, you still want to be prepared for a long-term war and long-term dedication, otherwise different ways will not work together.

As for the direction of cloud native technology, this topic is too broad, with little personal accumulation. It still needs a long time of learning and accumulation, and I am not qualified to comment. It can be said that I have a hunch that cross cloud [such as Alibaba cloud, Tencent cloud and Huawei cloud] multi k8s cluster management based on open source service platform is a good direction, such as cross vendor service deployment. For example, https://github.com/gardener Sap and pingcap are both in use in this project. It is a k8s multi cluster manager and supports aliyun / AWS / openstack. At the same time, it can allow a physical machine to be managed by multiple k8s clusters. It has a command line and a web interface. This is a good example of future hybrid cloud multi k8s clusters. You can use gardener for multi cloud platform management, Then rely on dapr or similar products [such as layotto recently opened by ant and Dubbo go Pixiu in the future] for public service deployment. In short, I feel that there is a lot of market space in the future, and there are many imaginable places.

8. Please introduce the topic or topic of your speech at giac

Personally, the content of this speech mainly focuses on dubbogo 3.0. In addition to the application registration service discovery, new routing scheme and new registration communication protocol of dubbogo 3.0 already known through public channels, we will also focus on some official plans for the future of dubbogo 3.0: capacity and resource consumption evaluation of dubbogo micro service platform in the cloud native era, adaptive current limiting and adaptive load balancing Proxyless service mesh et al.

Of course, I will also add some landing forms of dubbogo in Alibaba. In short, making a 14-year-old micro service governance framework keep pace with the times in the cloud native era and become a micro service governance platform is the best way to pay tribute to the trust of previous pioneers and current users, and also set a benchmark for continuous evolution and long-term maintenance for other domestic open source projects.

9. What’s your message about this giac

This is the second time that dubbogo community has sent people to attend the giac conference. I hope dubbogo and giac will develop better and better in their respective fields. We also hope that through giac, more people will know dubbogo, a powerful micro service basic platform, promote the progress of domestic micro service technology and create more social value and technical dividends.

Dubbogo community is with dubbogo project. Welcome to the students who are interested in Apache / Dubbo go project. Welcome to join the exchange group [or search the Group No. 31363295]:

Yu Yu, head of dubbogo community, said

Recommended Today

Application of observer pattern in design pattern in Ruby Programming

Observer mode(sometimes referred to as publish / subscribe mode) is softwareDesign patternA kind of.In this mode, a target object manages all its dependent observer objects and actively notifies when its own state changes.This is usually achieved by calling the methods provided by each observer. When implementing the observer mode, it should be noted that the […]