宝马娱乐在线城-宝马娱乐在线

来自 世界互联 2019-10-01 21:34 的文章
当前位置: 宝马娱乐在线城 > 世界互联 > 正文

车联网上云最佳实践(二)

解决方案: MaxCompute + Dataworks + 云数据库HBase版

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

原来自建的NFS文件系统,在扩展和访问速度方面随着文件数量的增加响应也越来越慢,这一块采用阿里云的OSS+CDN解决方案,应用也需要进行小小的改造。

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

以前的老万网被阿里云收购之后,变更为阿里云域名服务,它集域名注册、交易、解析、监控和保护为一体的综合域名管理平台。更多关于域名服务介绍请详见文章附录第5.6小结。

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

大数据计算平台:采用阿里云大数据计算服务

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

 Elastic官方技术支持团队7*24小时技术支持

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

1.3应用服务器集群:

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

解决方案:阿里云高性能时间序列数据库HiTSDB,解决海量数据写入延迟问题。

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

关系型数据库:Oracle、MySQL、SQLServer、PostgreSQL 、RDS For PAAS、DRDS、PetaData、OceanBase。

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

解决方案:阿里云物联网套件(iot套件),解决大规模车机管理,数据上报问题。

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

弹性扩容:采用阿里云弹性伸缩ESS,低成本解决日常以及节假日流量高峰问题。

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

在车联网行业中有个比较明显的行业特性就是早晚高峰是平时流量的3倍甚至更高,但是平常要应付这么高并发的流量意味着资源投入也要3倍以上。在传统IDC架构中,我们通常是按照平常最高峰流量的1.2倍(1.2倍是为应对特殊情况预留的buffer)来准备相应的服务器资源,在平时资源闲置比较明显,资源利用率不到30%,意味着平常可能100台应用服务器就足够了,但是为了应对高峰流量不出问题我们需要准备360台服务器应对6个小时的高峰流量,其余18小时可能只需要100台服务器。为了确保系统稳定,提升用户体验,当时我们只能投入比平时多几倍的服务器资源。所以在云上我们采用阿里云弹性伸缩服务,它是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务。在满足业务需求高峰增长时无缝地增加ECS实例,并在业务需求下降时自动减少ECS实例以节约成本。更多关于阿里云弹性伸缩服务介绍请详见文章附录第1.2小结。

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

责任编辑:

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

DRDS 实例可以通过改变资源数量实现服务能力的弹性扩展。

图片 1

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

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

支持 RDS/MySQL 的分库分表,在创建分布式数据库后,只需选择拆分键,DRDS 就可以按照拆分键生成拆分规则,实现数据水平拆分。

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

图片 2

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

 监控报警

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

阿里云日志服务是针对日志类数据的一站式服务,在阿里巴巴集团经历大量大数据场景锤炼而成。无需开发就能快捷完成日志数据采集、消费、投递以及查询分析等功能,提升运维、运营效率,建立 DT 时代海量日志处理能力。具有全托管,实时性强,生态丰富,完整API等特点。更多关于阿里云日志服务介绍请详见文章附录第5.7小结。

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

持续集成:传统应用升级发布主要靠的人肉升级或者脚本升级,后来尝试过利用开源的Jenkins+docker方式构建一个简单的应用发布系统,我们希望到云上可以继续保持这种发布方式,所以改用云上CodePipeline,阿里云CodePipeline是一款提供持续集成/持续交付能力,并完全兼容Jenkins的能力和使用习惯的SAAS化产品。它无需运维,开箱即用,全量兼容Jenkins插件,支持ECS,容器服务持续部署,快速上手。更多关于codepipeline介绍请详见文章附录第5.9小结。

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

图片 3

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

产品选型

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

3) 用户直接向OSS发送文件上传请求。

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

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

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

 迁移方法:

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

 数据存储平滑扩容

图片 4

为什么我们不自建HBase而选择云数据库HBase呢?云HBase和自建图片 5

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

图片 6

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

之前的传统运维,基本都是靠人肉运维,脚本运维,运维自动化程度很低,导致故障频发,故障定位难,我们的运维同学大量时间花在了重复的升级发布工作上,花在了填坑以及解决故障上,长此以往运维同学自身发展受限,信心受挫,人员流失比例高的恶性循环的结果。我们迫切希望这种状况可以得到较好的解决。对比之前大量采用开源的监控工具相比,大部分阿里云的产品本身就自带web控制台,也有一些比较实用的运维管控产品,例如云监控,堡垒机,数据管理,数据迁移,容器服务,域名等等。以前的运维痛点可以通过阿里云的运维产品可以很好的得到解决。

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

1.2负载均衡集群:

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

图片 7

物联网套件是阿里云专门为物联网领域的开发人员推出的一站式设备管理平台。性能强大的IoT Hub方便设备和云端稳定的进行双向通信;全球多节点的部署让全球设备都可以低延时与云端通信;多重的防护能力保障设备云端安全;功能丰富的设备管理能力帮助用户方便进行远程维护设备;稳定可靠的数据存储能力方便海量设备数据存储和实时访问。物联网套件还提供规则引擎与阿里云众多云产品打通,用户通过规则引擎只需在web上配置规则即可实现数据采集+数据计算+数据存储等全栈服务,灵活快速的构建物联网应用。更多关于阿里云IOT套件介绍请详见文章附录。

云数据库 HBase 版(ApsaraDB for HBase)是基于 Hadoop 且100%兼容HBase协议的高性能、可弹性伸缩、面向列的分布式数据库,轻松支持PB级大数据存储,满足千万级QPS高吞吐随机读写场景。阿里集团在10年开始研究HBase并使用在生产之中,目前阿里集团有10000台左右的HBase机器,数百个集群,服务数百个业务。是一款久经沙场的大数据产品。

2.2 文件系统迁移策略

文件存储:采用阿里云对象存储OSS

当出现数据存储容量和访问量瓶颈时,DRDS 支持在线存储容量扩展,扩容无需应用改造,扩容进度支持可视化跟踪。

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

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

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

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

 分布式运维指令集

问题3:车联网行业是典型的大数据行业,有大量的大数据分析应用场景需求,但是自建大数据平台成本高,维护困难,大数据人才不好招。

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

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

阿里云高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 是一种高性能,低成本,稳定可靠的在线时序数据库服务;提供高效读写,高压缩比存储、时序数据插值及聚合计算,广泛应用于物联网(IoT)设备监控系统 ,企业能源管理系统(EMS),生产安全监控系统,电力检测系统等行业场景。

负载均衡实例规格选型:

日志管理:采用阿里云日志服务解决日志收集,日志分析,日志搜索等问题。

解决方案:阿里云分布式关系型数据库服务DRDS

数据可视化:采用DataV, 解决了运维大屏,监控大屏没有UI设计问题 企业多多少少有些大屏,在公司接待参观考察工作时展示企业形象,企业运营,以及系统运行情况等。为了提升企业形象,有必要针对数据可视化部分进行美化。阿里云的DataV 可以帮助非专业的工程师通过图形化的界面轻松搭建具有专业水准的可视化应用,让更多的人看到数据可视化的魅力。DataV 提供了丰富的可视化模板,极大程度满足会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。更多关于阿里云DataV数据可视化介绍请详见文章附录第5.2小结。

阿里云CDN在全球拥有1300+ 节点,国内完整覆盖 34 个省级区域,大量节点位于省会等一线城市。海外覆盖70 多个国家和地区。阿里云所有节点均接入 万兆 网卡;具备 90 Tpbs 带宽能力储备。单节点存储容量达 40 TB-1.5 PB,带宽负载达到 40 Gbps-200 Gbps。

智能车联网平台每天会采集海量车行驶数据,例如车辆发动机状态,驾驶行为,油耗,公里数,行驶轨迹等等,我们需要对这些海量数据进行加工和分析。例如用户每天行驶里程统计,油耗统计,用户驾驶行为月报告等等。因初期数据量相对较小,使用Kettle进行抽取数据等工作,ETL的工作大部分在MySQL数据仓库中完成。多种数据源使用Presto(集群)作为查询中间键进行相应的数据分析。但随着业务的疯狂增长,数据表单表达到数亿后,磁盘容量达几百GB时,数据要求的复杂度逐步提升,使用MySQL作为基础数据仓库的基石已经不足以应付,常出现查询响应时间等待过长,甚至内存崩溃导致执行失败的情况,极大的影响了工作效率。所以云上我们改用阿里云MaxCompute大数据计算服务来构建我们公司大数据开发和分析平台。MaxCompute能够为我们提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决海量数据计算问题,有效帮助我们公司降低成本,并保障数据安全。Dataworks则提供了一站式的数据同步,数据开发,数据管理和数据运维等功能。更多关于阿里云大数据计算服务介绍请详见文章附录第6.2小结。

OSS服务 配合CDN 服务一起使用,则可以加速文件存储和访问速度,提升用户访问体验。

DRDS 支持分布式柔性事务,保证分布式数据库数据一致性。

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

CDN的工作原理就是将源站的资源缓存到各地的边缘节点服务器(CDN节点)上,用户请求访问和获取资源时,就近调用CDN节点上缓存的资源。这种分布式数据传输方式,使得用户请求的资源不需要都回源站获取,从而避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。

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

传统架构中的MongoDBS用来存储车辆上报的原始数据的,这些数据通常情况下写多读少,原始数据的保存可以有利于特殊情况对问题的追溯。或者是数据丢失的情况下可以用原始数据来进行弥补。原来MongoDB集群在达到一定规模之后性能出现断崖下降,因为对MongoDB掌握不够深,没有正确使MongoDB导致。这里改用云上数据库HBase版来替换原来的MongoDB集群。HBase的高并发大数据量等特性非常适合海量数据存储,业务大屏,安全风控,搜索等场景。

成本对比

1.12 尝试新产品解决老问题

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

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

1.5缓存集群:

1.11运维管控集群:

域名管理:采用阿里云域名服务,一站式解决域名购买,管理,备案等问题。

问题4:单机MySQL数据库遇到IO性能瓶颈和容量扩容瓶颈,如果业务和用户规模继续增长将面临单机数据库扩展困难。

7) OSS将应用服务器返回的内容返回给用户。

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

PHP环境:采用Centos7 + PHP5.6.11

图片 8

https://qz.com/344466/connected-cars-will-send-25-gigabytes-of-data-to-the-cloud-every-hour/

图片 9

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

数据库迁移是整个上云过程中最重要的一环,难度也最大,因为我们在迁移的时候要尽可能的减少业务本身的影响,最好是不停机不中断现有业务。需要制定非常详细的计划和迁移策略:

图片 10

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

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

之前采用的是自建NFS文件系统用于存储图片和文件。随着文件越来越多,图片访问速度越来越慢,搬到云上之后,可以利用阿里云的OSS和CDN服务,构建如下的web端直传OSS存储方案,架构如下:

![1](https://yqfile.alicdn.com/2e2c16807491dc80aabeaa26065fa255066407a0.png)

 全局唯一数字序列

 可弹性扩展到上百台服务器规模,处理PB级结构化或非结构化数据

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

综合性能对比

同时,DataWorks 和 MaxCompute 关系紧密,DataWorks 为 MaxCompute 提供了一站式的数据同步,任务开发,数据工作流开发,数据管理和数据运维等功能,帮助企业专注于数据价值的挖掘和探索。普通开发人员也可以胜任大数据开发任务。

图片 11

文件系统迁移改造方案请看2.2章节。

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

阿里云分布式关系型数据库服务专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,是阿里巴巴集团自主研发的中间件产品。DRDS 兼容 MySQL 协议和语法,支持分库分表、平滑扩容、服务升降配、透明读写分离和分布式事务等特性,具备分布式数据库全生命周期的运维管控能力。DRDS 主要应用场景在大规模在线数据操作上,通过贴合业务的拆分方式,将操作效率提升到极致,有效满足用户在线业务对关系性数据库要求。DRDS提供了丰富的功能:

https://yq.aliyun.com/articles/176102?spm=5176.124785.838505.1.1ba352c0NSfA6X

HiTSDB 提供百万级时序数据秒级写入,高压缩比低成本存储、预降采样、插值、多维聚合计算,查询结果可视化功能;解决由于设备采集点数量巨大,数据采集频率高,造成的存储成本高,写入和查询分析效率低的问题。后续文章会详细介绍HiTSDB性能测试内容。更多关于HiTSDB介绍请详见文章附录第。

本文由宝马娱乐在线城发布于世界互联,转载请注明出处:车联网上云最佳实践(二)

关键词: