阿里云必赢手机版—-飞天开放服务

原标题:车联网上云最佳实践(二)

摘要:
我们以基于Oracle数据库的应用系统上云为例,如何根据实际需求,及不同的应用特征,去选择合适的上云解决方案?看懂了以下这张图,就能找到最适合你的应用系统总体的迁移上云路径。

阿里云—-飞天开放服务

本节从整体上简要介绍飞天开放服务,包括弹性计算服务(ECS)、开放存储服务(OSS)、开放结构化数据服务(OTS)、关系型数据库服务(RDS)、开放数据处理服务(ODPS)和云服务引擎(ACE)。这些开放服务运行在飞天平台内核之上,具有以下一些共同的特点。

Ø全托管式服务:开放服务运行在数据中心的公共云平台之上,用户无须关心硬件设备的采购和软件系统的配置、管理,这些服务以全托管的方式为用户提供直接可用的软件服务。这样,用户可以专注在应用层逻辑的设计与实现,按照实际使用的多少进行付费,因此减少了初期在基础设施上的投入,节省了应用的成本。此外,开放服务还向用户提供详细的资源使用统计、性能指标和操作日志,方便用户调查错误和分析应用的行为。开放服务由阿里云的专业人士进行维护和优化,提供高端的基础设施和网络安全保障,用户无须担心数据备份、故障恢复和扩展升级等方面的问题。

Ø数据安全可靠:开放服务都采用盘古作为底层的存储,所有数据都为多份冗余存储。底层存储系统会自动处理集群中的硬件和软件错误,对用户屏蔽这些错误。此外,用户的数据在存储层完全被隔离,用户对数据的访问必须通过身份验证的机制,有效地保障了用户数据的安全和隐私。

Ø可扩展性:开放服务提供的资源完全可以随着用户使用负载的变化而弹性伸缩,用户只需要专注自身最核心的业务,而不用担心数据量的激增带来的数据可靠性和客户访问的性能问题。例如,在OTS服务中,系统通过对表进行横向切分(Partitioning)来实现规模的扩展,数据均匀地散落到多个存储节点上,可以通过增加机器和调整调度实现服务整体规模的扩展。

摘要:
我们对传统IDC应用架构进行分析之后,我们发现之前的系统架构存在一些不合理的地方导致了很多的痛点,为了解决这些痛点我们最终考虑上云。开始思考怎样利用云上产品来解决目前遇到的痛点。例如

传统架构注重于硬件上的高可用,云平台通过分布式架构已经确保自身服务的高可用,并且集成了备份,监控,HA,审计等一系列基础运维服务,云平台采用直接就可用的服务方式提供,使用方随时购买随时就可用,无需考虑一系列繁琐的底层运维,使用方可以更加专注于业务上的研发。

弹性计算服务(ECS)

弹性计算服务(ECS)为用户提供一个根据需求动态运行的虚拟服务器的环境。对于ECS提供的虚拟服务器,用户可以像使用一台物理机器一样进行各种操作。ECS允许用户根据自己的需要,租用多台虚拟服务器来完成各种任务。在运行的过程中,用户也可以根据计算资源的需要动态增加或减少虚拟服务器的数量。

对于用户来说,弹性计算服务解决了业务的周期性变化带来的资源利用率不高和IT成本高的问题。同时,弹性计算服务还可以减少IT采购的周期,提供数据的可靠存储和可扩展的能力,并可以有效地减少网络安全的威胁。

针对弹性计算服务,阿里云还提供了云监控、云盾和负载均衡这三个产品。

Ø云监控为云服务器提供第三方监控服务,可以及时发现故障并通过多种方式报警,包括网站、Ping、TCP端口、UDP端口、DNS、POP3、SMTP、FTP等监控。云监控除了可以为ECS提供安全有效的监控服务外,还能为其他自由服务器提供监控服务,用户只需要通过简单的配置即可实现各种监控需求。

Ø云盾为云服务器提供一站式安全增值服务,包括安全体检(网页漏洞检测、网页挂马检测)、安全管家(防DDOS服务、端口安全检测、网站后门检测、异地登录提醒、主机密码暴力破解防御)等功能。

Ø负载均衡(Server
LoadBalancer,SLB)通过设置虚拟IP,将位于同一数据中心的多台云服务器资源虚拟成一个高性能、高可用的应用服务池,再根据应用特性,将来自客户端的网络请求分发到云服务器池中。SLB会检查池中云服务器的健康状态,自动隔离异常状态云服务器。同时,SLB还可以增强云服务器池的抗攻击能力、安全隔离应用和云服务器。云服务器无须特殊设置即可透明接入SLB。

云上对标架构及技术详解

我们以基于Oracle数据库的应用系统上云为例,如何根据实际需求,及不同的应用特征,去选择合适的上云解决方案?看懂了以下这张图,就能找到最适合你的应用系统总体的迁移上云路径。

开放存储服务(OSS)

开放存储服务(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这三种访问权限。

我们对传统IDC应用架构进行分析之后,我们发现之前的系统架构存在一些不合理的地方导致了很多的痛点,为了解决这些痛点我们最终考虑上云。开始思考怎样利用云上产品来解决目前遇到的痛点。例如

必赢手机版 1

开放结构化数据服务(OTS)

开放结构化数据服务(OTS)是阿里云对外提供的支持海量结构化和半结构化数据存储与实时访问的服务。OTS以表的方式存储数据,保证强一致性。一个用户可以拥有多个表,每个表中包含任意多行数据,每一行又可以包含任意多个列,除主键外的列不需要在创建表时指定。OTS还支持视图、表组和事务等高级功能。用户可以在表中查询、插入、修改和删除数据。用户可以通过RESTful
API来使用服务,也可使用Web Portal页面对数据进行管理。

OTS目前在多个互联网应用场景中得到成功的使用,提供结构化数据的存储和实时访问服务。用户使用OTS可以免去雇用专人来管理和维护数据库软件的开销。OTS服务按实际使用量付费的方式也降低了客户的使用成本。用户也无须担心随着应用规模的不断扩大,数据量和并发访问的可扩展性需求,OTS服务通过自动扩展的方式为应用的长期快速发展解决后顾之忧。


为了解决我们自建IDC底层基础设施可靠性差的问题,我们改用云计算服务,基础设施可靠性,异地容灾,数据备份,数据安全等问题再也不用担心;

迁云项目耗时耗力,迁移改造效率很低。阿里云专家提供上云全方位服务,降低上云技术风险和资源成本。包括在线业务系统上云、离线业务大数据上云、技术支撑、应用上云实施、数据迁移实施、大数据实施等。

关系型数据库服务(RDS)

关系型数据库服务(RDS)通过Web方式为用户提供可以在几分钟内生成并投入生产的、经过优化的数据库实例,支持MySQL和微软SQL
Server这两种关系型数据库,适合于各行业中小企业的关系型数据库应用。使用阿里云的RDS服务能够使得中小企业根据业务规模发展的需要快速部署适合自己的数据库实例,因而无须购买昂贵的硬件和聘用管理维护人员,降低了企业使用数据库的综合成本。

RDS提供的数据库与用户自己搭建的数据库环境和使用方式完全相同,用户只需要使用通用的数据导入导出工具即可直接将已有的数据库迁移至RDS服务中。由于RDS数据库硬件和数据都部署在云端,利用阿里云提供的基础设施、网络安全保障、专业的系统运维维护及热备服务,数据库的备份、恢复和扩展升级等日常管理功能都极大地得到了简化。

以上RDS提供的各项功能及服务都不需要前期投资,用户只需要根据使用量进行付费即可。传统企业自建数据库的方式一般存在设备利用率偏低、不能按需部署、无法快速应对规模变化以及投入成本过高、维护成本高和建设周期过长等问题。而RDS相对于用户自建数据库具有低成本、高效率、高可靠、灵活易用等优点,使企业有更多的时间聚焦于自身的核心业务上面。


为了解决存储性能瓶颈以及用户访问体验问题,我们改用云上对象存储OSS服务+CDN;

对于应用系统是否可直接迁移上云主要看数据库是否去O,是沿用原有的Oracle数据库还是采用阿里云提供的数据库,主要从以下几个方面判断:

开放数据处理服务(ODPS)

开放数据处理服务(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账号以后即可使用。这样,用户可以集中精力于业务逻辑的实现上,而不用关心环境的搭建、配置、监控和调优。

 为了解决单台数据库性能扩展瓶颈,我们改用云上的DRDS分布式关系数据库;

系统的复杂度。应用对数据库特征强依赖,以及应用层对数据库的强耦合会导致去O的难度和风险增加。如果去O的难度和风险达到不可控范围,则可以考虑直接迁移上云;


为了解决大规模的车机上报而导致数据写入延迟问题我们改用云上IOT套件+HiTSDB;

迁移周期要求。应用系统去O会带来更长的迁移周期,若对应用系统迁移上云迁移的周期有严格的要求,则可以选择直接迁移上云;

云服务引擎(ACE)

云服务引擎(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空间来开发云端服务接口。

 

必赢手机版 2

 

本文节选自《飞天开放平台编程指南——阿里云计算的实践(双色)》

周憬宇,李武军,过敏意编著

电子工业出版社出版


为了解决日常以及节假日流量高峰的问题,我们改用云上弹性伸缩服务+按量付费,以最低的成本完美解决日常及节假日流量高峰;

性能要求。相对而言,采用直接迁移上云的方式对数据库的性能会有所限制,同时数据库的性能扩展空间有限,所以选择直接迁移上云方式的应用必须考虑在规划的系统运行周期内性能上无较大规模的扩展要求。


为了解决大数据存储瓶颈以及降低大数据开发分析工作难度,我们改用云上MaxCompute

高可用要求。采用直接迁移上云方式是在ECS上部署Oracle数据库环境,数据库的高可用由用户来保障;若采用阿里云产品,则数据库的高可用可有阿里云保障。所以,直接迁移上云后数据库的高可用级别是否能够达到实际应用的运行要求也是判断应用是否直接迁移上云的重要方面。

  • HBase;

应用系统对数据库的IOPS性能要求较低且以IO读为主、延时在毫秒级,认为是低性能要求的。在迁移上云方案上可采用在ECS上直接部署Oracle构建数据库,具体迁移上云方法:


为了解决运维自动化问题以及提高运维工作效率,我们改用云上codepipeine+云监控+日志服务+容器服务;

1)
应用层基于ECS部署运行环境,应用程序直接迁移,同时修改应用程序的数据库连接;

 为了解决安全防御瓶颈,我们改用云上云盾+DDOS高防IP +
web应用防火墙+堡垒机;

2)
数据层基于ECS部署Oracle数据库,Oracle的数据存储采用ECS提供的云磁盘。数据库的迁移直接通过RMAN实现快速迁移。

 为了解决负载均衡以及网络扩容瓶颈,我们改用云上SLB;

应用系统对数据库的IO读写性能要求高、延时在微秒级以内,认为是高性能要求的,在迁移上云方案上考虑采用ECS(采用本地SSD存储)上直接部署Oracle构建数据库,具体迁移上云方法:


为了降低上云迁移复杂性,我们改用云上VPC虚拟专用网络,IP地址可以和原来保持不变;

1)
应用层基于ECS部署运行环境,应用程序直接迁移,同时修改应用程序的数据库连接;

 为了解决数据迁移的稳定性和便捷性,我们采用阿里云数据迁移工具DTS;

2)
数据层基于ECS部署Oracle数据库,Oracle的数据存储采用ECS提供的SSD磁盘。数据库的迁移直接通过RMAN实现快速迁移。

我们云上新的应用架构即会兼容部分老应用架构的特性,同时会采用云上新技术和云上产品来解决我们曾经的痛点和瓶颈。并且云上新架构需要满足未来2-3年的业务发展规划,能够支撑千万级用户规模的应用系统架构。下图为云上应用架构图。

如果考虑到高可用的要求,可以配置一个相同的ECS实例为数据库的备机,主备之间通过Oracle
Data
Guard做数据同步,当主机宕机后,备机可以接管服务,切换时间通常在分钟级别。

必赢手机版 3

自建的数据库系统,计划将数据迁移至阿里云云数据库,需要阿里云数据库专家评估方案,协助完成数据库迁移工作。云数据库实例间的数据迁移,需要阿里云专业DBA协助完成迁移工作。

1、云上对标架构介绍

对于传统应用系统,其原有的架构设计和采用的数据库、中间件与阿里云产品存在较大的差异,对于这种情况,需要对原有应用系统进行改造后迁移上云。针对不同类型的应用系统,其改造的方案也有所不同,一般将应用系统分为OLTP类型、OLAP类型、内容管理类型以及大数据应用类型四个大类。

1.1安全:

联机事务处理类型应用属于业务交易型系统,在各个行业内占有绝大多数比重。对于OLTP中低性能要求的通用应用,数据库可直接采用RDS。在实际迁移上云过程中涉及到数据库从Oracle向RDS的MySQL数据库的迁移。为了得到更好的性能,需要对待迁移系统所使用的Oracle特性进行转换,以适配RDS数据库,进行应用系统代码改造。

安全这块以前IDC机房的时候防范能力比较弱。为了解决安全防御瓶颈,我们改用云上云盾+DDOS高防IP

对于数据库性能要求高,但数据规模要求不高的关键应用,可通过引入数据缓存或采用读写分离的方式对RDS做性能扩展。引入数据缓存是采用阿里云Redis缓存服务,将部分查询数据加载至分布式缓存中,减少RDS的数据查询次数,提升系统的数据查询并发效率和降低响应时间。

  • web应用防火墙+堡垒机;

读写分离是采用分布式方式实现对数据库的读和写的职能进行分离,写数据请求主要发生在主库,读请求访问只读库,可以根据需求对只读库进行扩展,以实现整体请求性能的提升。

可以通过配置DDoS高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。DDoS攻击防护峰值带宽
20 Gbps ~ 300 Gbps
。同时,提供按天弹性付费方案,按当天攻击规模灵活付费。

对于数据库性能和数据规模要求都高的应用,可通过DRDS实行对数据库性能或规模的扩展。DRDS是通过水平切分的方式,将数据分布在多个RDS实例上,通过并行的分布式数据库操作来实现性能的提升。如下图所示。

云盾Web应用防火墙可以防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免网站资产数据泄露,保障网站的安全与可用性。

必赢手机版 4

关于DDOS高防IP和web应用防火墙产品介绍请详见文章附录第7.1&第7.2小结。

总的来说,通过迁移到RDS、引入数据缓存、分库分表、读写分离等多种方式可以以水平扩展方式取代原有的数据库架构,并且获得更好的性能和扩展性。

另外选择用堡垒机来替换原来的开源堡垒机,相比开源的产品,阿里云堡垒机多了一些审计合规,高效易用,多协议支持,追溯回放等功能。

联机分析处理类型系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员。阿里云针对OLAP类型应用的规模大小有不同的解决方案:

1.2负载均衡集群:

小规模系统。这类OLAP系统仅仅针对具体某一类业务的历史数据进行实时分析,一般数据在几百GB的规模,分析的数据维度在十几个以内。对于这类应用系统,其数据库直接采用RDS,并在RDS之上构建OLAP分析工具。

为了解决负载均衡以及网络扩容瓶颈,我们改用云上SLB负载均衡。阿里云的SLB负责均衡提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。四层采用开源软件LVS实现负载均衡,并根据云计算需求对其进行了个性化定制。七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能。更多关于阿里云负载均衡介绍请详见文章附录第2.2小结。

大规模实时分析。这类OLAP系统面向数据存储规模在100TB级别,单表记录数达到千亿级别,阿里云提供分析数据库服务(Analytic
Database
Service,简称ADS),可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。还可直接嵌入业务系统为终端客户提供分析服务。

负载均衡实例规格选型:

此外,对于内容管理类型以及大数据应用类型的应用系统,阿里云提供OSS、ODPS、OTS及专家服务,为迁云提供更专业支持。

根据当前业务量来看五百万用户,最高峰期间并发最大连接为50万,推荐使用

性能保障型规格5(slb.s3.medium)最大连接数50w,每秒新建连接数5w,QPS支持3w。完全满足当下的企业需求,如果后续业务和用户规模继续增长,仍然可以在线扩容到更高级别规格的SLB实例。如果未来达到千万级用户规模,需要大于100万规格的实例可以联系阿里云客户经理开通。

必赢手机版 5

1.3应用服务器集群:

应用服务器采用阿里云ECS云服务器,来部署应用环境。之前提到运行环境主要为JAVA环境和PHP环境,还有少部分Node.js环境。

Java环境:采用Centos7 + JDK1.7 + Tomcat7

PHP环境:采用Centos7 + PHP5.6.11

Node.js环境:采用Centos7 + Node8.9.3

有2种方式快速构建应用运行环境:

1)
购买ECS服务器后安装操作系统,然后手动部署应用环境,最后将应用环境构建成新的系统镜像。

2) 购买ECS云服务器后直接选择云市场的已经封装好的应用环境镜像即可。

必赢手机版 6

产品选型

ECS产品根据业务场景和使用场景,ECS实例可以分为多种规格族。同一业务场景下,还可以选择新旧多种规格族。同一个规格族里,根据CPU和内存的配置,可以分为多种不同的规格。ECS实例规格定义了实例的CPU和内存的配置(包括CPU型号、主频等)这两个基本属性。根据此前车联网行业特性来看,前端web应用推荐ecs.c5.xlarge(4核8G)规格实例,而后端应用推荐ecs.g5.xlarge(4核16G)规格实例。

必赢手机版 7

必赢手机版 8

1.4分布式服务集群:

分布式服务集群,延用Dubbo + ZooKeeper分布式服务框架。采用7台8核16G
SSD磁盘200G
ecs.c5.2xlarge规格ECS实例用于构建zookeeper集群。Zookeeper集群节点必须是奇数,因为在zookeeper集群中只要有超过一半的机器是正常工作的,那么整个集群对外就是可用的。

1.5缓存集群:

缓存集群采用阿里云数据库Redis版,传统自建Redis数据库通常存在集群节点扩容复杂,管理维护难等问题。所以我们改用云上数据库
Redis
版来替代,它具有性能卓越,弹性扩容,数据安全性高,可用性高,秒级监控,简单易用等优势。云数据库Redis版支持按量付费和包年包月两种模式,按量付费可转为包年包月模式,反之则不可以。可根据自己的需求自主选择更多关于云数据库Redis介绍请详见文章附录第3.2小结。

1.6消息队列集群:

消息队列采用阿里云的消息队列kafka服务,因为之前开源的kafka消息队列也经常遇到各种问题,也没有相应的能力去修复bug,选择阿里云的消息队列服务之后就不用担心这些问题,因为阿里云有一支专家团队在维护它的日常稳定运行,如出现官方bug他们有能力第一时间修复bug。更多关于阿里云消息队列kafka介绍请详见文章附录第8.2小结。

1.7流计算集群:

云上流计算采用阿里云的流计算服务,相较于其他流计算产品,阿里云流计算提供一些极具竞争力的产品优势,用户可以充分利用阿里云流计算提供的产品优势,方便快捷的解决自身业务实时化大数据分析的问题。产品优势,例如强大的实时处理能力、托管的实时计算服务、良好的流式开发体验、低廉的人力和集群成本。更多关于阿里云流计算介绍请详见文章附录第6.1小结。

必赢手机版 9

1.8数据存储集群:

MySQL集群:采用的是阿里云数据库RDS之MySQL版

阿里云数据库 MySQL 版是基于 Alibaba 的 MySQL 源码分支,经过双 11
高并发、大数据量的考验,拥有优良的性能和吞吐量。除此之外,阿里云数据库
MySQL 版还拥有经过优化的读写分离、数据压缩、智能调优等高级功能。当前 RDS
for MySQL 支持 5.5、5.6 和 5.7 版本。请详见文章附录第3.1小结。

RDS与自建数据库对比优势:

综合性能对比

相关文章