1. Please introduce yourself
Many people think that my name is Yu Yu, but it is actually the WeChat name used when using WeChat in 2012. Later, it was also used as a nickname when I joined Ali. Now it has become my common name.
Over the past 11 years in the industry, he has been on the front line of server-side infrastructure research and development, with a wide range of work, covering RPC, NoSQL storage, real-time monitoring and alerting, instant messaging, message push, etc. The research content is also quite extensive. From 2018 to 2019, I searched RocksDB in Google, and my personal technical blog has been on the first page. I am probably also the earliest researcher and advocate of gogo protobuf and pulsar in China.
My first working language was C/C++. I came into contact with the Go language on chinaunix in 2013 and started to learn from the official go blog. So in terms of Go language, I was born in a wild road, and no one officially took me. I personally love open source, starting from contributing code for Redis in 2015, using C++11 to refactor Muduo in 2015, building dubbogo in 2016, and contacting Pika in 2018. At that time, in addition to fixing bugs for pika, it mainly built PikaPort, a data agent between Pika and Redis. PikaPort was put into use in 360, Sina, Maimai, Happy for All, SF, Kuaishou, Good Future, etc. until this year. In the future, many DBAs from companies such as Kuaishou and Kuaishou will also contact me because of this tool.
At present, the amateur mainly focuses on promoting the dubbogo project in the dubbogo community. In my spare time, in addition to the dubbogo community, I also conduct technical exchanges with practitioners in the instant messaging circle. I personally have seven or eight years of practical project experience in IM.
2. Talk about the project you are doing in the past year. What is its technical value? What is the development status of its industry? Can you talk about the technical highlights and challenges of your project?
I started to build the dubbogo community in the second half of 2018, and its main open source project is of course https://github.com/apache/dubbo-go.
The technical value of this project, for me, is the key to getting through my instant messaging technology system. I personally think that technology is analogous. Compared with MQ technology, microservice governance technology only lacks a piece of storage technology. No difference. Not to mention its own technological value. I personally think that it is the cornerstone of Dubbo's entry into the era of cloud native technology.
As far as its industry development is concerned, dubbogo is currently developing very well. There are currently 35 registered users, but there are actually more. The industry covers electronic shopping malls, instant messaging, transportation, games, third-party payment, express delivery, and tourism. , Internet of Vehicles, IoT, health care, cloud platforms, video websites, digital currencies, emotional communication APP, children's education, educational electronic equipment, marketing training, taxation, car transactions, video chat, document office, etc., see https for details ://github.com/apache/dubbo-go/issues/2 .
The dubbogo community has more than 100 contributors, 23 apache dubbo committers, and 5 apache dubbo PMC. The community-based project is at https://github.com/dubbogo. After the incubation is mature, it will be donated to https://github.com/apache, and 5 projects have been contributed to the apache organization in total. The overall project [including getty\gost\hessian2\triple\v3router, etc.] has 170,000 lines of code, many of which have been "borrowed" by other domestic peer projects without greeting.
Dubbogo is first of all dubbo's go language implementation, and its first important point is to be fully compatible with dubbo. The underlying network library of dubbo is netty, and its native serialization protocol library is hessian2. When I started to build dubbogo in April 2016, the first thing I had to do was to use the go language to implement a netty-like network library getty https://github. com/apache/dubbo-getty , followed by the construction of the go language version hessian2 protocol https://github.com/apache/dubbo-go-hessian2 . In short, dubbogo is a self-contained system from the bottom to the top. At present, dubbogo, in addition to aligning all dubbo versions, goes hand in hand with dubbo.
dubbogo also has a second mission: to make full use of the advantages of Go as the first language in the cloud-native era, and expand the capabilities of dubbo. dubbogo was the first to realize the microservice governance solution with k8s as the registry, and the current dubbo k8s registry solution was born here.
The third mission of dubbogo is interconnection. The purpose of dubbogo itself is "bridging the gap between Java and Go". In addition to being compatible with dubbo, it has also been integrated with gRPC and REST-compliant frameworks such as Spring Cloud Alibaba.
The main focus of the community in the near future is to build the dubbogo ecological matrix. The key is the latest migration to Apache gateway project https://github.com/apache/dubbo-go-pixiu, which will gradually get through dubbo/SpringCloud/gRPC/RocketMQ , Preliminary verification of personal vision https://mp.weixin.qq.com/s/EWR6xwbf53XHZ8O3m2bdVA .
3. In the process of implementing technical solutions, what issues do you usually pay attention to? How to ensure the smooth implementation of technical solutions?
In the implementation of technical solutions, individuals mainly focus on its value, and consider its benefits, human resource costs, technical risks and other issues from the perspective of technical value and customer value. Once the target is determined, the next thing to do is to dismantle the target, find reliable engineers, and track the progress of the project in real time. Once faced with the project progress or unexpected technical risks, first of all, it must be exposed to stakeholders in a timely manner to ensure The problem can be converged within a controllable time frame.
If convergence is not possible, large companies need to consider raising the problem, managing upwards, and using various resources to promote the problem to be solved. If within a small and medium-sized company, the current resources (including human resources) cannot guarantee the convergence of the problem, all that can be done is to stop the loss in time.
4. In the recent wave of technological changes, what are the challenges that architects need to face? How to deal with these challenges?
In the two years that I have been working in the current company, I have been a front-line engineer who moved bricks. I feel that I am not qualified to talk about this topic as an architect.
However, when I was working in the company, title was the architect. If the topic is not limited to the "recent wave of technological changes", I can talk about the challenges we faced at the time and how to deal with them. The challenge at that time was that the company’s infrastructure capacity was zero. The first reaction of colleagues facing online failures was to restart all the services that are most likely to have problems. If the problem cannot be solved, all the related links will be reset. The version of the service is rolled back and restarted again. The personal response method is based on personal work experience, drawing on the mature technical solutions in previous work, and taking a few colleagues in my group to integrate the company’s lightweight real-time monitoring system, log collection system, instant messaging system and KV storage system. Realize from zero.
I honestly say that I don’t don’t donate money. I have been moving bricks with various masters for the first five years of my work. At the same time, I have been actively participating in various open source projects. I have eaten some pork and have seen many pigs walking. The implementation process has ensured that these systems are implemented quickly and efficiently.
5. In the process of technical selection, what questions do you often consider?
In my own humble opinion, a technical person must not only look at the problem from a technical point of view when making technology selection, but must look at the problem from the perspective of value or from the perspective of the boss. From the perspective of the boss, I personally feel that there are about three points: fast implementation, system stability, and lowest cost.
The so-called rapid implementation means that the relevant technology can solve the problem in the shortest time and complete the business goal. The system is stable. First of all, it is necessary to ensure the stable and reliable operation of the system. Second, it is necessary to ensure that the architecture is three years (at least one year) without over and over again, and the necessary patches are acceptable. Under the premise of achieving the first two points, as much as possible to keep various costs such as human resources, machine costs, and maintenance costs to the minimum, so that the business can make money, at least not to lose money.
6. Which project or technology do you like in the cloud native field, and why?
Individuals are first optimistic about dubbogo for specific projects in the cloud native field, because I personally have been on the project for the sixth year, and my original intention and enthusiasm are still there. Those who are willing to join the open source community still hope to be prepared for a long-term battle and long-term dedication, otherwise they will not work together.
As far as the direction of cloud native technology is concerned, this topic is too broad, personal accumulation is very small, and it takes a long time to learn and accumulate, so I am consciously unqualified to comment. What can be said a little is that I have a personal hunch that cross-cloud (such as Alibaba Cloud, Tencent Cloud, Huawei Cloud) based on open source service platforms is a good direction for multi-k8s cluster management, such as cross-supplier service deployment. For example, https://github.com/gardener This project, sap and pingcap are both in use, is a k8s multi-cluster manager, supports aliyun/aws/openstack, etc., while allowing one physical machine to be clustered by multiple k8s Management, there is a command line and a web interface. This is an example of a proper future hybrid cloud multi-k8s cluster. You can use gardener for multi-cloud platform management, and then rely on dapr or similar products (such as Ant's recent open source Layotto and future dubbo- go-pixiu】Do public service deployment. In short, I personally feel that this future market has a lot of space and there are many imaginable places.
8. Please introduce the topic or topic you are responsible for in your giac presentation
The content of this personal speech mainly revolves around dubbogo 3.0. In addition to the application registration service discovery, new routing schemes, and new registration communication protocols of dubbogo 3.0 that everyone already knows through public channels, we will also focus on some official plans for the future of dubbogo 3.0: dubbogo microservice platform in the cloud-native era Evaluation of capacity and resource consumption, adaptive current limiting and adaptive load balancing, Proxyless Service Mesh, etc.
Of course, I will also add some dubbogo's internal landing form in Ali. In short, let a 14-year-old microservice governance framework advance with the times in the cloud-native era to become a microservice governance platform. It is the best way to pay tribute to the trust of the pioneers and current users, and to establish a foundation for other domestic open source projects. Continue to evolve the benchmark for long-term maintenance.
9. What's your message for this giac
This is the second time that the dubbogo community has sent people to participate in the giac conference. I hope that both dubbogo and giac will develop better and better in their respective fields. I hope that through the giac platform, 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 technological dividends.
The dubbogo community is in the same place as the dubbogo project. Welcome to students who are interested in the apache/dubbo-go project, welcome Dingding to scan the code to join the exchange group [or search Dingding group number 31363295]:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。