阿里云的NoSQL存储服务OTS的应用分析

所属分类: 网站运营 / 建站经验 阅读数: 117
收藏 0 赞 0 分享

1. 概要
 
OTS是构建在阿里云飞天分布式系统上的NoSQL存储服务,提供海量结构化数据的存储和实时访问。OTS以实例和表来组织数据,通过自动的数据分区和负载均衡技术,对应用提供规模(数据和访问)的无缝扩展。应用通过调用OTS API/SDK或者操作管理控制台来使用OTS服务。OTS服务具有以下几个主要的特点:
 
规模可扩展:OTS具备可扩展的服务能力,随着应用表的数据量和访问量逐渐增大,OTS会自动进行数据分区的调整(partition split/merge)来满足应用业务规模的增长,并且保持稳定的性能。OTS提供预留读写吞吐率的机制来让应用配置表上的资源,应用通过主动配置和调整表上的预留读写吞吐率来应对业务访问量的变化,从而获得更有保障的服务。
 
高可靠可用:OTS的数据存储在底层的分布式文件系统上,数据有3份拷贝,分别位于不同的容错区(机架或者数据中心),当硬件出现故障导致数据备份的损坏或丢失时,分布式文件系统会自动发现、复制并恢复数据备份,保障数据的安全可靠。OTS系统会自动检测硬件故障(如机器宕机或者网络中断)并进行数据分区的实时迁移,保障服务的高可用性。
 
性能可预期:OTS服务底层采用全SSD存储数据,单行数据读写请求的延时保持在几个毫秒级别。应用通过配置预留读写吞吐率来预留资源,保障请求并发量和延时的稳定性。
 
灵活的数据模型:OTS表中的数据无固定格式要求,每行的列数和列名可以不相同,列值支持5种数据类型:Integer、Boolean、Double、String、Binary。每一行的列可以动态增加或者删除,没有额外修改schema的代价。
 
读写强一致性:相对于最终一致性而言,OTS提供强一致性的读写操作。OTS保证数据写入操作一旦执行完成,返回成功的结果,应用就能立即读到最新的数据。强一致性为应用提供了更好的使用体验。
 
访问安全:OTS 对应用的每一次请求都进行身份认证和鉴权,以防止数据被非法用户或者未授权的用户访问,确保数据的安全性。通过和阿里云RAM服务的结合,OTS为应用提供帐号之间的授权访问。
 
全托管服务:OTS对于应用而言是一个全托管的服务,应用程序无需关心表的数据分区的管理工作,集群硬件维护,软件升级,配置更新和调优,集群扩容等繁琐的运维任务,节省了应用开发和维护的成本,让用户能够专心在应用业务层的开发上。
 
按量付费:OTS 根据应用预留和实际使用的资源进行计费,不需要在业务发展初期就进行过多的投入,对于众多的创业开发人员来说起步门槛低。OTS的收费项包括:1)预留CU费用;2)数据存储费用;3)下行流量的费用。
 
2. 系统架构
2016131112520944.png (554×255)

OTS服务的系统架构分为四层,最上层是应用程序,应用通过调用各种语言的SDK来和OTS服务进行交互;第二层是用户服务层,这一层完成的功能是对应用发送的请求进行协议处理、身份权限的校验、资源计量和请求到后端存储引擎节点的路由;第三层是存储引擎层,负责表分区的扩展和管理、负载均衡、存储数据和索引的管理、故障的处理以及高可用容灾等方面的;最下面一层是飞天操作系统,负责管理底层的硬件资源,向上提供统一的分布式存储(盘古)和计算(伏曦)。
 
其中下面三层运行在阿里云数据中心的物理集群上,对应用程序透明,最上面一层是用户的程序,通常运行在阿里云的ECS服务器以获得更好的访问OTS的性能,当然也可以运行在用户自己的物理服务器或者移动设备上(我们目前正在开发移动端的OTS SDK,包括Android和iOS)。
 
3. 功能介绍
 
OTS产品提供以下RESTful API:
 
1)CreateTable(创建表);
2)DeleteTable(删除表);
3)ListTable(列举表);
4)DescribeTable(获取表信息);
5)UpdateTable(更新表设置);
6)GetRow(读取一行);
7)PutRow(插入一行);
8)UpdateRow(更新一行中的数据);
9)DeleteRow(删除一行);
10)BatchGetRow(批量读取行数据);
11)BatchWriteRow(批量写入行数据);
12)GetRange(读取范围内的数据);
 
OTS提供了Java/Python/C#/PHP四种语言的SDK,方便应用快速开发基于OTS的应用。更多关于API/SDK的内容请参考:https://docs.aliyun.com/?spm=5176.383723.9.6.BASvKj#/pub/ots
 
4. 场景案例;
 
OTS服务目前被广泛的使用在阿里巴巴集团的各个业务中,积累了几个PB的数据,最大的一个应用每天会写入百TB级别的数据,比较典型的几个业务场景如下:
 
阿里云邮箱的后台存储:邮件的标题、发件人、收件人、时间、状态等等(不包括邮件正文和附件),使用OTS表对用户的邮件按照各种规则排序,分页读取邮件,数据量近百TB,。
 
来往/钉钉的后台存储:存储来往/钉钉应用的用户通讯录,实时消息推送,电话会议实时通知等等。
 
 
阿里云监控的后台存储:存储海量的原始监控metric数据以及汇总数据。
 
支付宝的微贷风控存储:存储淘宝买卖家的信用风控数据,用于每一笔花呗交易的风险评估
 
阿里健康药品监管码存储:存储中国药品的监管码,用于查询药品的基本信息和追踪药品的流通情况,目前的存储量已达近千亿条记录,日均访问百亿次。
 
 
此外,OTS还作为大规模分布式系统的基础组件被应用在阿里集团的多个产品架构中,例如大规模数据分析服务ODPS的meta存储和管理,大规模日志服务SLS的底层存储等。

PS:关于飞天平台
阿里云计算有限公司(简称“阿里云”)成立于2009年9月10日,致力于打造云计算的基础服务平台,注重为中小企业提供大规模、低成本、高可靠的云计算应用及服务。飞天开放平台(简称“飞天平台”或者“飞天”)是由阿里云自主研发完成的公共云计算平台,该平台所提供的服务于2011年7月28日在http://www.aliyun.com正式上线,推出了第一个云服务——弹性计算服务。

飞天平台内核包含的模块可以分为以下几部分。
分布式系统底层服务:提供分布式环境下所需要的协调服务、远程过程调用、安全管理和资源管理的服务。这些底层服务为上层的分布式文件系统、任务调度等模块提供支持。
分布式文件系统:提供一个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能力聚集起来,并能够自动屏蔽软硬件故障,为用户提供不间断的数据访问服务;支持增量扩容和数据的自动平衡,提供类似于POSIX的用户空间文件访问API,支持随机读写和追加写的操作。
任务调度:为集群系统中的任务提供调度服务,同时支持强调响应速度的在线服务(Online Service)和强调处理数据吞吐量的离线任务(Batch Processing Job);自动检测系统中故障和热点,通过错误重试、针对长尾作业并发备份作业等方式,保证作业稳定可靠地完成。
集群监控和部署:对集群的状态和上层应用服务的运行状态和性能指标进行监控,对异常事件产生警报和记录;为运维人员提供整个飞天平台以及上层应用的部署和配置管理,支持在线集群扩容、缩容和应用服务的在线升级。

更多精彩内容其他人还在看

医疗行业怎么做好网站建设?建站注意事项及经验

踏足互联网,医疗行业可以将自身优势资源整合到网站中去,为大家提供病理知识、在线咨询或者预约就诊服务等。那么如何做好医疗行业的网站建设呢?本期为大家分享一些在建站过程中需要注意的东西和建站经验,希望能给大家带来帮助
收藏 0 赞 0 分享

企业应该怎么策划自己的网站?规划网站注意事项总结

网站建设虽然是一个比较复杂的过程,包括网站策划、网页设计、程序开发、上传网页、发布网站等,那么企业应该怎么策划自己的网站?下面为大家介绍规划网站注意事项,来看看吧
收藏 0 赞 0 分享

大众点评网站的支付系统构建经验分享

大众点评网站的服务器端在迭代的同时保持了很好的扩展性和可用性,这里我们来看一下大众点评网站的支付系统构建经验分享,主要以大众点评的支付渠道网关系统为核心.
收藏 0 赞 0 分享

网易蜂巢的容器运维管理服务使用指南

网易蜂巢提供对Docker容器的警报和性能监控服务,通过图形化面板操作十分简洁,这里前提假设服务器端已经架设在容器中,那么接下来就让我们来看网易蜂巢的容器运维管理服务使用指南
收藏 0 赞 0 分享

为什么认为自助建站不适合SEO?自助建站工具搭建出来的网站对SEO的支持如何?

最近有一个做SEO优化朋友询问为什么自助建站做出来的网站排名很难做上去?自助建站工具搭建出来的网站真的适合SEO吗?本文将提供相关内容供大家了解,希望对大家有所帮助和启发
收藏 0 赞 0 分享

支持支付宝的高性价比美国VPS主机Pzea的购买及使用评测

Pzea一直是低价位VPS的人气之选,在美国三个大城市分别建有机房,且构建于KVM虚拟机之上,性能较为出众,接下来就为大家来分享一下这个支持支付宝的高性价比美国VPS主机Pzea的购买及使用评测
收藏 0 赞 0 分享

网站页面一定需要HTML静态化吗 实战说明静态化的必要性

很多刚开始运营网站的伙伴们都要知道网站内的页面需要进行URL优化吗?如设置静态化等,对此,本文就为大家解析一下网站静态化的必要性,有兴趣的朋友们可以了解下哦
收藏 0 赞 0 分享

移动端界面设计之尺寸基础知识学习

这篇文章主要为大家详细介绍了移动端界面设计之尺寸基础知识,通俗易懂的学习教程帮助大家了解关于移动端设计尺寸的相关知识,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

如何提高用户体验?优秀的用户体验需要遵守的十大准则

自己的网站做的很漂亮却依然没有排名,这是为什么呢?这个时候,你应该考虑你是否关注到用户体验?而如何提高用户体验又是你要考虑的问题了,本文将提供优秀的用户体验需要遵守的十大准则供大家了解,希望对大家有所帮助和启发
收藏 0 赞 0 分享

DoubleClick Ad Exchange Seller(adx) 为您的广告代码生成异步代码的方法

这篇文章主要介绍了DoubleClick Ad Exchange Seller(adx) 为您的广告代码生成异步代码的方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多