七牛云存储:三年磨一剑及背后核心技术解析
Posted 七牛云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七牛云存储:三年磨一剑及背后核心技术解析相关的知识,希望对你有一定的参考价值。
国内外涉足云存储产品的巨头很多,但专注在这个领域的公司少之又少,七牛便是一家专注于云存储领域的互联网公司。对此,CSDN对七牛CTO韩拓进行了采访,以下是采访报道:
谈及七牛的定位,七牛云存储CTO韩拓表示当下IssS和PaaS的边界已经模糊化,客户变得更加理性,他们更加关注云存储产品带给他们的实际价值。 在这样的市场态势下,七牛以数据为自己的核心价值,并围绕数据这个主题为企业提供丰富的周边功能,如上传下载CDN加速、数据处理、分析、自定义计算平台等业务。
从2011年成立以来,七牛目前累计拥有15万企业和开发者客户,而谈到七牛的优势,他表示对业务的专注、雄厚的技术实力、独特的产品风格以及良好的服务意识是七牛成功的关键。七牛目前的100多名员工中,技术岗位占一半以上,核心技术团队来自金山、盛大云、百度等公司,其多数据中心的广域网分布式架构,双数据中心间的互备,低成本、高可用性的冗余算法等核心技术都是七牛在云存储领域不断打磨、优化而来,他坦言,七牛自成立三年以来,可以说只做了一件事那就是存储。本文来自对韩拓的采访整理。
七牛的团队、定位、用户规模
CSDN:首先介绍下自己和七牛,目前的技术团队情况?
韩拓:我2007年毕业后的第一份工作在金山软件,进入当时刚刚成立的金山实验室,主要参与分布式存储系统的研究和实践。2008年金山开始金山快盘项目,我带领存储团队主导了快盘第一版存储系统的设计、研发与上线。之后我到上海,加入一个网络游戏的创业团队,全面参与游戏服务端架构、开发和3D渲染方面的工作。2011年七牛云存储成立,我有幸在创业之初加入,参与七牛云存储的产品设计、研发和运维,并在七牛工作至今。
七牛目前有100多名员工,技术岗位占一半以上,按产品和职能分为10余个部门,核心技术团队来自金山云、盛大云、百度等公司。从创业至今七牛已经走过3年,这3年里我们打造了国内领先的云存储产品,得到了15万的企业和开发者的信任,并成为他们的云存储提供商,日上传文件数亿个,独立的活跃IP数已经覆盖了中国一半的网民。
CSDN:你觉得目前国内外云存储市场态势是什么样的?七牛在其中的定位是什么?
韩拓:自Amazon推出AWS产品以来,云存储的市场一直在快速发展,随着云存储产品易用性和品质的不断提升、成本的不断下降,已有越来越多的企业选择使用云存储构建自己的业务,或使用云存储替代原有的传统存储方案,尤其在最近1年,随着传统行业的互联网化,我们观察到云存储的市场容量在非常迅速的扩大,我们相信随着这波变革的浪潮,云存储的市场会到达爆发的临界点。
从产品来说,云存储的产品形态发展到今天,与2007年左右这个概念刚刚兴起时已有很大不同,一方面市场上出现了很多基于云存储的PaaS产品,让开发者可以更便利的使用云存储,另一方面IaaS厂商也在不断上浮,推出了很多更有针对性、更垂直化的产品,从今天的市场态势看,IssS和PaaS的边界已经模糊化,客户也变得更加理性,他们更加关注云存储产品带给他们的实际价值,这些都是云存储真正落地,成为全球范围被广泛认可的IT基础设施的信号。
在这样的市场态势下,七牛以数据为自己的核心价值,并围绕数据这个主题为企业提供丰富的周边功能,如上传下载CDN加速、数据处理、分析、自定义计算平台等业务,接管数据产生、上传、存储、处理分析、下载等全部流程,力求为企业提供全生命周期的数据管理服务。
七牛的产品应用场景非常广泛,可以说所有涉及到非结构化数据存储的场景都可以使用七牛,如图片、视频类的APP、静态网站或网站的静态数据、UGC类的业务、在线教育、视频监控、直播、SNS、音乐类业务、备份和冷数据存储、网盘等等。
CSDN:七牛目前的用户规模如何,有哪些重量级的客户?
韩拓:如刚才所说,七牛目前有15万企业和开发者客户,新增客户大概几百到上千不等,其实不乏一些重量级和明星企业,如美图、camer360、穷游、海康、豌豆荚、陌陌等。 站在客户的角度,我们能为他们提供:
首先成本方面,一个是降低开发成本,企业不必再自己研发一套存储系统了;一个是降低运维成本,托管式的云存储完成免运维;一个是硬件的沉没成本,按需付费,一次性的投入小,非常适合中小企业和大企业中刚刚起步的业务。
其次收益方面,使用更专业的服务,可以增强数据可靠性和可用性,提升上传下载速度,可以方便的使用七牛周边的数据处理、自定义计算、数据统计、报表等服务,这些都为开发者提供了极大的便利。
核心优势
CSDN:云存储一直是国内外云巨头的必争之地,你觉得七牛在云存储领域的优势体现在哪些方面?
韩拓:我们的优势可以从几个方面来谈:
第一是专注。国内外涉足云存储产品的巨头很多,但是像七牛这样专注在这个领域的公司非常少。存储是一个很大的话题,想做好、做深不容易,需要投入大量的时间和精力,需要有足够的耐心,不断去打磨、优化,需要耐得住寂寞,不被外界的诱惑所打扰,做很多看似枯燥实则非常有价值的前研性的学术研究和探索。七牛在这方面做得非常好,我们成立三年来,可以说只做了一件事就是存储,所以在存储这个领域,我们才能做到有百分之一百的自信,绝不输给任何行业巨头。
还有一点是技术实力。我们的核心团队是国内最早研究分布式存储的一批人,在这个领域已经摸爬滚打很多年,也为不同的业务做过了很多次的存储系统,所以我们对存储系统的设计和研发都积累了非常多的经验。得益于这些经验,在七牛创建之初,我们可以用三个月的时间就上线第一版的产品,在之后的三年里,我们做到平均每周产品更新两、三次,通过这三年的技术积累,不断迭代、打磨,自然形成了在市场上极具优势的产品。
第三点优势我认为是七牛独特的做产品的风格。云存储是一个比较抽象的产品,它的界面就是各种API,从这个角度来看,云存储的产品不好把握,在这个问题上,七牛有一套自己独特的方法论:用户需求驱动产品迭代。刚才提到,在七牛创建之初,我们用三个月的时间上线了第一版产品,这一版的产品很简单,只提供最普通的上传、下载功能,在这一版本产品基础上,我们引入种子客户,客户在使用过程中通常会提出自己独特的需求,,我们会用最快的速度响应这些需求,将需求抽象化,并在产品中实现,这个时间非常快,通常是两、三天就可以上线,在这个过程中,产品会自然而然的得到完善。随着产品的完善,会引来更多的客户,更多的客户会带来更多的需求,帮助我们更加完善自己的产品,这是一个非常好的良性循环。对产品的审美,我们从不妄自菲薄,也不会主观自大,而是一切跟随需求而动,这个方法论沿用至今,帮助七牛的产品在市场上一直处于领先地位。
第四点我想谈谈服务意识。云存储的核心世界观我认为是托管二字,“托管”中的“管”字其实就是指服务,所以服务意识是运营一个云存储业务最核心的要素之一。七牛一直很重视对客户的服务,从创业之初起,我们就建立了7*24小时的技术支持、运维、开发联动的客户支持体系,做到第一时间响应并处理客户的问题,对于重要问题,CEO和其它高管甚至会亲自提供一对一的客户服务,对于需要帮助的中小企业和初创企业,我们的架构师还会深入了解对方的架构,并提供对应的架构建议和接入方案。良好的服务意识弥补了一些产品上的死角,使七牛真正成为企为贴心的数据管家,我认为这也是我们能够领先于其它云存储厂商很关键的一点原因。
技术架构
CSDN:注意到你们在云存储领域拥有国内先进的全分布式架构以及存储技术,能否分享一下你们在这方面使用到的一些技术,架构和实践经验?
韩拓:在技术上我们引以为豪的点有很多,我选几个大家容易理解的举例。
第一个是多数据中心的广域网分布式架构。七牛使用多数据中心技术有两个目的:一个是多数据中心的存储,一个是多数据中心的上传、下载加速。七牛在全国有数个核心的存储机房,这些机房的规模都比较大,用于存储客户的数据,客户可以根据自己的业务特点,主动选择一个或多个存储机房使用,或者不关心多存储机房的架构,完全交给七牛的系统来调度数据,这个技术给客户提供了最大的灵活性,比如网盘类的业务,本地化特征非常明显,终端用户通常在只同一个城市上传和下载,这时我们就可以支持不同区域的端终使用不同区域的存储机房,如北京的客户端使用北京的存储机房存储,上海的客户端使用上海的存储机房存储,这样数据存放的位置与使用的位置最近,获得最好的上传、下载速度。还有一类业务无显示的地域特征,比如微博类的分享应用,数据上传和下载的位置通常不在一起,数据由客户自己调度就显得很麻烦,这时就可以使用七牛的系统来调度数据,而不关心数据具体存于哪个机房。我们会将数据先存放到离上传最近的机房,然后根据读取情况异步将数据智能调度到其它机房,包括与CDN合作建设的数百个加速节点,以获得最好的访问题速度。
另一个有意思的是双数据中心间的互备。将数据存放于一个数据中心内的风险很大,如果数据中心断电、断网,会造成数据的不可用,如果一个数据中心发生灾难性事故,还可能会造成数据丢失,所以七牛使用了双数据中心的互备技术。我们将两个数据中心用裸光纤互联,当用户上传文件到某个数据中心时,系统异步将文件数据和相关原数据同步到与之互备的另一数据中心,这样当一个数据中心故障时,我们会根据故障的级别启用不同的应急预案,将请求切换到与之互备的数据中心。
还有一个很重要的是低成本、高可用性的冗余算法。在技术上存储系统的核心诉求是成本和可靠性,而这两者又是一对矛盾,想降低丢失数据的风险,势必要增加每份数据拷贝的份数,而增加每份数据拷贝的份数,又势必增加成本,七牛使用EC冗余算法来平衡这对矛盾。这个算法将一份数据拆分成M份,并将这M份数据代入一个多元线性方程组,算出N份校验数据,然后将这M+N份数据存储,在存储下来的M+N份数据中,有任何一份或多份数据损坏,我们都可以通过这个多元线性方程组将损坏的数据算回,由这个原理我们很容易得到一个结论,使用EC冗余算法的系统最多支持N份数据损毁而不丢失数据,七牛使用了一些自己独有的技术,将M和N都做到比较大的数值,M又远远大于N,使得系统的备份数非常低 — (M+N)/M (M远大于N),而可靠性又非常高 — 可同时损坏N份数据(N也是较大的数值)。
安全保证
CSDN:尤其是企业级客户对安全的重视可以说是零容忍,你们如何保证?
韩拓:企业对安全的诉求通常是两方面,一是数据不丢失,二是数据不泄漏。在数据不丢失方面,我前面讲过七牛使用EC冗余算法,获得了极高的数据可靠性,并在此基础上又引入双数据中心互备来避免单机房灾难性事故,通过这些努力,七牛做到保护企业的数据零丢失。
在数据不泄漏方面,一方面七牛通过防火墙、堡垒机、安全审计、告警机制,内外网DMZ隔离、文件数据打散存储、元数据与文件数据分离存储等技术和手段保证安全,另一方面七牛加强内部人员和流程管理,任何内部人员的操作都通过严格的授权和审计,确保内部工作人员无法接触到生产系统的数据。
以上是关于七牛云存储:三年磨一剑及背后核心技术解析的主要内容,如果未能解决你的问题,请参考以下文章