设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 Ubuntu 查看内容

Canonical设计团队:ubuntu.com的“下载日”

2014-9-1 17:05| 发布者: joejoe0332| 查看: 3417| 评论: 0|原作者: IMCN|来自: IMCN

摘要: 在新版本的发布日,准备试用新ubuntu的小伙伴们,从他们那里,我们可以获取高达8000次/秒的下载请求!事实上,去年十月ubuntu13.10发布当天,在很长一段时间里,ubuntu.com官网在多次下载高峰,保持了良好的状态而没 ...

  在新版本的发布日,准备试用新ubuntu的小伙伴们,从他们那里,我们可以获取高达8000次/秒的下载请求!事实上,去年十月ubuntu13.10发布当天,在很长一段时间里,ubuntu.com官网在多次下载高峰,保持了良好的状态而没有崩溃,这要归功于付出巨大努力的“基建设施团队”。


1680x1050


  Ubuntu.com一直运行在Drupal官网浏览)上,如今我们已经逐渐将它转移到了定制更多的Django基础系统上。今年三月,为了Trusty Tahr的发布,我们及时开始了将网站关键的#下载部分#进行了迁移的工作。这成为了,为寻找缓减服务器压力方法,而得到的一个极佳的机会!


huairen


  选择合适的镜像下载源(geolocated)对于网站应用来说是一件艰辛的工作


  当有人从ubuntu.com页面(在一个感谢页哦)请求下载ubuntu的时候,事实上,ubuntu.com向其发送了大概300个左右的离他最近的镜像地址


  为了给用户选择一个合适的镜像下载源,不得不做下面这样的事:


1. 确定客户端IP地址所显示的,用户所在的国家

2. 获取所在国家存在的可用镜像源列表

3. 随机为他们匹配能符合高带宽下载的镜像源


  这个过程是目前整个网站中最密集的工作,而这却并不是因为这些任务本身是特别复杂的,只是因为这需要为每一个8000次/秒的潜在用户,在激烈下载的时候,预防网站因高强度请求可能导致崩溃时,而必须要做的!


  为了能够有效应对网站的负载,我们为此需要使用超过40个虚拟机均衡负载


客户端真的什么都能做吗?

  我们首先要做的就是,将完整的镜像列表加载到“感谢下载页”,并且调用用户浏览器中JS来选择出合适的镜像!这将大大减少对网站应用的负载压力,这是因为下载页面将像其他页面一样被有效的静态缓存!


  为了能够可靠的获取用户所在的地理位置,唯一的办法就是通过客户端使用其中的地理定位API,这一功能,85%的用户浏览器都是支持的!另一个小问题是,只有用户给出一个下载请求的许可,才可以获得一个分配的镜像下载,可能浙江稍微对他们的体验造成一定的影响!


 这个解决方案对用户的使用来说稍许有些不便利,因此,我们找到了新的“trade-off”:


融合解决方案——“Apache geolocation”

  Apache的mod_geoip2可以应用基于用户位置的服务器规则,而这要比网站应用层的地理定位要快的多!这就意味着,我们可以使用Apache向用户发送其特定国家的下载页(比如德国的下载页面),通过在URL后添加&country=GB来实现!


  这些特定下载页包含了所在国家的可用下载的镜像源列表,现在它们没一个都可以被缓存到本地,这样就极大的缓减了服务器的压力。客户端通过JS随机选择镜像给用户(这样每一个镜像的下载源都应该是最合适的),随后启动下载,而此处却不需要客户端的地理定位!


ok


  很高兴,这个解决方案在Trusty Tahr发布前被成功实施了!


——(此文章同时被发表在了robinwinslow.co.uk


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部