写点什么

华为云 OBS+CDN 的最佳成本实践,都在这里了(续)

  • 2020-03-24
  • 本文字数:1192 字

    阅读完需:约 4 分钟

华为云OBS+CDN的最佳成本实践,都在这里了(续)

多云存储数据同步方案

在昨天的文章(延伸阅读:华为云 OBS+CDN 的最佳成本实践,都在这里了)中我们提到,为了避免单厂商故障、提高整体业务连续性,企业可以采用多云对象存储+多云 CDN 架构。这种多云配置模型下,就必须考虑如何实现不同厂商云存储之间的数据同步。下面我们继续介绍实践,提供几个方案供大家参考。


应用双写


如果数据是在应用服务侧产生,或者数据在客户端产生但通过服务端写入对象存储,建议使用双写方案,架构如下:



此时业务应用可对接两家对象存储的 SDK,将文件以同步模式或者异步模式写入两家对象存储。对象存储的上行流量免费,所以该架构不会增加额外的流量成本。


数据回源


如果业务已在使用其他云对象存储,并且引入新云厂商的对象存储和 CDN,且不想改变原有上传逻辑,建议可使用“数据回源”功能。


例如:原来客户使用的是其他云厂商的对象存储,现在新引入华为云的 OBS+CDN 服务。当 OBS 刚接入系统时,客户端的文件访问请求首先会到达华为云的 OBS,而 OBS 桶里没有该文件时,通过“数据回源”将客户端请求重定向到设定的原有对象存储源站,并且把数据传递给客户端(路径 1)。与此同时,华为云 OBS 会异步地从其他云源站将数据拉取到 OBS 桶存储下来(路径 2)。架构如下:



当下次客户端请求同样的文件时,华为云 CDN 将直接回源到 OBS 获取数据,不会出现获取不到的情况。


需要说明的是,“数据回源”功能是被动触发式,即只有向 OBS 发起请求后 OBS 才会到设置的源站将数据拉取过来。而当一个新文件上传到其他云的对象存储后,建议业务应用程序向华为云 OBS 触发一个 GET 请求来拉取数据(发起 GET 请求后可关闭连接,无需接收实体数据)。


Serverless 触发式上传


如果客户原来使用云厂商支持 Serverless,则可以通过 Serverless 异步把新增数据同步到华为云 OBS。该方案同样不改变原有的上传逻辑,当文件上传到其他云对象存储后,触发函数计算服务,通过 Serverless 方式将文件同步到华为云 OBS,架构如下:



该方案需要客户在其他云启用函数计算服务并部署上传文件到 OBS 的代码,会产生函数计算服务的费用。另外,一般函数计算的运行时间有一定限制,该方法不适合大文件上传的场景。


异步抓取


在单个文件不大的情况下(小于 5GB),还可以使用异步抓取方式,把上传到其他云对象存储的数据同步到华为云 OBS。方式为调用 OBS 的异步抓取 API,由 OBS 的异步抓取组件将文件拉取到 OBS 桶保存。



该方法需要客户在业务代码里增加调用 OBS 异步抓取功能的代码。


除了以上 4 种方法外,还有一种客户需要把其他云厂商的对象存储中大量的存量数据(从 TB 级到 EB 级)批量迁移到 OBS 的场景,针对这种情况,华为云提供了 OMS 对象存储迁移服务,由华为云专业的迁移服务团队来帮助客户完成整个迁移活动,有需要的同学可以上华为云官网进行了解。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/BbQFROBc4oyxSy8Rvcza0A


2020-03-24 21:051643

评论

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

ARTS第一周

困到清醒

ARTS 打卡计划 起跑

利用树形结构辅助实现去重算法

卓丁

算法 algorithm tree Deduplication

Rust 遇上 C/C++ (一):数组操作

Coding Fatty

c c++ rust 编程语言

Spring事务@Transactional底层原理

Geek_k6ry2n

spring 事务 hiber

ARTS 打卡 WEEK1

编程之心

ARTS 打卡计划

重学 Java 设计模式:实战抽象工厂模式

小傅哥

设计模式 小傅哥 重构 代码质量 代码坏味道

在线文档的开发难度与突破

葡萄城技术团队

分布式协同 SpreadJS 在线文档

列个清单-《清单革命》

Jack Hong

手把手透析C语言堆内存申请malloc及扩容realloc

卓丁

c 堆内存管理 heap memory malloc realloc

学会推销自己

一尘观世界

创业 程序员 外包 销售 接项目

python实现·十大排序算法之归并排序(Merge Sort)

南风以南

Python 排序算法 归并排序

程序员的晚餐 | 5 月 24 日 咖喱鸡块

清远

美食

Implement Stack using Queues

onee

LeetCode

思考:如何打造一个优秀的研发体系?

菜根老谭

研发管理 研发效能 研发体系

坚持ARTS(week-1)

王钰淇

ARTS 打卡计划

从 Node 到 Deno

寇云

node.js deno

DDD 中的那些模式 — CQRS

Joshua

领域驱动设计 DDD 事件驱动 CQRS Event Driven

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(二)

图雀社区

node.js vue.js Vue

最优组合问题-贪心算法

Geek_k6ry2n

ARTS打卡第一周

Tom

别在发愁写页面了,强烈推荐几款傻瓜式扒网站神器!!

公众号:V5codings

绿宝这条宝藏街,夜宵也太太太太太好吃了吧!

极客编

ziliqa生态打造区块链技术实体应用新标杆

极客编

ARTS打卡第一周

落曦

Cassandra集群架构及算法剖析

老任物联网杂谈

大数据 分布式 Cassandra 时序数据库

JUC整理笔记二之聊聊volatile

JFound

20200518-20200524朋友圈思考汇总

罗小布

日常思考

理解这八大优势,才算精通单元测试

禅道项目管理

测试 单元测试

Refcard,近300份技术大咖总结的cheat sheet

KAMI

学习 开发 分享 作弊卡

回“疫”录(24):开始了就不算晚

小天同学

疫情 个人成长 回忆录 个人感想 日常思考

人工智能学习心得--人工智能分类

岛乾坤

AI

华为云OBS+CDN的最佳成本实践,都在这里了(续)_云原生_华为云产品与解决方案_InfoQ精选文章