java at alibaba - java community process · pdf filejava at alibaba san hong li ... extending...

17
Java at Alibaba San Hong Li Senior Software Engineer at Alibaba [email protected]

Upload: dangnhan

Post on 06-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Java at Alibaba

San Hong LiSenior Software Engineer at [email protected]

Page 2: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Agenda

• About Alibaba

• How Java is used at Alibaba

• Alibaba and community

Page 3: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Alibaba Family Tree

THE ALIBABA GROUP

A

N

A

L

O

G

Y

N/A

Alibaba’ C2C arm Alibaba’ B2C arm Alibaba-backed

logistics company

Alibaba-backed

payment companyAlibaba’ cloud computing platform

ALIYUN.COM ALIPAY.COM CAINIAO.COM

N/A

TMALL.COMTAOBAO.COM

ALIBABA.COM

ALIEXPRESS 1688.COM

Alibaba’ B2B arm

Page 4: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

China's Singles' Day

-2

0

2

4

6

8

10

12

14

16

18

20

2011 2012 2013 2014 2015 2016

GM

U in

bill

ion

US

do

llars

Year

Gross Merchandise Volume(GMU) on Singles Day

Symbolized by four 1s, Nov 11 is the so called “Singles’ Day” in China

• Single's Day, the world's biggest online shopping day, the total sales in 2016 reached $17.8 billion

• In contrast, the total online sales from Thanksgiving, Black Friday and Cyber Monday combined in the US in 2016 is: $12.8 billion (source: www.practicalecommerce.com)

Page 5: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

China's Singles' Day(Cont.)

320014,000

42,000

80,000

140,000

175,000

1200 3,85015,000

38,000

86,000

120,000

0

20000

40000

60000

80000

100000

120000

140000

160000

180000

200000

2011 2012 2013 2014 2015 2016

Transantions per Second(at peek)

Alibaba cloud platform Alibaba payment service

• On Singles Day in 2016, peak transactions/sec reached 175k, and peak payment orders processed/sec reached 120k

• In contrast, Visa can now process a peak volume of 56K messages per second(source: www.digitaltransactions.net)

Page 6: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Java at Alibaba

• Running Java at massive scale• Million instances of JVMs, serving insurmountable number of

requests every second• Service oriented architecture

• Services communicate with each other via RPC• typically, many JVMs as one cluster per service

• Heterogeneous • The native libraries written in C/C++ communicate with Java via JNI

Page 7: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Java at Alibaba(Cont.)

AliOS

AJDK

: Alibaba/Alipay JDK, based on OpenJDK

CaiNiao

Middleware

C2C, B2C, B2B Alipay OthersAliYun

(x64, Linux)

All the Java applications developed in Alibaba and affiliated companies, such like Alipay, CaiNiao are running on AJDK.

Page 8: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Java Technology we used

Apache Tomcat®

• Alibaba custom-builds most of its software based on rich Java open-source ecosystem, which are implemented for online trading, payments, logistics, and a lot of other things.

……

Page 9: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

AJDK Team

• Development• Develop new features to meet our business requirements• Fix bugs• Port patches from upstream

• Release• Quarterly• Sync up with upstream before release• Current main release: JDK8/x64-linux

• Testing• Jtreg test suits• Our own unit test suits• SVT• A/B testing

• Developer support• Troubleshooting• Consultancy

Page 10: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

AJDK: customize OpenJDK for our own needs

• Performance optimization and cost saving• High density deployments• Optimize for higher throughput • Enhancement in JVM• Profile-driven application optimization

• Reduce latency caused by GC

• Diagnostics tools for troubleshooting support• Intrinsically designed for cloud

Page 11: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Tomcat/JDK extended for multitenancy

• AliTomcat: run multiple apps side-by-side safely

• AJDK allows for colocation of multiple JEE apps(as

tenant) in a single instance of JVM:

• Isolate application from one another

• Share metadata aggressively and transparently

• AliTomcat + AJDK as infrastructure technology for high

density deployment Hardware

AliTomcat(Multi-tenant)

AJDK(Virtualized)

OS

App1 App2 App3 Appx

Page 12: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

JWarmUp: eliminate JVM warm-up

• Before JWarmup, our application owners usually use ‘mock’ data to warm-up JVM to let JIT optimize before actual requests come in.

• AJDK has a feature called ‘JWarmup’ to obviate the need for "warming-up" by:• Record the profiling data (in beta testing)• Let JIT compile code based on recorded profiling data before requests

come in (in online run)

Page 13: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

WISP: enable coroutine based async programming model

• Async programming model performs best but hard to write and maintain

• WISP enables async programming model transparently• Based on coroutine implementation for the

HotSpot from Da Vinci Machine project Yield to another corountine when io is

blocked transparently Yield to another available co-routine(in same thread) transparently while read is blocked.

WISP: is the light phenomenon traditionally ascribed to ghosts

Page 14: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Diagnostics and Troubleshooting

• ZProfiler: problem and performance diagnostic tool• GC log analyzing • Low-overhead hot method

profiling • Method tracing

• ZDebugger: browser-based debugging tool• Designed for debugging Alibaba

cloud application

Page 15: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Alibaba and Open Source

• Alibaba has a very strong record of open source and community involvement• Linux: joined Linux foundation in last year, more involved in

technology and standards• MySQL: joined the WebScaleSQL initiative which is designed for

extending MySQL to its large-scale deployments• Java: open source a number of projects, including Dubbo, jStorm,

RocketMQ, FastJSON, Druid, etc. some of them are donated to Apache

Page 16: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

Alibaba is willing to be deeply involved in OpenJDK community• So far, two OpenJDK committers and another one in expert group in

JSR 353. • Would like to contribute back improvements made in AJDK to

OpenJDK

As one of world’s largest users of java , Alibaba will be happy to share java experiences in online ecommerce, financial payment, logistics to help community, influence the direction of java technology.

Alibaba and Java Community

Page 17: Java at Alibaba - Java Community Process · PDF fileJava at Alibaba San Hong Li ... extending MySQL to its large-scale deployments • Java: open source a number of projects, including

@ 阿里技术保障

Q & A

Thank you