写点什么

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:342046

评论

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

软件测试 | 巧用监听器—识别性能缺陷

测吧(北京)科技有限公司

测试

什么是智慧公共厕所?光明源智慧厕所

光明源智慧厕所

1v1视频交友APP的详细搭建部署步骤和视频交友APP核心功能介绍

山东布谷科技胡月

一对一直播源码 一对一直播系统 1v1语音系统搭建 视频社交APP开发 1v1交友app开发

直播预告|MLOps + LLM = LLMOps LLMOps meetup 了解大模型背景下的MLOps

星策开源社区

AI 大模型 MLOps LLM LLMOps

软件测试 | 聚合报告(Aggregate Report)

测吧(北京)科技有限公司

测试

软件测试 | 常见的自动化测试架构

测吧(北京)科技有限公司

测试

MobPush 查看推送数据

MobTech袤博科技

十大理由,说清企业为何需要 CI/CD

极狐GitLab

DevOps 自动化 CI/CD 降本增效 效能提升

V8中的快慢属性(图文分解更易理解😃)

甜点cc

6 月 优质更文活动

王炸,英特尔PowerVia芯片背面供电即将量产,遥遥领先三星和台积电

E科讯

软件测试 | 走出自动化测试认知的误区

测吧(北京)科技有限公司

测试

.net低代码开发平台 快速实现组织架构数字化

力软低代码开发平台

官宣!XTransfer与全球社交网络服务巨头Meta达成战略合作

XTransfer技术

探访官招募 | InfoQ 写作社区 邀您探访 2023 亚马逊云科技中国峰会

InfoQ写作社区官方

热门活动

还在为开发难度发愁?这个低代码平台能让你轻松搞定!

加入高科技仿生人

低代码 数字化 数智赋能

时序数据库 TDengine 六周年庆典活动圆满落幕,现场火爆

爱倒腾的程序员

涛思数据 时序数据库 ​TDengine

开源“上天入地”的本领都在这!2023开放原子全球开源峰会「开源展览」一文拿捏!

开放原子开源基金会

开源 开放原子全球开源峰会 开源展览

RocketMQ 学习社区重磅上线!AI 互动,一秒了解 RocketMQ 功能源码

阿里巴巴云原生

阿里云 AI RocketMQ 云原生

回顾|开源之夏校园行兰州大学站

MatrixOrigin

分布式数据库 HTAP MatrixOrigin MatrixOne 超融合数据库

赋能行业,因云而动 | 山西软件行业CXO思享会在太原成功举办,助力山西软件行业高质量发展

科技热闻

软件测试 |BeanShell服务器

测吧(北京)科技有限公司

测试

软件测试 | 如何分析性能测试结果

测吧(北京)科技有限公司

测试

软件测试 | 借助Ant实现批量测试和报表生成

测吧(北京)科技有限公司

测试

D8调试工具——jsvu的使用细则

甜点cc

6 月 优质更文活动

STEPN运动挖矿nft虚拟跑鞋app系统开发(原生)

开发微hkkf5566

软件测试 | 自动化测试的基本流程

测吧(北京)科技有限公司

测试

什么是双机热备技术?华为和思科如何实现双机热备?

wljslmz

6 月 优质更文活动

霍格沃兹测试开发线下班开班啦~

测吧(北京)科技有限公司

测试

软件测试 | 分析确定性能测试指标

测吧(北京)科技有限公司

测试

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