Dubbo Open-Sourcing - Present and the Future

Dubbo is a very popular open-source RPC framework with high performance and reliability. Having become an Apache Incubator gives dubbo a more active community; hope Dubbo will help increase the diversity of apache with its innovation. In this presentation, Liu Jun will give a brief introduction of the core features of Dubbo and its innovation in RPC area, review the recent events in meeting community requirements and enhancing dubbo, the challenges it faces, and the roadmap to address those challenges after entered apache community. In the end, the audience will have a glance at the amazing features expected to come soon on dubbo 3.0.

1. 1 Apache Dubbo (Incubating) --Present and Future dubbo.apache.org Copyright © 2018 The Apache Software Foundation

2. Agenda 2 1 2 3 4 5 What’s How Dubbo Current Roadmap Dubbo at Dubbo Works Status Apache 6 Contact Us dubbo.apache.org Copyright © 2018 The Apache Software Foundation

3. What’s Dubbo 3 A high performance RPC framework Open Sourced Project Incubating at Apache Dubbo |ˈdʌbəʊ| is a java based RPC framework first open-sourced by Alibaba at 2011. Donated to Apache at 2017. A high performance RPC framework Based around the idea of defining a service, specifying the methods that can be called remotely with their parameters and return types. Beyond RPC: rich features for service governance Provides features for managing microservices: automatic service registration & discovery, fault tolerance, load balancing, traffic management… Production-tested and Proven At Scale Wildly adopted in internet companies and financial organizations in production for years, including Alibaba, JingDong, Kaola, Qunar, etc. dubbo.apache.org Copyright © 2018 The Apache Software Foundation

4. How Dubbo Works 4 A high performance RPC framework 1 Export 2 Service Register Registry Provider export services at a Provider register service specified port. metadata to registry. 3. subscribe 2. register 4. notify 3 Subscribe 4 Service Discover Provider Consumer subscribe services Registry pushes service 5. invoke it interests from Registry. instances to Consumer Consumer 1. start Container 5 Invoke 6 Monitor Consumer select a service Monitor collect and display 6. count provider, start remote call. invoke statistics. Monitor dubbo.apache.org Copyright © 2018 The Apache Software Foundation

5. 5 dubbo.apache.org v Copyright © 2018 The Apache Software Foundation

6. Why Maintain Dubbo 6 The reason we restart maintain Dubbo Strategy Community Eco-System Feedback Alibaba announced the Dubbo was widly Around Dubbo, we can Ideas from community development strategy adopted by create a thriving can inspire us ; of embracing Open organizations. There ecosystem, a one-stop Community can also Source at Yunqi Con. are plenty of micro service benefit from our 150+ Open Source requirements and governance solution. experience in large- projects,ranking top issues reported by scale cluster and 10,170K+ total stars community. service management. dubbo.apache.org Copyright © 2018 The Apache Software Foundation

7. Current Status 7 A star project at Github Stars increased Github Increasement 77% 9000 Since re-maintain at 2017-07, we have seen the 8000 Stars, Forks and Watches increased by 7428, 3072 and 745 respectively. 7000 Ranked 11th in Java category at Github, 2000 UV/day. At OSC 2017, Druid, 6000 FastJson, Dubbo, RocketMq has been voted to the list of「China's most 5000 popular open source software TOP20 」. 4000 Now Dubbo is an incubating project at Apache. 3000 2000 1000 18K 12K 3K 0 STAR FORK WATCH Star Fork Watch dubbo.apache.org Copyright © 2018 The Apache Software Foundation

8. Current Status 8 Dubbo in production If you are using Dubbo, please let us know: https://github.com/apache/incubator- dubbo/issues/1012 According to a survey recently. Dubbo user can be classified into three types: Internet companies, traditional companies embracing Internet, Companies providing Internet solutions. Dubbo have Apache PPMC from Dangdang, Qunar, Weidian and Alibaba. The Dubbo team plans to hold several meetups in Beijing, Shanghai, Shenzhen and Hangzhou. The ideas and speakers be discussed and selected from community. dubbo.apache.org Copyright © 2018 The Apache Software Foundation

9. Current Status 9 What have we done Upgrade dependencies to Meet requirements in the latest version: Spring, community: REST, Spring ZK, Hessian, Netty, Boot, Hessian, QOS, etc. Javassist、Validator, etc. Dependencies Community Docs and Website Releases Apache dubbo.apache.org enrichs Keep a relatively quick Donated to Apache, we with quick start, docs, release cycle, within 11 expect more developers and samples, community; month: organizations get involved in Rewrite docs using gitbook. 7 maintaince releases. the community. 3 feature releases. dubbo.apache.org Copyright © 2018 The Apache Software Foundation

10. Roadmap 10 01 Microservices: Lightweight, polyglot, REST, Spring Boot 02 Cloud Native: Spring Cloud, Service Mesh 03 Eco-System: build a one-stop ecosystem around Dubbo 04 Performance always comes first Challenges from large-scale clusters dubbo.apache.org Copyright © 2018 The Apache Software Foundation

11. Roadmap 11 Dubbo Core Modularization Fault Tolerant The communication layer and service Make Dubbo applications more stable by management layer are highly coupled to each introducing short-circuit, isolation and flow- other. controland policies. Latency-aware LoadBalance policies. Service Metadata Extremely large-scale clusters Metadata need classified by purpose: service Meet the challenges of large scale clusters: maintenance, remote call, dynamic properties. service discovery, memory footprint and Big pressure for Registry and User when addresses, CPU, etc. stored in one URL. Traffic Routing Asynchronism Provides more routing policies: condition, Promote overall throughput and CPU script, enabling argument routing, zone- utilization of distributed systems: aschronous aware routing, canarying, and more. API, Reactive, Stream dubbo.apache.org Copyright © 2018 The Apache Software Foundation

12. Roadmap 12 Eco-System – SPI Extension Spring XML Annotation Java Config Spring Boot Spring Cloud Reactive Fluent API API config ZK broadcast eureka etcd CS hazelcast Apollo Diamond Archaius registry LB Least Failsafe Failover Random Latency Script Canary Args Active cluster Random Consiste Conditio Zone- Failfast Hystrix Weight Inteligent Robin nt Hash n aware router Hessian Redis HTTP JsonRPC REST Avro Thrift gRPC JMS protocol transporter JSON Java Hessian2 netty netty4 XIO Dubbo Dubbo3 serialize FST kryo Protobuf HTTP QUIC HTTP2 Thrift Rx dubbo.apache.org codec Copyright © 2018 The Apache Software Foundation


14.Roadmap 14 Cloud Native - Dubbo Mesh DUBBO REGISTER REGISTER RPC CONFIG CONFIG Service Mesh CLUSTER CLUSTER Low level platforms are providing more capabilities that usually LOAD BALANCE LOAD BALANCE exists in higher level frameworks DUBBO like Dubbo. Dubbo core itself can ROUTER ROUTER RPC be more lightweight and Dubbo Mesh integrate with low level PROTOCOL PROTOCOL platforms as a data panel. DUBBO MESH DUBBO MESH Polyglot Developers can use any language in a cloud environment. A sidecar SERVICE TRACE DISCOVERY SERVER solution integrating service governance capabilities can easily CONFIG support multi-languages. And this SERVICE is a problem both Dubbo and Spring Cloud faces. dubbo.apache.org Copyright © 2018 The Apache Software Foundation

15. Dubbo at Apache 15 Community Over Code Phase 1: Preparation IP First Spend nearly 3 months in total. With 1 champion, Mentor Clearance Release 4 mentors. 1 week for proposal preparation, discussed and voted for 72h respectively, Proposal SGA Committer entered Incubating after 3 binding votes. Phase 2: Incubating This phase will take 8+ months. Asset transfer Discuss ICLA PMC TLP and community building are the most important part, Remember the Apache way: community Vote Meet Up over code Phase 3: Graduation We will pass the maturity evaluation and then vote for graduation. Maturity Evaluation dubbo.apache.org Copyright © 2018 The Apache Software Foundation

16. 16 Home dubbo.apache.org dubbo.io GitHub CONTACT US github.com/apache/incubator-dubbo github.com/dubbo Mailing List WWW.YOURCOMPANY.COM dev@dubbo.apache.org IM gitter.im/alibaba/dubbo wechat: northlatitute dubbo.apache.org Copyright © 2018 The Apache Software Foundation