Considering setting mirror or CDN in China

There are the largest amount of Chinese developers in the world but downloading Gradle distributions is extremely slow (<100K/s, sometimes 10K/s) in China due to Chinese government’s network blocking. However, there’re many Chinese companies providing cloud and CDN service, is there any possibility of setting a mirror in China? This can benefit millions of Chinese developer.

For example, when a request with Chinese IP detected, the server can give a 302 response and make the client redirect to distribution source in China. If possible, I can help to contact the cloud service providers in China.

The following cost can be a reference.

Assume that there are 1 million downloads of gradle distribution monthly, according to typical price of CDN service, the monthly cost is:

1000,0000.06 GB0.0414 US$/GB=2484 US$

HTTP download price

  • 0 GB to 10 GB Free
  • 10 GB to 100 TB 0.0414 US$/GB
  • more than 100 TB 0.0371 US$/GB

Thank you for raising this, Bo.

We use Cloudflare to host Gradle downloads. It looks like they may have a CDN edge in China, so I’ll bring this up with our Cloud Services team.

Cheers,
Eric

Hi @eriwen.
According to cloudflare doc: https://support.cloudflare.com/hc/en-us/articles/209156358-If-I-would-like-to-improve-performance-in-China-which-service-should-I-choose-Cloudflare-or-Yunjiasu- , improve performance in China, we must have a ICP license.

And this link shows how to make ICP license in cloudflare: Cloudflare China Network

Thanks.

1 Like

So you mean the CDN and performance improvement is NOT available in China before we can provide an ICP license, right?

Yes. According to Chinese law, every website services for China have to make a ICP license. And cloudflare will use Chinese mirrors(provided by Baidu Jiasule) if you have a Chinese ICP license, otherwise will use American mirrors. So this would cause downloads.gradle.org very slow in China.

That’s very helpful information, Feng!

I will investigate getting an ICP license so Chinese users can enjoy a much faster Gradle.

Or maybe we can consider publish -bin.zip and -all zip to maven central, just like Jetty or Gatling?

That is to say we can use maven mirrors.

Thanks for your suggestion, we sure can, but I personally like the same domain name. BTW, is it possible to set some “redirect rule”, which can redirect all traffic from China IP to another domain with 301/302? If so, we could use some object storage service inside China and redirect China access to these domain.

Maybe 302 is better. And if using maven mirrors, can redirect to aliyun in China: http://maven.aliyun.com/nexus/content/groups/public/