[Jenkins-infra] Improve website performance from Asia?

Olblak me at olblak.com
Fri Oct 5 19:11:44 UTC 2018


Hello,

> I'm really surprised to hear that the CDN would cost more than firing
> up a k8s cluster. How come..?
It depends how many service you have on your cluster, CDN prices are
based on the network bandwidth and the kubernetes cluster price is based
on VM size in your cluster.
I took more time to evaluate this. So a small Kubernetes cluster
composed of two D4sv3 nodes would cost $376.68 in Japan and then we can
run several service on it.We can probably reduce the size of the node to save some money depending
on what service we deploy there.https://azure.microsoft.com/en-us/pricing/calculator/?service=kubernetes-service#kubernetes-service5c458bfe-35ec-4a1f-a670-1cb4639873bc
Regarding the bandwidth, I had a look to two website access logs,
jenkins.io and javadoc.jenkins.io.They represent respectively a high traffic and a low traffic website.
I looked for 'byte sent' per request and for the last 7days as it's less
convenient to look for a longer period and I extrapolate to a month. I
used the google analytics data to have an idea of from where people come
from based on continents.
Over the last 7 days, I got 301GB for jenkins.io and 3GB for javadoc,.

I analyzed the price with the Standard CDN service and I didn't take
into consideration South America and Australia as people coming from
there are marginal compare to others zones.
Jenkins.io (Details in attachment)
==========
Total bytesent
301666700191  Bytes (7 days)
301.66 GB (7 days)
28.897 $/Week
115.588 $/4Weeks

javadoc.jenkins.io (Details in attachment)
=================
Total bytesent
3686484234 Bytes (7 days)
3.686 GB (7 days)
0.35 $/Week
1.41 $/4Week


Based on this analyze, using CDN seems less expensive than I initially
though at least for jenkins.io. it's also very easy to put in place and
would be interesting for everybody not only Asian people.https://azure.microsoft.com/en-us/pricing/details/cdn/

On the other side, the kubernetes approach is initially more expensive
and cover less territory but:* we can deploy multiple websites on one cluster. 
* Multiple cluster provide "cluster failover". 
* We plan to move totally pkg.jenkins.io and the update center on azure
  and those two services need bandwidth and a good response time. I
  still have to evaluate the need for them
Ps: I put a sanitized version of the access logs in attachment with three information, Byte Sent, url, and number of occurrence per url

On Thu, Oct 4, 2018, at 2:04 AM, Adam Papai wrote:
> I'm really surprised to hear that the CDN would cost more than firing
> up a k8s cluster. How come..?> 
> Do we have any data about the amuont (GB or TB?) of data transfer
> in/out in the APAC region?> 
> 2018年10月2日(火) 18:56 Olblak <me at olblak.com>:
>> 
>> Hello,
>> 
>> I recently discussed with some people about the speed performance for
>> users located across the world, so I had a look to the data we have.>> I put in attachment two screenshots one about the location of people
>> who went on jenkins.io over the last year and a second which shows
>> time it takes to display the jenkins.io from different places.>> 
>> It appears that people from Asia experience 5 time slower connections
>> when they go on jenkins websites than North American or Western
>> European and since one third of Jenkins.io visitors come from Asia, I
>> think it could have great impact to improve their experience>> 
>> So I am wondering if we should try to find a solution to this? 
>> And If they are people interested to contribute?
>> 
>> I don't have an easy and quick solution right now.
>> The two main approaches that I have in mind are:
>> 1) Use a CDN in front jenkins websites which will be very expensive
>> 2) Deploy an additional Kubernetes cluster to host the different
>>    websites, from Asia>> 
>> Another advantage of having multiple small cluster instead of one
>> bigger one, it becomes easier to upgrade kubernetes cluster without
>> downtime>> 
>> If we go with the second approach, it means
>>   Deploying Static files on one Azure File Storage per application
>>   and per region>>   Configuring the different Kubernetes cluster with the different
>>   file storage>>   Configuring an Azure Traffic Manager to redirect people to the best
>>   endpoint (Asia or East America)>> 
>> Following applications can be "easily" deployed on those new Clusters>> 
>> - jenkins.io
>> - accounts.jenkins.io
>> - javadoc.jenkins.io
>> - reports.jenkins.io
>> - repo.azure.jenkins.io
>> - plugins.jenkins.io
>> 
>> Cheers
>> 
>> ---
>> -> gpg --keyserver keys.gnupg.net --recv-key 52210D3D
>> ---
>> _______________________________________________
>> Jenkins-infra mailing list
>> Jenkins-infra at lists.jenkins-ci.org
>> http://lists.jenkins-ci.org/mailman/listinfo/jenkins-infra
> 
> 
> -- 
> *Adam Papai*
> Senior Operations Engineer
> CloudBees, Inc.

> CloudBees-Logo.png


> 
> P: +8170-4092-4762*
*E: apapai at cloudbees.com

> Skype: woohskype
> Twitter: @wooh_tw[1]



Links:

  1. https://twitter.com/wooh_tw
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.jenkins-ci.org/pipermail/jenkins-infra/attachments/20181005/e6095797/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: javadoc_7_accesslog.ods
Type: application/vnd.oasis.opendocument.spreadsheet
Size: 461795 bytes
Desc: not available
URL: <http://lists.jenkins-ci.org/pipermail/jenkins-infra/attachments/20181005/e6095797/attachment-0002.ods>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jenkinsio_7_accesslog.ods
Type: application/vnd.oasis.opendocument.spreadsheet
Size: 354516 bytes
Desc: not available
URL: <http://lists.jenkins-ci.org/pipermail/jenkins-infra/attachments/20181005/e6095797/attachment-0003.ods>


More information about the Jenkins-infra mailing list