靠谱 的软件外包伙伴

您的位置:首页 > 新闻动态 > 网易云系统软件开发案例分析

网易云系统软件开发案例分析

2016-10-17 15:29:28

一、对象存储应用场景

 

IT时代产生的大部分数据都是没有固定大小限制、没有固定格式的非结构化数据(图片、视频、 文件、归档备份数据)等,面对如此庞大的数据量,时常需要专业的云存储平台帮助解决一站式全方位的需求。

 

针对存储系统在扩展性、 可用性、可靠性上的担忧,我们通过开发的全方位的SDK,快速提供了一种理想中的非结构化数据一站式解决方案。以下为几种典型的引用场景:

 

1、资源分发下载

 

可以使用NOS并结合网易CDN服务实现一站式的数据上传、存储、下载分发服务,其对象包括:

 

  • 网站、APP需要存储、上传和分发视频(视频网站、朋友圈);

  • 存储、上传和分发图片(电商网站);

  • 发布APP安装包等。

 

 

2、UGC业务场景

 

网易对象存储提供边缘节点上传加速功能,其优势为:

 

  • 在不暴露NOS A/S KEY的情况下,让移动端直接将数据上传到NOS

  • 利用分布全国的边缘加速节点,更快的将数据上传到NOS中,提高终端用户上传体验

 

 

3、企业网盘

 

4、云端数据处理

 

上传文件到NOS后,可以很轻松地进行图片处理服务和视频处理服务。

 

 

5、网站/应用动静分离

 

 

简单管理网站上的图片,脚本,视频等静态资源,通过BGP网络或者CDN加速的方式,提供用户就近访问,有效降低WEB服务器负载,提升用户体验。

 

二、网易对象存储核心竞争力

 

1、DDB分布式数据库系统

 

分布式数据库系统(Distributed DataBase,简称DDB)是网易杭研后台技术中心研发的分布式关系数据库平台。

 

在NOS中用于元数据存储,主要用于解决如下问题:

1)海量结构化数据存储

2)高并发高吞读数据访问

 

 

均衡字段:用于计算哈希值的字段

两级映射:结合哈希的高效性和路由表的可管理性

 

2、DFS分布式文件系统

 

与之对应的,分布式文件系统(Ditributed FileSystem,简称DFB)是杭研后台技术中心研发的分布式非结构化数据存储平台。

 

主要用于解决如下问题:

1)海量非结构化数据存储

2)高并发吞吐数据访问

 

 

 

3、富媒体服务

 

(1)概述

 

当前NOS承载着几乎所有网易互联网产品blob数据的存储,图片、视频、附件等是最常见的应用场景,而其中很大一部分数据为图片数据,比如网易lofter、网易云音乐、网易考拉海淘、易信朋友圈都有非常多的图片应用场景。几乎所有的这些产品都会大量得使用到NOS提供的图片处理服务。

 

NOS图片处理服务从2013年上线到现在已经上线差不多快3年半的时间,图片处理服务器从几台扩容到几十台;系统负载tps从几百tps上升到现在的2w+tps,近上百倍负载增长。功能从简单的裁剪缩略到提供丰富的图文水印、链式处理等功能,已能满足专业的lofter图片处理的需求。

 

架构不断演变以适应更多的功能、性能、扩容性等各方面的需求。

 

以下为NOS图片系统发展的timeline。

接下来我会从几个方面介绍NOS图片处理解决方案:

  • 图片核心处理单元

  • 数据的获取nosfs

  • 系统过载控制

  • 图片处理架构

 

(2)图片核心处理单元Tobie

 

分治永远是解决所有复杂问题的解决方案,在计算机科学中体现的尤为明显。如上为一个基本的图片核心处理单元。主要分为以下几个层次接口层、并发层、处理层、数据层。

 

  • 接口网络层

 

接口层向上层调用者提供HTTP RestFul Service,如下为对存储在nos的一张图片资源 Koala.jpg 执行简单的缩略操作。

http://nos.netease.com/doc/Koala.jpg?imageView&thumbnail=100x0 

 

接口层为基于Libevent实现的 C++ http服务。Master负责网络层的处理,包括接收来自客户端的请求,进行合理解析分发到任务队列,以及接收来自worker的处理结果并返回给客户端。Master基于libevent实现Non-Blocking的网络IO处理,所以基本单线程能够hold住整个图片处理单元的网络负载。

 

  • 并发处理层

 

并发层worker从任务队列中获取请求并进行实际的图片处理工作,并发层Processor为通用的数据处理单元,当前已经整合Grapbic Magic 图片处理单元以及ffmpeg视频处理单元,后续如果有新的处理服务也可以非常方便的整合实现其它的处理功能。同时Processor也实现了Lua 扩张功能,可以非常方便的进行外部命令调用,从而非常快速的整合新的处理功能。

 

  • 数据接口层

 

数据层实现了内存的数据接口以及本地文件系统的POSIX访问接口。数据资源可以是本地资源,也可以是来自网络资源。本地资源提供内存和File接口是非常直接的,网络上的资源是(对于我们来说主要也是通过网络方式来获取NOS上的资源)通过基于nosfs模块实现将NOS HTTP Rest API接口到Posix接口的转换。

 

(3)nosfs

返回首页] [打印] [返回上页]   下一篇