阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

CDN 搭配 OSS 最佳实践 ——搭建动静态分离的应用架构

  • 2019-10-21
  • 本文字数:1784 字

    阅读完需:约 6 分钟

CDN搭配OSS最佳实践 ——搭建动静态分离的应用架构

一、传统架构及痛点

传统的网站产品应用架构,所有资源部署在应用服务器本地存储或挂载的数据存储区,对于动静态资源不作分离, 产品架构如下图所示:



该架构存在诸多问题:


  • 系统性能会随着系统访问量的增长而受到限制甚至遭遇瓶颈;

  • 静态资源访问量巨大时,占用出口带宽,影响动态请求响应;

  • 用户请求分散时,回源距离长,影响用户体验(单纯使用 CDN 仍然需要回源拉取)。

二、CDN+OSS 架构方案:

该架构充分利用到“OSS 带宽/流量成本低、独立响应、存储空间无上限”的特点,结合 CDN 分发网络,实现资源动静分离,支持海量用户访问。


优化后产品架构如下图所示:


1、适用场景

  • 静态文件存储量大,文件数量多,文件体积较大,服务器存储空间不够;

  • 静态文件访问量大,占用带宽负载或服务器负载,I/O 问题导致用户访问卡顿;

  • 用户分布较为分散,分布在全国各地、各运营商;

  • 对文件下载速度要求较高,且并发下载量高。

2、架构描述

涉及产品介绍:


  • 对象存储服务(OSS:Object Storage Service)是京东云自主研发的大规模分布式对象存储服务,面向企业和个人开发者提供高可用、低成本、强安全的云端存储服务。您可以实现对数据的统一管理,满足各类存储需求。

  • 支持标准的 RESTfulAPI 接口,您只需按实际用量付费,无最低使用限制。支持流式写入和文件写入两种方式。面对冷数据存储的场景,对于那些访问频率比较低,同时对访问速度要求不高的数据,可以将数据以低频访问的方式进行存储,为您保存和备份资料提供了一个海量低价的空间。

  • 京东云 CDN(Content Delivery Network),基于京东优质网络基础设施和智能云计算技术,向用户提供低成本、高性能、可扩展的互联网内容分发服务。利用广泛的节点覆盖和先进的云调度、云存储技术,将海量内容更快、更可靠地投递给互联网终端用户,降低网站运营成本,提升用户互联网应用体验。

  • 京东云 CDN 的前身是服务于京东商城的自建 CDN 平台,历经多年 618 和 11.11 等大促业务活动考验,京东云 600+ 节点广泛覆盖于全国各区域和运营商,精选全网优质基础设施,边缘节点覆盖全网、全地域,真正实现就近接流、就近推流。


将京东云的对象存储和 CDN 服务搭配使用,使用京东自建的全网 CDN 加速节点,为您提供上传下载双向加速,实现全网覆盖、快速高效的内容分发。


架构优势:


  • 降低 Web/应用服务器负载,静态资源响应压力转移到 CDN,避免性能影响;

  • 费用最低,OSS 的存储费用远低于云主机磁盘费用;

  • 超大容量存储空间,大带宽上传通道,无需担心存储空间上限;

  • 降低流量费用,正常访问热度情况下,相比直接访问 OSS,减少 95%回源流量。

三、实际案例

以一个常见的 Web 站点为例。www.abc.com 是一个新闻门户网站,有 500GB 的新闻图片、新闻视频、JS 文件等静态内容,使用了 LAMP 架构,目前站点全套架构部署在京东云上。随着用户业务发展,访问量的不断增长,不少用户反映,访问网站的速度越来越慢,图片、视频加载慢,卡顿率高,网站响应慢。客户工程师发现用户上传的图片越来越多,业务高峰期,带宽峰值很高,服务器 I/O 经常被占满。


对于以上案例我们可以利用以上介绍的 OSS+CDN 架构对网站进行优化,实现动静分离的产品架构,提升用户访问体验,同时成本可控。


解决方案及步骤如下:


1、对网站应用架构进行整理,区分动态程序部分和静态部分到不同的目录进行管理,建立 image、video、js 目录,分别放置所有网站图片素材;


2、京东云控制台进入 OSS 产品,新建一个 Bucket。根据云主机所在的区域选择 bucket 所在区域,权限选择“公共读”,bucket 名称与云主机新建的目录的名称对应,如“abc-image-bucket”、“abc-video-bucket”和“abc-js-bucket”;


3、分别绑定域名 image. abc. com 、video. abc. com、js.abc.com 并进行 CDN 加速。


4、上传文件:提供控制台上传和表单上传两种方式。


  • 控制台上传:可以通过对象存储控制台上传小于 1GB 的文件。如您要上传的-文件大于 1GB,请通过对象存储 API 或 SDK 的方式上传。

  • 表单上传:表单上传指用户使用 OSS API 中的 Post Object 请求来完成文件的上传,非常适合嵌入在 HTML 网页中来上传文件;


5、修改 DNS 调度,增加 CNAME 解析,将原本访问源站的请求,调度到 CDN 加速域名,以后用户访问您的网站的静态文件就全部通过 OSS+CDN 的方式访问,不再占用您云主机的资源。

四、典型应用场景

  • 新闻门户网站

  • 应用分发市场

  • 在线音乐、在线 K 歌

  • 视频、短视频(UGC/PGC)

  • 电影院线

  • 在线教育


2019-10-21 18:341558

评论

发布
暂无评论
发现更多内容

CRM和ERP的Sales Organization的映射关系

Jerry Wang

中间件 CRM SAP ERP

One Order行项目里Item Category是怎么计算出来的

Jerry Wang

CRM SAP abap ONE-ORDER

网络攻防学习笔记 Day23

穿过生命散发芬芳

5月日更 网络攻防

如何快速的学习一门新的编程语言?

架构精进之路

学习 5月日更

数字货币兴起背后:全球货币超发 主权信用贬值

CECBC

谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?

Jerry Wang

JavaScript SAP SAP UI5

第四次作业

Geek_9cf7b5

中间件事务码R3AC1里Block Size的含义

Jerry Wang

中间件 CRM SAP abap

如何用ABAP代码读取CDS view association的数据

Jerry Wang

CDS SAP abap CDS view

【Flutter 专题】123 图解简易 GroupList 二级分组列表

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

模块4作业

梦寐凯旋

架构实战营

Mybatis获取自增长id

风翱

mybatis 5月日更

SAP S4CRM (SAP Customer Management for S/4HANA) 1.0 介绍

Jerry Wang

CRM SAP abap S/4HANA

如何处理错误信息 Pricing procedure could not be determined

Jerry Wang

CRM SAP

面试问题 - 只用位操作在ABAP里实现a+b

Jerry Wang

面试 SAP abap

如何检查某个用户是否具有某个权限对象上定义的某种权限

Jerry Wang

CRM ERP abap Authorization Authentication

SAP ABAP的权限检查跟踪(Authorization trace)工具使用步骤介绍

Jerry Wang

SAP abap Authorization Authentication

CRM product UI里assignment block的显示隐藏逻辑

Jerry Wang

CRM SAP abap

如何从ERP下载Sales BOM到CRM

Jerry Wang

CRM SAP ERP abap

一种不通过UI给C4C自定义BO创建测试数据的方式

Jerry Wang

CRM SAP C4C Cloud for Customer

SAP CRM 和 Cloud for Customer 的 Document flow API 介绍

Jerry Wang

CRM SAP abap C4C documentFlow

SAP CRM中间件里的CSA队列有什么用

Jerry Wang

中间件 消息中间件 CRM SAP

利用CRM中间件Middleware从ERP下载Customer Material的常见错误

Jerry Wang

中间件 CRM SAP ERP

架构训练营-模块四作业

冬天的树

为什么有的系统的事务码BSP_WD_CMPWB看不见Enhance Component这个按钮

Jerry Wang

CRM SAP abap

CRM数据库表COM_TA_R3_ID的数据来源

Jerry Wang

中间件 CRM SAP abap

为什么使用中间件下载时总是收到警告消息Object is in status Wait

Jerry Wang

中间件 CRM SAP ERP

CRM中间件里的发布-订阅者模式

Jerry Wang

CRM SAP ERP abap

如何从ERP将Material的Batch信息下载到CRM

Jerry Wang

CRM SAP ERP abap

ABAP OPEN SQL里OPEN CURSOR和SELECT的比较

Jerry Wang

CRM SAP abap ST05 OPENSQL

同时开左右两个SAPGUI编辑器显示同一段ABAP代码

Jerry Wang

SAP abap SAPGUI

CDN搭配OSS最佳实践 ——搭建动静态分离的应用架构_架构_常亮_InfoQ精选文章