写点什么

又拍云存储负责人沈志华谈又拍云技术架构

2012 年 5 月 08 日

InfoQ:请先做下自我介绍并简单描述下目前主要从事的工作?

沈志华:您好,我是又拍云存储项目负责人,沈志华,目前主要负责又拍云存储的产品规划及技术架构设计的工作。又拍云存储为用户做的都是非常基础性的工作,主要是海量文件存储、存储文件在全国各地的高速访问(CDN)、图片的各种版本调用(缩略图),这些工作都是最基础的技术开发工作,每家互联网公司的开发人员都在重复不停的投入研发精力和大量的服务器硬件铺设,通过又拍云存储,我们可以将这些技术研发和大量的服务器投入共享给所有互联网网站,让其他公司不需要重复不停的制造同一个轮子。

InfoQ:请简单介绍下又拍云存储的技术架构,以及使用到的技术?

沈志华:又拍云存储架构采用各地方缓存节点、核心缓存层、中心数据机房,3 层结构部署,前端智能 DNS 调度用户到该用户访问最快的节点,地方缓存节点会保持连接 2 个核心缓存机房做负载均衡及相互备用,避免单路网络问题,核心缓存机房通过多条线路互备到数据机房读取文件。在整个云存储系统中,采用了比较多的开源技术,主要开发语言有:C、PHP、Erlang、Python,用的比较多的开源产品有: Nginx GraphicsMagick MySQL Memcached Hadoop Redis Squid Heartbeat 、IPVS BIND。

InfoQ:在安全性方面,又拍云通过哪些策略或技术手段来保证托管的图片的保密性的?

沈志华:针对互联网站图片存储的实际需求和特性,在安全性方面做了比较多的工作,

  • 文件操作接口和文件读取接口(只读,无操作权限)分离,客户网站用户只能访问读取接口,文件操作接口只对客户开放,需凭客户密钥授权操作。并且,文件读取接口可以单独设置关闭。
  • 帐号系统分离,空间管理员可设多个操作员帐号给不同部门或项目组的人员,并且权限分离,空间管理员只有空间设置权限,无文件操作权限。操作员只有授权空间的文件操作权限,无空间设置权限。最大程度分离帐号的权限。
  • 很多网站会允许用户浏览处理过的缩略图,但不允许或需要授权用户才能下载此图片的原图,又拍云存储有原图 Secret 功能,每个图片原图都可以设置 Secret key。
  • Token 防盗链,用户可以给每个 Url 生成 Token 签名,也就是只有获得网站允许授权的用户才能访问这个图片,并且该授权还可以设置过期时间,精确到秒。

InfoQ:在速度上,是如何保证图片的快速存储和读取的?

沈志华:

  • 不同于传统 CDN 服务源站在各地各个机房,又拍云存储源站分布在 CDN 网络核心机房,在回源这条回路上做了最大优化,保证快速读取。
  • 国内网络环境非常复杂,今天通畅的网络没法保证明天还是这么通畅,为了适应复杂的网络变化,又拍云存储有专门的技术人员,结合自身及第 3 方的各地速度监控系统,不断更新速度表格,将用户优化到访问最快的机房。
  • 每个缓存节点投入更多的资源,目前所有节点的部署的缓存容量规模均在 10T 以上,保障客户文件能长期缓存在各地节点。
  • 缓存节点机房服务器集群做 LVS4 层负载,7 层 Nginx 进行一致性 Hash 提高缓存命中率,冷热文件调度将热门文件调度到 SSD 存储。
  • 开发者可采用直传 API,让用户通过云存储网络直接上传到云存储,而不需要经过用户服务器,存储速度更快。

InfoQ:在建设阶段,遇到的主要挑战有哪些?

沈志华:又拍云存储之前一直作为又拍社区和又拍图片管家及其他少数几个网站的基础存储层提供,系统架构、功能开发在摸索升级过程中逐渐定型,并开放提供给所有互联网网站使用。最大的挑战莫过于从文件存储、网络加速、图片处理群,各个环节在日常运行、扩容升级、系统升级时刻保证整个云存储的稳定运行。

InfoQ:又拍云存储是云存储的一个实例,例如 Dropbox,Google Drive 等,您认为在云存储上,最重要的应该具备的 3 个特性有哪些?

沈志华:又拍云存储主要定位是为各个互联网网站项目服务,跟 Dropbox 和 Google Drive 的面向个人和企业的文件存储及共享定位上有所区别。 但最最重要的特性是相同的,安全、稳定、速度。

InfoQ:又拍云下一步有哪些规划,是否考虑开放其他 API?

沈志华:又拍云接下来在海量小文件存储及网络高速分发访问、图片标准处理这 3 项基础工作上会继续深耕,让更多的互联网公司解放这一块的技术运维精力投入。

InfoQ:您认为基于又拍云的接口或服务,目前有哪些优秀的案例,在未来还会出现哪些创意的应用?

沈志华:通过又拍云服务,减少了大量的基础工作研发,专于自己的产品业务,降低互联网企业做规模产品的门槛。比较典型的案例 iWeekly 周末画报,所有图片存储在又拍云上,从 2010 年发布 iOS 客户端到读者突破百万,带宽从几十 M 到几 G,一直专注于产品业务的优化,未受服务器和带宽资源紧张分担精力,甚至没有配备专职的系统工程师。未来一些小而精的产品团队,会不断的开发出上规模的应用,如:花瓣、堆糖、Markzhi、驴评网等。

相关链接

又拍云存储官方网站

又拍云存储免费试用

2012 年 5 月 08 日 10:165403
用户头像

发布了 156 篇内容, 共 41.8 次阅读, 收获喜欢 2 次。

关注

评论

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

链表中移除重复节点,保罗·格雷厄姆的传奇博客,Mac三指拖动操作,大数据平台 John 易筋 ARTS 打卡 Week 17

John(易筋)

ARTS 打卡计划 大数据平台 链表移除相同节点 保罗格雷厄姆 mac三指操作设置

CountDownLatch 瞬间炸裂!同基于 AQS,凭什么 CyclicBarrier 可以这么秀?

程序员小航

Java 源码 AQS 源码阅读 CyclicBarrier

看动画学算法之:排序-快速排序

程序那些事

排序 快速排序 数据结构和算法 看动画学算法

哦!这该死的 C 语言

cxuan

c 后端

极客大学-架构师训练营

9527

ASP.NET Core 性能优化最佳实践

newbe36524

微服务 性能优化 .net core ASP.NET Core

图计算黑科技:打开中文词嵌入训练实践新模式

小小的一朵云

大数据

神盾首创非对称联邦学习,深度保障数据隐私

小小的一朵云

大数据

Docker映射详解,没问题了!

程序员的时光

Docker

oeasy教您玩转 linux 010213 中文 fcitx

o

PB级大规模Elasticsearch集群运维与调优实践

小小的一朵云

大数据

创建spring boot starter

曾彪彪

Java spring Boot Starter

Mysql学习笔记:InnoDB事务和ACID模型

马迪奥

MySQL innodb

为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

冰河

git 冰河 代码管理 代码仓库 分支合并

ARTS打卡 第16周

引花眠

微服务 ARTS 打卡计划

鹰眼 | 分布式日志系统上云的架构和实践

小小的一朵云

大数据

从linux源码看epoll

无毁的湖光

Linux TCP Linux Kenel

ARTS 打卡 (20.09.07-20.09.13)

小王同学

Elasticsearch索引容量管理实践

小小的一朵云

大数据

将DevOps视为哲学——实施DevOps的绝佳方式

陈琦

DevOps 测试 开发 持续交付

前端 10 问之 Docker (第一篇)

局外人

Docker

数据结构与算法系列之数组

书旅

数据结构 算法 数组 数据结构与算法

java中实现List集合中对象元素按其属性的中文拼音排序

Shae

同城双活与异地多活架构分析

vivo互联网技术

架构 高可用 架构设计 高可用系统的架构

区块链钱包app开发,去中心化多币种钱包搭建

WX13823153201

程序的机器级表示-异构的数据结构

引花眠

计算机基础

Spring 5 中文解析测试篇-Spring MVC测试框架

青年IT男

单元测试 Spring5

想学习数据结构和算法,推荐给你 10 本优质书单

沉默王二

数据结构 算法 书单推荐

不想码代码,你还能做什么?(一)

技术管理Jo

项目管理 技术管理 PMO

你必须要了解的「架构」小历史

码农田小齐

spring Spring Cloud Spring Boot

基于electron桌面级脚手架的设计

久违

前端 设计 全栈

微服务架构下如何保证事务的一致性

微服务架构下如何保证事务的一致性

又拍云存储负责人沈志华谈又拍云技术架构-InfoQ