Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

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

评论

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

成功实践丨基于昇腾,安擎助力天津银行开启加速度

科技热闻

Github星标57.9K!阿里巴巴Java面试突击汇总(全彩版)首次公开

程序员小毕

程序员 程序人生 JVM 多线程 Java 面试

这份神仙级Spring Security源码手册,真的很强悍

小二,上酒上酒

spring spring security springboot

耗时182天肝出来1015页分布式全栈手册太香了

程序知音

Java 程序员 架构 分布式 后端技术

阿里内部整理的Spring boot保姆级笔记,简直太牛了

小二,上酒上酒

spring springboot

【融云出海白皮书免费看】出海洞察之美国的「高线市场模型」

融云 RongCloud

互联网 数据 模型

【Go】gitlab 内部 Go 组件 Module 私有化

非晓为骁

go语言 包管理 go module go mod

牛啊牛啊,这篇Spring Cloud Alibaba笔记一应俱全,几乎涵盖了所有操作

小二,上酒上酒

spring spring cloud alibaba

【一Go到底】第十二天---switch

指剑

Go Goalng 10月月更

Baklib知识分享|企业办公必备利器,在线协作文

Baklib

在线协作文档

P9力鉴!Alibaba9月最新出品776页JDK源码+并发核心原理解析小册

程序知音

Java 架构 jdk 并发编程 后端技术

六个方法教你如何搭建产品的在线帮助中心

Baklib

产品 帮助中心

【转载】Byzer + OpenMLDB 实现端到端的,基于实时特征计算的机器学习流程

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Vector、ArrayList、LinkedList的区别

zarmnosaj

10月月更

澳鹏Appen田小鹏博士:以高质量数据赋能AI驱动的元宇宙时代

澳鹏Appen

人工智能 AR/VR 训练数据 元宇宙 数据训练

Baklib知识分享|制作网站FAQ需要注意哪些内容?

Baklib

重磅 | 九科加入麒麟生态图谱,携手共建自主可控信创生态

九科Ninetech

Vue-监听使用方法和过滤器

默默的成长

Vue 前端 10月月更

全网疯传,SpringBoot笔记(全彩版)顶翻天

程序知音

Java spring 源码 springboot 后端技术

活动预告 | AI for Good 2022 峰会

第四范式开发者社区

机器学习 数据库 开源 时序数据库 特征

五面腾讯,六h灵魂拷问,终拿下 58W offer

程序知音

Java 腾讯 java面试 后端技术 Java面试八股文

多图详解kafka生产者消息发送过程

石臻臻的杂货铺

Kafk Kafka实战 10月月更

浅谈云安全和传统安全

HummerCloud

云计算 云原生 云安全

企业级低代码中“自动化工作流”的5大优势!

优秀

自动化 工作流 企业级低代码

开源机器学习数据库 OpenMLDB:线上线下一致的生产级特征平台

第四范式开发者社区

人工智能 机器学习 数据库 特征 开源、

活动预告 | Feature Store Summit 2022

第四范式开发者社区

机器学习 数据库 开源 时序数据库 特征

惊为天人,百度推出的Redis笔记真的太香了

小二,上酒上酒

redis 面试

连接团队知识孤岛,优化团队工作流程

Baklib

知识管理 知识库

记录第三天-Vue组件

默默的成长

Vue 前端 10月月更

来了来了,阿里p9整理的Netty速成笔记,应有尽有

小二,上酒上酒

Netty

阿里出品的这份Java性能调优实战手册,直接涨薪25K,真的香啊

小二,上酒上酒

Java 阿里 阿里面试

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