文档章节

用户过亿,成熟产品如何全面拥抱公有云?

七牛云
 七牛云
发布于 2014/12/23 23:35
字数 3984
阅读 28
收藏 0
点赞 0
评论 0

现如今,当人们在讨论公有云的时候,已经习惯性的给公有云戴上了服务小微企业的帽子,而大部分云服务提供商都会面临如下质疑:1. 创业公司规模增大到一定程度后,选择公有云是否真的节约成本。2. 成熟的产品放在公有云上,当前的国内云服务商是否能靠得住,提供足够的稳定性。笔者想,所有国内的云服务商都默默的憋着一口气,一定要靠谱的服务些有规模的成熟产品来正公有云的名。七牛作为一家成立三年的云服务提供商,已经拥有一批拥有海量数据的成熟性产品,也想分享下这方面的经验与案例,希望能够给初次尝试云服务的成熟产品有些借鉴。

 

 

 

对云,爱过,伤过?

 

遇到过很多拥有海量数据的互联网产品,初期会认为所有的服务都应该掌握在自己的手上,这样可控性最强。他们其中也会有些尝试过一些云服务,但如果在当时服务质量没有给予他们足够信心,那么很长一段时间内,他们的绝大部分服务,都是自建的,比如说图片源站存储选择利用业界的一些开源工具自建。

但是这两年,随着精益创业理念的盛行,以及云服务的进一步完善,他们又会开始重新考虑使用第三方服务,观念在逐步转变为:专业的东西,让更专业的人来做,而团队则更专注业务的优化。谓之“善假于物也”。2014年纳斯达克上市的移动社交平台陌陌正是经历了这样一个过程。2014年,当自建的源站存储,随着用户量过亿以及月活跃用户增大至数千万,遇到了访问的压力时,他们想到了七牛云。

 

小试“牛刀”

 

七牛平台上已经承载了一批拥有海量数据的成熟互联网产品,其中不乏上市公司,很多都是UGC类产品,比如海康威视,唱吧,camera360,豌豆荚,视觉中国等。这里面的经验是:出于之前对云服务已经持有的怀疑以及谨慎态度,成熟产品在选择一家第三方云服务时,会进行非常系统而谨慎的功能以及性能测试。这个测试主要包含:

1. 首先是功能,看提供的API是不是能够充分考虑到客户对场景的需求,并且是否留给调用者以足够的灵活性。此外,功能的使用者是程序员,而API就是程序员的UI(用户界面)。API应该对程序员友好,应该简单,直观,容易使用的同时优雅。

在陌陌测试七牛的案例中,根据产品业务运营的特点,他们分别从不同大小的文件上传,下载,缩略图处理,自定义域名绑定,以及七牛独有的镜像存储等功能点进行了测试。

2. 丰富的API,易用性强能够迅速接入,满足场景特点。接下来就是要测试源站的稳定性了。

测试稳定性通常都是放一小部分的量跑一段时间看各方面数据。为了测试稳定性,陌陌先丢了万分之一的量到七牛上,跑了一周。在成熟产品对七牛进行初步稳定性测试的时候,使用的一般是七牛的“镜像存储”功能。镜像存储是指数据还是存储在客户源站的情况下,额外使用七牛作为镜像服务器,对于已经拥有海量数据的客户,这个功能既可以很方便的感受到加速又有“安全感”。通过七牛的开发者后台,可以为源站设置镜像存储,让网站的用户每次访问的时候都从七牛云存储上读取。如果云端上没有用户需要读取的数据,则七牛的服务器会从源站拉取资源,然后再返回给终端用户。在七牛内部,这个功能又被称为“秒接”,其中寓意,可以感受下。

 

三观正了,从万分之一到百分之十

 

在测试过程中,服务方和客户方也会在技术选型、团队、产品以及服务理念等方面进行非常深入的交流,客户也会从“三观”来评价云服务。三观正了,会对后续的合作有很大的推动作用,也让彼此都有了很好的信任基础。在这个服务为王的时代,专注,专业,极致的服务理念应该是每家云提供商放在心里去遵循的。

在七牛推动与成熟产品合作的过程中,还有个技术细节被客户考虑到的是:七牛服务端是用Go语言写的,Go从基因上支持并行计算,非常适合做云服务系统的搭建,因此很多客户对这个选型也非常认可。

回到陌陌的案例,经历了系列测试后,对陌陌来说,结果是很令他们满意的,但由于本身已经是成熟运营的互联网产品,本着对用户体验的负责,测试后决定只切10%的量到七牛上。

 

专业,极致

 

社交类产品与电商或者其他产品不同。对于用户已经过亿,日活跃用户千万级别的社交类应用,后端系统文件数可以达到百亿级别。整体的访问中,图片的流量要占到90%以上,并且因为在移动设备上被访问,因此系统中小于8k的图片特别多,而图片的显示质量,上传时间和访问速度都是直接影响到用户体验的关键因素。此外,对于社交类的UGC, 技术难度在于没有数据是死角,所有数据理论上都是“热数据”,流量分散,但总的访问压力非常大。还有社交网络中的突发热点造成的单个文件的并发访问急剧增大,也会给基础服务带来巨大考验。

这样的特点,基于开源技术做存储,随着源站的业务压力越来越大,如果出现问题,很难实现精准的bug定位。这些问题,很多自建存储的成熟产品一般都会遇到。

而服务过多个类似产品并淌过各种坑的第三方云存储服务在这些方面会更有经验。下面也分享下七牛是如何解决问题的:

1. 海量存储。

采用多数据中心的广域网分布式架构,在全国建设数个核心存储机房。客户可以根据自己的业务特点主动选择存储机房或者完全交给云服务系统来调度数据。此外,双数据中心之间采用互备技术,将两个数据中心用裸光纤互联,当用户上传到某个数据中心时,系统异步将文件数据和相关原数据同步到与之互备的另一数据中心,这样当一个数据中心故障时,存储服务会根据故障的级别启用不同的应急预案,将请求切换到与之互备的数据中心。

在技术上存储系统的核心诉求是成本和可靠性,而这两者又是一对矛盾,想降低丢失数据的风险,势必要增加每份数据拷贝的份数,而增加每份数据拷贝的份数,又势必增加成本。为了解决这个问题,七牛使用了EC冗余算法来很好的平衡这对矛盾,达到低成本,高可用。

2. 流量压力的应对

作为云服务提供商,要承载更多的成熟业务,运营上的精细化是非常重要的,能够考虑不同类型客户业务的特点,在设计缓存以及系统逻辑时,留有足够的灵活性以及可扩展性。云服务需要建立分级存储机制,并且按照对象访问热点进行迁移。对内部数据流的分发体系进行统一,并且统一管理消息流的处理流程,以便能有足够的容量来应对不同客户的峰值请求,使服务更稳定。同时针对响应时间做实时监控,以确保问题出现时能够第一时间感知并作出处理。

3. 强大的图片/音视频处理服务。

在场景化时代,视觉系,富媒体类的数据会越来越多的产生。这其中有一部分来自用户主动生成,也会有一部分来自被动产生,比如摄像头的数据。可以预见,云存储平台上将会承载大量的图片音视频类型的数据,这其中云存储服务对图片处理的实时响应能力也是重点。拿陌陌来说,每一秒中有一半的图片都需要做处理,也就是说,每秒接近5000次左右的实时图片处理次数,要保证其实时性,99.9%都在一百毫秒以内处理完。并且,使用七牛的图片转码,可以将原有的JPG格式转为WebP格式,在同等质量的条件下获得更好的压缩比,节省了成本。

对视频的实时响应也是一样。当前比如说像短视频应用,还有一些其他的游戏视频分享,就是用户在手机上录完以后,后台传输,过个10秒钟你就可以分享了,分享完即时就有其他终端设备的用户访问了,访问需要的格式还不一定一样。如果客户采用自建,这种实时性要求高,从后端数百公里,数千公里的机房,通过各种路由器,最终到用户小区的局域网,这条路是很长的,环境比较难控制。再到真正的服务端,它必须数据要快,处理能力要强。然后又有高吞吐,用户量大了,一秒钟一台服务器仅能支持几百个KPS,这种情况下,对客户来说,自建能保证性能的响应依然是良好的技术难度大大增加。从我们观察到的,服务端处理不应该超过一秒,超过一秒用户的体验将大受影响。

4. 新增自定义处理来满足部分客户的特殊数据处理的需求。这是七牛比较有特点的一个服务。云服务作为通用型框架,本身提供的处理服务可能不能包含有些客户提出的不通用的数据处理需求。因此针对这种特殊需求,客户可以定义自己的数据处理逻辑。客户说去我们机房买一个处理器是可以的。但是接下来要运维、机器全部覆盖,这个流程做起来很累。自定义处理可以让用户把自定义程序打包完,放在这个计算框架里跑。用户的应用处理完以后,进入到指定的框架,让用户以插电的方式体验自己的逻辑。这个服务也可以让更多本身针对非结构化数据做处理的开发者比如语音识别,图像识别服务提供商等可以加入七牛平台上提供处理能力给我们的客户,大家一起把生态做起来。

5. 专业的服务意识。 服务意识对于云服务提供商的重要性自不必说,快速定位和解决客户问题,迅速响应客户的需求是一个好的云服务提供商的判定标准之一。

 

全面拥抱云存储

 

随着对七牛的技术以及服务的越来越肯定,几个月后,陌陌做出了决定,把七牛正式作为源站以及异地备份的提供方,并且将所有图片处理也转至七牛。同样是一直保持创业精神的陌陌,需要一家持续、稳定、有前景、有技术情怀的公司,提供稳定高质的云服务。七牛恰恰符合他们的期许。

全面拥抱云的第一步就是将历史数据迁移到云端。这是大工程,但对于”成熟产品使用云服务“来说,这是极其关键的服务步骤。首先,在迁移过程中可能遇到以下问题:

1. 硬盘迁移过程中,网络传输中的数据出错。

2. 传输过程中的速率问题。拿陌陌举例,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。

3. 硬盘寄送过程以及使用过程中的磁盘损坏。

4. 存储数据文件对数据库的合并。如果按照传统的数据库写入方式,需要若干天,会给客户数据库以及云服务的数据库带来不必要的巨大压力。

针对这些问题,一个考虑全面的迁移系统就显得尤为重要:

1. 针对客户的业务数据模型,定制数据格式,进行存储数据的导入。

2. 数据库结构需要有强扩展性,可以实现瞬时合并。

3. 迁移系统充分考虑不可控因素,比如硬盘损坏,断电等情况。

至此,七牛已经成为陌陌非常好的合作伙伴,支撑了他们近两亿用户的数据存储,访问加速与图片处理。云服务帮助小伙伴陌陌解决了后续业务增长规模所带来的技术压力,让他们可以更加关注自己的核心业务。

大家也许会说国内的云生态尚不成熟,但是经历了几年洗礼,踩过无数的坑后,目前的国内云服务提供商越来越努力,专业,我们也看到越来越多成熟企业和新创公司一样,选择信任专业的第三方云服务,因此可以更专注自有业务。2015,可以预见,云将更加精彩。

© 著作权归作者所有

共有 人打赏支持
七牛云
粉丝 39
博文 60
码字总数 109690
作品 0
浦东
多元化的未来,OpenStack的铮铮前行

引语:开源浪潮已经席卷而来,如今连汽车、芯片行业都迎来了开源。这是一股愈演愈烈的浪潮,它将托举起一个全新的世界。 洪流,即像巨大的水流一样的力量,比喻前进中的巨大事物。出自战国·...

xjsunjie ⋅ 2017/11/04 ⋅ 0

HP Helion公有云宣布停服 放弃或是为了更好地进攻

是确定的消息了,2016年1月31日,惠普将正式停止Helion公有云服务。中国惠普通过官方微信,以惠普云计算高级副总裁Bill Hilf的一篇博文的形式确认了此消息。 今年4月,曾经传出过惠普将停止H...

郭涛 ⋅ 2015/10/29 ⋅ 0

从数据库到云 Oracle持续创新成就市场领导力

7月20日,一年一度的行业盛典甲骨文数据库云技术大会在北京召开。甲骨文高层与众多客户分享了如何在竞争激烈的云时代打造企业级混合云的最佳实践,以及企业如何应用Oracle数据库及相关解决方...

玄学酱 ⋅ 05/21 ⋅ 0

听说Tech Insight在北京城又火了一把?

即将在12月19日国家会议中心举办的Tech Insight是2017年最后一场,也是全年的压轴之作。此前Tech Insight已在北京、上海、广州、深圳、成都等地多次举办,场场爆满。本次北京站结合了历届Tec...

仙游 ⋅ 2017/12/14 ⋅ 0

OSC 大咖说 | 专访 MoPaaS 创始人、CEO 鲁为民: PaaS 的逆袭:超越 IaaS,承载云计算发展的未来

提及云计算,离不开三个名词:IaaS(基础架构即服务)、SaaS(软件即服务)、PaaS(平台即服务)。 IaaS提供虚拟化的基础计算资源和管理,包括计算、网络和存储能力,特别是它提供云上的虚拟...

花仲马 ⋅ 2016/05/31 ⋅ 3

携手红帽拥抱开源,微软助力企业客

在接下来的两年中,微软用实际行动向 Linux 和整个开源社区展现了自己的真爱—— 从 .Net 开源到 Windows 10 原生支持Bash,从微软智能云上的 MySQL Database 服务,到 SQL Server 和 PowerS...

linux小陶 ⋅ 2016/11/26 ⋅ 0

云计算战争中国开打:国际巨头落地公有云

  云上战争   中国经营报 董军   编者的话/一场关于云的争夺在中国市场开战。   2013年12月18日,亚马逊的公有云服务AWS(Amazon Web Services)宣布其中国区域云计算平台服务开始有限...

oschina ⋅ 2013/12/22 ⋅ 20

金山云牵手海航集团, 共建多赢云生态

  【IT168 资讯】近日,由海航集团旗下天海投资举办的海航云集市发布会在京举办,金山云作为海航集团的战略合作伙伴,受邀出席了本次会议。据了解,金山云已与云集市实现产品对接,正式产品...

it168网站 ⋅ 2017/11/24 ⋅ 0

OpenStack成浪潮云核心 加速开源普惠

  【IT168 资讯】4月18日,浪潮对外公布了2017云计算产品策略,强调以OpenStack为核心,持续打造差异化竞争优势,强化IaaS全云能力。在这一框架下,浪潮未来的OpenStack产品设计将遵循“F...

it168网站 ⋅ 2017/04/18 ⋅ 0

全球公有云介绍

时至今日,云计算已经不再只是个概念。全球各企业都在逐步尝试或已经部分和全面的使用公有云来建立他们的IT系统。特别是互联网公司,如Netflix,他的所有IT系统都构建在AWS上。在中国,各级政...

kdouglas ⋅ 2017/05/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 30分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 34分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 40分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 40分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 41分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

Java序列化和反序列化

1、什么是序列化和反序列化 序列化:把对象转换为字节序列的过程。 反序列化:把字节序列恢复成对象的过程。 2、被序列化的类需要实现serializable接口,只是为了标注该对象是可以被序列化的...

IT-Mamba ⋅ 今天 ⋅ 0

流式构建原理

流式构建需要达到分钟级的数据更新频率,Kylin采用类似于Spark Streaming的做法,每隔数分钟进行一次微构建。这边的构建需要考虑到一个延迟因素,分布式网络存在延迟等因素,该时间段的数据有...

无精疯 ⋅ 今天 ⋅ 0

在maven项目工程编写solr代码,需要的依赖

solrJ <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>6.6.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents<......

爱运动的小乌龟 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部