本节从整体上简要介绍飞天开放服务,包括弹性计算服务(ECS)、开放存储服务(OSS)、开放结构化数据服务(OTS)、关系型数据库服务(RDS)、开放数据处理服务(ODPS)和云服务引擎(ACE)。这些开放服务运行在飞天平台内核之上,具有以下一些共同的特点。
Ø全托管式服务:开放服务运行在数据中心的公共云平台之上,用户无须关心硬件设备的采购和软件系统的配置、管理,这些服务以全托管的方式为用户提供直接可用的软件服务。这样,用户可以专注在应用层逻辑的设计与实现,按照实际使用的多少进行付费,因此减少了初期在基础设施上的投入,节省了应用的成本。此外,开放服务还向用户提供详细的资源使用统计、性能指标和操作日志,方便用户调查错误和分析应用的行为。开放服务由阿里云的专业人士进行维护和优化,提供高端的基础设施和网络安全保障,用户无须担心数据备份、故障恢复和扩展升级等方面的问题。
Ø数据安全可靠:开放服务都采用盘古作为底层的存储,所有数据都为多份冗余存储。底层存储系统会自动处理集群中的硬件和软件错误,对用户屏蔽这些错误。此外,用户的数据在存储层完全被隔离,用户对数据的访问必须通过身份验证的机制,有效地保障了用户数据的安全和隐私。
Ø可扩展性:开放服务提供的资源完全可以随着用户使用负载的变化而弹性伸缩,用户只需要专注自身最核心的业务,而不用担心数据量的激增带来的数据可靠性和客户访问的性能问题。例如,在OTS服务中,系统通过对表进行横向切分(Partitioning)来实现规模的扩展,数据均匀地散落到多个存储节点上,可以通过增加机器和调整调度实现服务整体规模的扩展。
弹性计算服务(ECS)为用户提供一个根据需求动态运行的虚拟服务器的环境。对于ECS提供的虚拟服务器,用户可以像使用一台物理机器一样进行各种操作。ECS允许用户根据自己的需要,租用多台虚拟服务器来完成各种任务。在运行的过程中,用户也可以根据计算资源的需要动态增加或减少虚拟服务器的数量。
对于用户来说,弹性计算服务解决了业务的周期性变化带来的资源利用率不高和IT成本高的问题。同时,弹性计算服务还可以减少IT采购的周期,提供数据的可靠存储和可扩展的能力,并可以有效地减少网络安全的威胁。
针对弹性计算服务,阿里云还提供了云监控、云盾和负载均衡这三个产品。
Ø云监控为云服务器提供第三方监控服务,可以及时发现故障并通过多种方式报警,包括网站、Ping、TCP端口、UDP端口、DNS、POP3、SMTP、FTP等监控。云监控除了可以为ECS提供安全有效的监控服务外,还能为其他自由服务器提供监控服务,用户只需要通过简单的配置即可实现各种监控需求。
Ø云盾为云服务器提供一站式安全增值服务,包括安全体检(网页漏洞检测、网页挂马检测)、安全管家(防DDOS服务、端口安全检测、网站后门检测、异地登录提醒、主机密码暴力破解防御)等功能。
Ø负载均衡(Server LoadBalancer,SLB)通过设置虚拟IP,将位于同一数据中心的多台云服务器资源虚拟成一个高性能、高可用的应用服务池,再根据应用特性,将来自客户端的网络请求分发到云服务器池中。SLB会检查池中云服务器的健康状态,自动隔离异常状态云服务器。同时,SLB还可以增强云服务器池的抗攻击能力、安全隔离应用和云服务器。云服务器无须特殊设置即可透明接入SLB。
开放存储服务(OSS)是阿里云对外提供的海量、安全、低成本和高可靠的云存储服务。OSS支持海量的文件存储,同时在多个地方调用呈现,极大地简化了用户数据管理、迁移和更新的工作。用户可以通过简单的RESTful API(RESTful API的介绍参见附录B.1),在任何时间、任何地点、任何互联网设备上进行上传和下载数据,也可以使用Web页面对数据进行管理。OSS目前已经在多个云存储服务、电子商务网站和手机应用网站中使用,提供包括图片、软件和音视频文件在内的存储和互联网访问服务。
在OSS中,用户文件都是以Object的方式存储,每个Object包含名称、数据和用户存储的关于Object的元数据(Metadata)。由于OSS中Object不允许重命名和部分修改,因此,OSS服务适合于存储写一次、读多次的数据,例如,视频、音频、图片和备份文件等。OSS支持对整个Object内容进行替换的修改操作。
OSS的命名空间采用Bucket的方式:每个Bucket中可以存储任意数量的Object,但Bucket本身并不直接包含任何数据。存储在OSS上的每个Object必须都属于某个Bucket,Bucket名在整个OSS系统中具有全局唯一性,且不能修改。如果一个Bucket名已经被某个用户使用,那么其他用户都不能再使用这个Bucket名。OSS目前提供Bucket级别的访问权限控制,包括public-read-write、public-read和private这三种访问权限。
开放结构化数据服务(OTS)是阿里云对外提供的支持海量结构化和半结构化数据存储与实时访问的服务。OTS以表的方式存储数据,保证强一致性。一个用户可以拥有多个表,每个表中包含任意多行数据,每一行又可以包含任意多个列,除主键外的列不需要在创建表时指定。OTS还支持视图、表组和事务等高级功能。用户可以在表中查询、插入、修改和删除数据。用户可以通过RESTful API来使用服务,也可使用Web Portal页面对数据进行管理。
OTS目前在多个互联网应用场景中得到成功的使用,提供结构化数据的存储和实时访问服务。用户使用OTS可以免去雇用专人来管理和维护数据库软件的开销。OTS服务按实际使用量付费的方式也降低了客户的使用成本。用户也无须担心随着应用规模的不断扩大,数据量和并发访问的可扩展性需求,OTS服务通过自动扩展的方式为应用的长期快速发展解决后顾之忧。
关系型数据库服务(RDS)通过Web方式为用户提供可以在几分钟内生成并投入生产的、经过优化的数据库实例,支持MySQL和微软SQL Server这两种关系型数据库,适合于各行业中小企业的关系型数据库应用。使用阿里云的RDS服务能够使得中小企业根据业务规模发展的需要快速部署适合自己的数据库实例,因而无须购买昂贵的硬件和聘用管理维护人员,降低了企业使用数据库的综合成本。
RDS提供的数据库与用户自己搭建的数据库环境和使用方式完全相同,用户只需要使用通用的数据导入导出工具即可直接将已有的数据库迁移至RDS服务中。由于RDS数据库硬件和数据都部署在云端,利用阿里云提供的基础设施、网络安全保障、专业的系统运维维护及热备服务,数据库的备份、恢复和扩展升级等日常管理功能都极大地得到了简化。
以上RDS提供的各项功能及服务都不需要前期投资,用户只需要根据使用量进行付费即可。传统企业自建数据库的方式一般存在设备利用率偏低、不能按需部署、无法快速应对规模变化以及投入成本过高、维护成本高和建设周期过长等问题。而RDS相对于用户自建数据库具有低成本、高效率、高可靠、灵活易用等优点,使企业有更多的时间聚焦于自身的核心业务上面。
开放数据处理服务(ODPS)提供了大规模数据的离线处理和分析服务,它以RESTful API的形式支持基于描述性查询语言SQL的数据处理,并提供MapReduce[12]的并行计算框架。ODPS重点面向数据量大(PB级别)且实时性要求不高的海量数据分析应用,适用于海量数据统计、数据建模、数据挖掘、数据商业智能等互联网应用。
ODPS提供了SQL与MapReduce两种API供用户开发调用。ODPS SQL采用类似SQL的语法来处理大规模(PB级别)数据,适合于处理强调数据吞吐量的离线任务。ODPS SQL 提供了大量操作海量数据的SQL语法支持(API),例如,创建、删除表和视图的DDL语法,更新表的DML语法等。为了方便用户完成数据处理的各类任务,ODPS SQL还提供了很多高级功能,例如,窗口函数、用户自定义函数、存储过程等。与数据库相比,ODPS SQL并不具备数据库的一些特征,包括事务和主键约束。ODPS SQL的优势在于能够快速处理海量数据,它能够将多个SQL语句以它们之间的数据依赖关系组成一个工作流,然后以执行工作流的方式完成复杂的数据分析功能。
ODPS的MapReduce语法与Hadoop[19] MapReduce类似,基于此编程框架编写的程序以一种可靠容错的模式运行在由数千个通用服务器搭建的大规模集群上,能并行处理PB级别的海量数据。与Hadoop上使用的MapReduce相比,ODPS为用户提供了开箱即用(Out-of-Box)的离线数据处理环境,用户在注册ODPS账号以后即可使用。这样,用户可以集中精力于业务逻辑的实现上,而不用关心环境的搭建、配置、监控和调优。
云服务引擎(ACE)是飞天平台提供的一个基于云计算基础架构的网络应用程序托管环境,帮助应用开发者简化网络应用程序的构建和维护,并可根据应用访问量和数据存储的增长进行动态扩展。
ACE支持PHP和Node.js语言编写的应用程序,支持标准的关系型数据库(例如MySQL)、Memcache、Cron、Session和Storage,同时增加一些高级特性来满足开发者的需求。ACE选择PHP作为首选支持语言,ACE的PHP Runtime和官方标准PHP环境几乎完全一样,99%的代码可以不加任何修改就可以完美地运行在ACE环境中。出于安全和性能的考虑,ACE对标准PHP进行了一些扩展和改进。
截至本书出版时,ACE还在开发中,相应的API也没有对外开放。因此,在本书接下来的章节中不单独详细描述ACE,只是在附录D中介绍移动终端云应用开发时,简单介绍云应用怎样利用ACE空间来开发云端服务接口。
本文节选自《飞天开放平台编程指南——阿里云计算的实践(双色)》
周憬宇,李武军,过敏意编著
电子工业出版社出版