车联网上云最佳实践(二)
云上對標(biāo)架構(gòu)及技術(shù)詳解
我們對傳統(tǒng)IDC應(yīng)用架構(gòu)進(jìn)行分析之后,我們發(fā)現(xiàn)之前的系統(tǒng)架構(gòu)存在一些不合理的地方導(dǎo)致了很多的痛點,為了解決這些痛點我們最終考慮上云。開始思考怎樣利用云上產(chǎn)品來解決目前遇到的痛點。例如
為了解決我們自建IDC底層基礎(chǔ)設(shè)施可靠性差的問題,我們改用云計算服務(wù),基礎(chǔ)設(shè)施可靠性,異地容災(zāi),數(shù)據(jù)備份,數(shù)據(jù)安全等問題再也不用擔(dān)心;
- 為了解決存儲性能瓶頸以及用戶訪問體驗問題,我們改用云上對象存儲OSS服務(wù)+CDN;
- 為了解決單臺數(shù)據(jù)庫性能擴(kuò)展瓶頸,我們改用云上的DRDS分布式關(guān)系數(shù)據(jù)庫;
- 為了解決大規(guī)模的車機(jī)上報而導(dǎo)致數(shù)據(jù)寫入延遲問題我們改用云上IOT套件+HiTSDB;
- 為了解決日常以及節(jié)假日流量高峰的問題,我們改用云上彈性伸縮服務(wù)+按量付費(fèi),以最低的成本完美解決日常及節(jié)假日流量高峰;
- 為了解決大數(shù)據(jù)存儲瓶頸以及降低大數(shù)據(jù)開發(fā)分析工作難度,我們改用云上MaxCompute + HBase;
- 為了解決運(yùn)維自動化問題以及提高運(yùn)維工作效率,我們改用云上codepipeine+云監(jiān)控+日志服務(wù)+容器服務(wù);
- 為了解決安全防御瓶頸,我們改用云上云盾+DDOS高防IP + web應(yīng)用防火墻+堡壘機(jī);
- 為了解決負(fù)載均衡以及網(wǎng)絡(luò)擴(kuò)容瓶頸,我們改用云上SLB;
- 為了降低上云遷移復(fù)雜性,我們改用云上VPC虛擬專用網(wǎng)絡(luò),IP地址可以和原來保持不變;
- 為了解決數(shù)據(jù)遷移的穩(wěn)定性和便捷性,我們采用阿里云數(shù)據(jù)遷移工具DTS;
我們云上新的應(yīng)用架構(gòu)即會兼容部分老應(yīng)用架構(gòu)的特性,同時會采用云上新技術(shù)和云上產(chǎn)品來解決我們曾經(jīng)的痛點和瓶頸。并且云上新架構(gòu)需要滿足未來2-3年的業(yè)務(wù)發(fā)展規(guī)劃,能夠支撐千萬級用戶規(guī)模的應(yīng)用系統(tǒng)架構(gòu)。下圖為云上應(yīng)用架構(gòu)圖。
?
1、云上對標(biāo)架構(gòu)介紹
1.1安全:
安全這塊以前IDC機(jī)房的時候防范能力比較弱。為了解決安全防御瓶頸,我們改用云上云盾+DDOS高防IP + web應(yīng)用防火墻+堡壘機(jī);
可以通過配置DDoS高防IP,將攻擊流量引流到高防IP,確保源站的穩(wěn)定可靠。DDoS攻擊防護(hù)峰值帶寬 20 Gbps ~ 300 Gbps 。同時,提供按天彈性付費(fèi)方案,按當(dāng)天攻擊規(guī)模靈活付費(fèi)。
云盾Web應(yīng)用防火墻可以防御SQL注入、XSS跨站腳本、常見Web服務(wù)器插件漏洞、木馬上傳、非授權(quán)核心資源訪問等OWASP常見攻擊,并過濾海量惡意CC攻擊,避免網(wǎng)站資產(chǎn)數(shù)據(jù)泄露,保障網(wǎng)站的安全與可用性。
關(guān)于DDOS高防IP和web應(yīng)用防火墻產(chǎn)品介紹請詳見文章附錄第7.1&第7.2小結(jié)。
另外選擇用堡壘機(jī)來替換原來的開源堡壘機(jī),相比開源的產(chǎn)品,阿里云堡壘機(jī)多了一些審計合規(guī),高效易用,多協(xié)議支持,追溯回放等功能。
1.2負(fù)載均衡集群:
為了解決負(fù)載均衡以及網(wǎng)絡(luò)擴(kuò)容瓶頸,我們改用云上SLB負(fù)載均衡。阿里云的SLB負(fù)責(zé)均衡提供四層(TCP協(xié)議和UDP協(xié)議)和七層(HTTP和HTTPS協(xié)議)的負(fù)載均衡服務(wù)。四層采用開源軟件LVS實現(xiàn)負(fù)載均衡,并根據(jù)云計算需求對其進(jìn)行了個性化定制。七層采用Tengine實現(xiàn)負(fù)載均衡。Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項目,它在Nginx的基礎(chǔ)上,針對有大訪問量的網(wǎng)站需求,添加了很多高級功能。更多關(guān)于阿里云負(fù)載均衡介紹請詳見文章附錄第2.2小結(jié)。
負(fù)載均衡實例規(guī)格選型:
根據(jù)當(dāng)前業(yè)務(wù)量來看五百萬用戶,最高峰期間并發(fā)最大連接為50萬,推薦使用
性能保障型規(guī)格5(slb.s3.medium)最大連接數(shù)50w,每秒新建連接數(shù)5w,QPS支持3w。完全滿足當(dāng)下的企業(yè)需求,如果后續(xù)業(yè)務(wù)和用戶規(guī)模繼續(xù)增長,仍然可以在線擴(kuò)容到更高級別規(guī)格的SLB實例。如果未來達(dá)到千萬級用戶規(guī)模,需要大于100萬規(guī)格的實例可以聯(lián)系阿里云客戶經(jīng)理開通。
?
1.3應(yīng)用服務(wù)器集群:
應(yīng)用服務(wù)器采用阿里云ECS云服務(wù)器,來部署應(yīng)用環(huán)境。之前提到運(yùn)行環(huán)境主要為JAVA環(huán)境和PHP環(huán)境,還有少部分Node.js環(huán)境。
有2種方式快速構(gòu)建應(yīng)用運(yùn)行環(huán)境:
?
產(chǎn)品選型
ECS產(chǎn)品根據(jù)業(yè)務(wù)場景和使用場景,ECS實例可以分為多種規(guī)格族。同一業(yè)務(wù)場景下,還可以選擇新舊多種規(guī)格族。同一個規(guī)格族里,根據(jù)CPU和內(nèi)存的配置,可以分為多種不同的規(guī)格。ECS實例規(guī)格定義了實例的CPU和內(nèi)存的配置(包括CPU型號、主頻等)這兩個基本屬性。根據(jù)此前車聯(lián)網(wǎng)行業(yè)特性來看,前端web應(yīng)用推薦ecs.c5.xlarge(4核8G)規(guī)格實例,而后端應(yīng)用推薦ecs.g5.xlarge(4核16G)規(guī)格實例。
?
?
1.4分布式服務(wù)集群:
分布式服務(wù)集群,延用Dubbo + ZooKeeper分布式服務(wù)框架。采用7臺8核16G SSD磁盤200G ecs.c5.2xlarge規(guī)格ECS實例用于構(gòu)建zookeeper集群。Zookeeper集群節(jié)點必須是奇數(shù),因為在zookeeper集群中只要有超過一半的機(jī)器是正常工作的,那么整個集群對外就是可用的。
1.5緩存集群:
緩存集群采用阿里云數(shù)據(jù)庫Redis版,傳統(tǒng)自建Redis數(shù)據(jù)庫通常存在集群節(jié)點擴(kuò)容復(fù)雜,管理維護(hù)難等問題。所以我們改用云上數(shù)據(jù)庫 Redis 版來替代,它具有性能卓越,彈性擴(kuò)容,數(shù)據(jù)安全性高,可用性高,秒級監(jiān)控,簡單易用等優(yōu)勢。云數(shù)據(jù)庫Redis版支持按量付費(fèi)和包年包月兩種模式,按量付費(fèi)可轉(zhuǎn)為包年包月模式,反之則不可以。可根據(jù)自己的需求自主選擇更多關(guān)于云數(shù)據(jù)庫Redis介紹請詳見文章附錄第3.2小結(jié)。
1.6消息隊列集群:
消息隊列采用阿里云的消息隊列kafka服務(wù),因為之前開源的kafka消息隊列也經(jīng)常遇到各種問題,也沒有相應(yīng)的能力去修復(fù)bug,選擇阿里云的消息隊列服務(wù)之后就不用擔(dān)心這些問題,因為阿里云有一支專家團(tuán)隊在維護(hù)它的日常穩(wěn)定運(yùn)行,如出現(xiàn)官方bug他們有能力第一時間修復(fù)bug。更多關(guān)于阿里云消息隊列kafka介紹請詳見文章附錄第8.2小結(jié)。
1.7流計算集群:
云上流計算采用阿里云的流計算服務(wù),相較于其他流計算產(chǎn)品,阿里云流計算提供一些極具競爭力的產(chǎn)品優(yōu)勢,用戶可以充分利用阿里云流計算提供的產(chǎn)品優(yōu)勢,方便快捷的解決自身業(yè)務(wù)實時化大數(shù)據(jù)分析的問題。產(chǎn)品優(yōu)勢,例如強(qiáng)大的實時處理能力、托管的實時計算服務(wù)、良好的流式開發(fā)體驗、低廉的人力和集群成本。更多關(guān)于阿里云流計算介紹請詳見文章附錄第6.1小結(jié)。
1.8數(shù)據(jù)存儲集群:
MySQL集群:采用的是阿里云數(shù)據(jù)庫RDS之MySQL版?
阿里云數(shù)據(jù)庫 MySQL 版是基于 Alibaba 的 MySQL 源碼分支,經(jīng)過雙 11 高并發(fā)、大數(shù)據(jù)量的考驗,擁有優(yōu)良的性能和吞吐量。除此之外,阿里云數(shù)據(jù)庫 MySQL 版還擁有經(jīng)過優(yōu)化的讀寫分離、數(shù)據(jù)壓縮、智能調(diào)優(yōu)等高級功能。當(dāng)前 RDS for MySQL 支持 5.5、5.6 和 5.7 版本。請詳見文章附錄第3.1小結(jié)。
RDS與自建數(shù)據(jù)庫對比優(yōu)勢:
綜合性能對比
成本對比
HBase集群:采用的是阿里云數(shù)據(jù)庫HBase版
傳統(tǒng)架構(gòu)中的MongoDBS用來存儲車輛上報的原始數(shù)據(jù)的,這些數(shù)據(jù)通常情況下寫多讀少,原始數(shù)據(jù)的保存可以有利于特殊情況對問題的追溯。或者是數(shù)據(jù)丟失的情況下可以用原始數(shù)據(jù)來進(jìn)行彌補(bǔ)。原來MongoDB集群在達(dá)到一定規(guī)模之后性能出現(xiàn)斷崖下降,因為對MongoDB掌握不夠深,沒有正確使MongoDB導(dǎo)致。這里改用云上數(shù)據(jù)庫HBase版來替換原來的MongoDB集群。HBase的高并發(fā)大數(shù)據(jù)量等特性非常適合海量數(shù)據(jù)存儲,業(yè)務(wù)大屏,安全風(fēng)控,搜索等場景。
HBase主要優(yōu)勢有兩點:
更多關(guān)于云數(shù)據(jù)庫HBase介紹請詳見文章附錄第3.4小結(jié)。
為什么我們不自建HBase而選擇云數(shù)據(jù)庫HBase呢?云HBase和自建
?
?
Elasticsearch集群:采用阿里云的Elasticsearch
傳統(tǒng)自建Elasticsearch集群存在性能不足,集群節(jié)點擴(kuò)容復(fù)雜,管理維護(hù)難度大等問題,因此我們改用云上Elasticsearch服務(wù),它具有豐富的預(yù)置插件(IK Analyzer,pinyin Analyzer,smart Chinese Analysis Plugin,Mapper Attachments Type plugin等等),還包括集成X-pack插件提供企業(yè)級權(quán)限管控,實時監(jiān)控等強(qiáng)大功能。它的特點和優(yōu)勢如下:
- 分布式的實時文件存儲,每個字段都被索引并可被搜索
- 分布式的實時分析搜索引擎
- 商業(yè)版X-pack插件,提供企業(yè)級權(quán)限管控、實時系統(tǒng)監(jiān)控等強(qiáng)大服務(wù)
- 可彈性擴(kuò)展到上百臺服務(wù)器規(guī)模,處理PB級結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)
- 支持IK analyzer插件
- Elastic官方技術(shù)支持團(tuán)隊7*24小時技術(shù)支持
?
1.9文件存儲集群:
文件存儲:采用阿里云對象存儲OSS
原來自建的NFS文件系統(tǒng),在擴(kuò)展和訪問速度方面隨著文件數(shù)量的增加響應(yīng)也越來越慢,這一塊采用阿里云的OSS+CDN解決方案,應(yīng)用也需要進(jìn)行小小的改造。
文件系統(tǒng)遷移改造方案請看2.2章節(jié)。
阿里云對象存儲服務(wù)(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲服務(wù)。它具有與平臺無關(guān)的RESTful API接口,能夠提供99.999999999%(11個9)的數(shù)據(jù)可靠性和99.99%的服務(wù)可用性。可以使用阿里云提供的API/SDK接口或者OSS遷移工具輕松地將海量數(shù)據(jù)移入或移出阿里云OSS。數(shù)據(jù)存儲到阿里云OSS以后,推薦選擇標(biāo)準(zhǔn)類型(Standard)的阿里云OSS服務(wù)作為移動應(yīng)用、大型網(wǎng)站、圖片分享或熱點音視頻的主要存儲方式,也可以選擇成本更低、存儲期限更長的低頻訪問類型(Infrequent Access)和歸檔類型(Archive)的阿里云OSS服務(wù)作為不經(jīng)常訪問數(shù)據(jù)的備份和歸檔。更多關(guān)于阿里云對象存儲服務(wù)OSS介紹請詳見文章附錄第4小結(jié)。
1.10 大數(shù)據(jù)計算平臺
大數(shù)據(jù)計算平臺:采用阿里云大數(shù)據(jù)計算服務(wù)智能車聯(lián)網(wǎng)平臺每天會采集海量車行駛數(shù)據(jù),例如車輛發(fā)動機(jī)狀態(tài),駕駛行為,油耗,公里數(shù),行駛軌跡等等,我們需要對這些海量數(shù)據(jù)進(jìn)行加工和分析。例如用戶每天行駛里程統(tǒng)計,油耗統(tǒng)計,用戶駕駛行為月報告等等。因初期數(shù)據(jù)量相對較小,使用Kettle進(jìn)行抽取數(shù)據(jù)等工作,ETL的工作大部分在MySQL數(shù)據(jù)倉庫中完成。多種數(shù)據(jù)源使用Presto(集群)作為查詢中間鍵進(jìn)行相應(yīng)的數(shù)據(jù)分析。但隨著業(yè)務(wù)的瘋狂增長,數(shù)據(jù)表單表達(dá)到數(shù)億后,磁盤容量達(dá)幾百GB時,數(shù)據(jù)要求的復(fù)雜度逐步提升,使用MySQL作為基礎(chǔ)數(shù)據(jù)倉庫的基石已經(jīng)不足以應(yīng)付,常出現(xiàn)查詢響應(yīng)時間等待過長,甚至內(nèi)存崩潰導(dǎo)致執(zhí)行失敗的情況,極大的影響了工作效率。
所以云上我們改用阿里云MaxCompute大數(shù)據(jù)計算服務(wù)來構(gòu)建我們公司大數(shù)據(jù)開發(fā)和分析平臺。MaxCompute能夠為我們提供了完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計算模型,能夠更快速的解決海量數(shù)據(jù)計算問題,有效幫助我們公司降低成本,并保障數(shù)據(jù)安全。Dataworks則提供了一站式的數(shù)據(jù)同步,數(shù)據(jù)開發(fā),數(shù)據(jù)管理和數(shù)據(jù)運(yùn)維等功能。更多關(guān)于阿里云大數(shù)據(jù)計算服務(wù)介紹請詳見文章附錄第6.2小結(jié)。
1.11運(yùn)維管控集群:
之前的傳統(tǒng)運(yùn)維,基本都是靠人肉運(yùn)維,腳本運(yùn)維,運(yùn)維自動化程度很低,導(dǎo)致故障頻發(fā),故障定位難,我們的運(yùn)維同學(xué)大量時間花在了重復(fù)的升級發(fā)布工作上,花在了填坑以及解決故障上,長此以往運(yùn)維同學(xué)自身發(fā)展受限,信心受挫,人員流失比例高的惡性循環(huán)的結(jié)果。我們迫切希望這種狀況可以得到較好的解決。對比之前大量采用開源的監(jiān)控工具相比,大部分阿里云的產(chǎn)品本身就自帶web控制臺,也有一些比較實用的運(yùn)維管控產(chǎn)品,例如云監(jiān)控,堡壘機(jī),數(shù)據(jù)管理,數(shù)據(jù)遷移,容器服務(wù),域名等等。以前的運(yùn)維痛點可以通過阿里云的運(yùn)維產(chǎn)品可以很好的得到解決。
日志管理:采用阿里云日志服務(wù)解決日志收集,日志分析,日志搜索等問題。
阿里云日志服務(wù)是針對日志類數(shù)據(jù)的一站式服務(wù),在阿里巴巴集團(tuán)經(jīng)歷大量大數(shù)據(jù)場景錘煉而成。無需開發(fā)就能快捷完成日志數(shù)據(jù)采集、消費(fèi)、投遞以及查詢分析等功能,提升運(yùn)維、運(yùn)營效率,建立 DT 時代海量日志處理能力。具有全托管,實時性強(qiáng),生態(tài)豐富,完整API等特點。
更多關(guān)于阿里云日志服務(wù)介紹請詳見文章附錄第5.7小結(jié)。
彈性擴(kuò)容:采用阿里云彈性伸縮ESS,低成本解決日常以及節(jié)假日流量高峰問題。
在車聯(lián)網(wǎng)行業(yè)中有個比較明顯的行業(yè)特性就是早晚高峰是平時流量的3倍甚至更高,但是平常要應(yīng)付這么高并發(fā)的流量意味著資源投入也要3倍以上。在傳統(tǒng)IDC架構(gòu)中,我們通常是按照平常最高峰流量的1.2倍(1.2倍是為應(yīng)對特殊情況預(yù)留的buffer)來準(zhǔn)備相應(yīng)的服務(wù)器資源,在平時資源閑置比較明顯,資源利用率不到30%,意味著平常可能100臺應(yīng)用服務(wù)器就足夠了,但是為了應(yīng)對高峰流量不出問題我們需要準(zhǔn)備360臺服務(wù)器應(yīng)對6個小時的高峰流量,其余18小時可能只需要100臺服務(wù)器。
為了確保系統(tǒng)穩(wěn)定,提升用戶體驗,當(dāng)時我們只能投入比平時多幾倍的服務(wù)器資源。所以在云上我們采用阿里云彈性伸縮服務(wù),它是一種根據(jù)業(yè)務(wù)需求和策略,自動調(diào)整其彈性計算資源的管理服務(wù)。在滿足業(yè)務(wù)需求高峰增長時無縫地增加ECS實例,并在業(yè)務(wù)需求下降時自動減少ECS實例以節(jié)約成本。更多關(guān)于阿里云彈性伸縮服務(wù)介紹請詳見文章附錄第1.2小結(jié)。
域名管理:采用阿里云域名服務(wù),一站式解決域名購買,管理,備案等問題。
以前的老萬網(wǎng)被阿里云收購之后,變更為阿里云域名服務(wù),它集域名注冊、交易、解析、監(jiān)控和保護(hù)為一體的綜合域名管理平臺。更多關(guān)于域名服務(wù)介紹請詳見文章附錄第5.6小結(jié)。
持續(xù)集成:傳統(tǒng)應(yīng)用升級發(fā)布主要靠的人肉升級或者腳本升級,后來嘗試過利用開源的Jenkins+docker方式構(gòu)建一個簡單的應(yīng)用發(fā)布系統(tǒng),我們希望到云上可以繼續(xù)保持這種發(fā)布方式,所以改用云上CodePipeline,阿里云CodePipeline是一款提供持續(xù)集成/持續(xù)交付能力,并完全兼容Jenkins的能力和使用習(xí)慣的SAAS化產(chǎn)品。
它無需運(yùn)維,開箱即用,全量兼容Jenkins插件,支持ECS,容器服務(wù)持續(xù)部署,快速上手。更多關(guān)于codepipeline介紹請詳見文章附錄第5.9小結(jié)。
容器管理:采用阿里云容器服務(wù),一站式解決容器生命周期管理及集群管理問題。
阿里云容器服務(wù)提供高性能可伸縮的容器應(yīng)用管理服務(wù),支持用 Docker 和 Kubernetes進(jìn)行容器化應(yīng)用的生命周期管理,提供多種應(yīng)用發(fā)布方式和持續(xù)交付能力并支持微服務(wù)架構(gòu)。容器服務(wù)簡化了容器管理集群的搭建工作,整合了阿里云虛擬化、存儲、網(wǎng)絡(luò)和安全能力,打造云端最佳容器運(yùn)行環(huán)境。阿里云容器服務(wù)可以提供一站式容器生命周期管理以及集群管理。更多關(guān)于阿里云容器管理介紹請詳見文章附錄第5.5小結(jié)。
統(tǒng)一配置:采用阿里云應(yīng)用配置管理,傳統(tǒng)IDC架構(gòu)中我們的應(yīng)用因為微服務(wù)架構(gòu)的需要全部采用了的統(tǒng)一配置管理,將配置中心化管理,保存在zookeeper當(dāng)中,通過一個web前端進(jìn)行配置管理。應(yīng)用通過本地客戶端向服務(wù)端請求配置。這樣做的好處是應(yīng)用配置可以集中存放,統(tǒng)一配置,方便管理。但是我們的web配置管理中心提供的功能比較簡單,甚至不具備權(quán)限管理,配置快照,備份和恢復(fù)等功能。在云上我們改用阿里云的應(yīng)用配置管理ACM產(chǎn)品。
云上應(yīng)用配置管理是一款在分布式架構(gòu)環(huán)境中對應(yīng)用配置進(jìn)行集中管理和推送的應(yīng)用配置中心產(chǎn)品。基于該應(yīng)用配置中心產(chǎn)品,可以在微服務(wù)、DevOps、大數(shù)據(jù)等場景下極大地減輕配置管理的工作量,增強(qiáng)配置管理的服務(wù)能力。阿里云ACM 是分布式系統(tǒng)的配置中心。通過提供配置變更、配置推送、歷史版本管理、灰度發(fā)布、配置變更審計等配置管理工具,ACM 幫助集中管理所有應(yīng)用環(huán)境中的配置,降低分布式系統(tǒng)中管理配置的成本,并降低因錯誤的配置變更帶來可用性下降甚至發(fā)生故障的風(fēng)險。更多關(guān)于阿里云應(yīng)用配置管理ACM介紹請詳見文章附錄以及官方網(wǎng)站。
監(jiān)控系統(tǒng):采用阿里云監(jiān)控服務(wù),傳統(tǒng)IDC架構(gòu)中我們的監(jiān)控系統(tǒng)是自建的zabbix監(jiān)控系統(tǒng),隨著公司業(yè)務(wù)快速發(fā)展,監(jiān)控項也急劇增加,由最初的500個監(jiān)控項增加到3w個監(jiān)控項,監(jiān)控系統(tǒng)數(shù)據(jù)庫性能跟不上,查詢很慢,告警延遲和誤報的現(xiàn)象逐漸增多,監(jiān)控需求越來越多樣化,定制化。傳統(tǒng)監(jiān)控系統(tǒng)已經(jīng)不能滿足未來業(yè)務(wù)高速發(fā)展。 所以我們云上改用云監(jiān)控,云監(jiān)控是一項針對阿里云資源和互聯(lián)網(wǎng)應(yīng)用進(jìn)行監(jiān)控的服務(wù)。
云監(jiān)控服務(wù)可用于收集獲取阿里云資源的監(jiān)控指標(biāo),探測互聯(lián)網(wǎng)服務(wù)可用性,以及針對指標(biāo)設(shè)置警報。云監(jiān)控對用戶提供Dashboard、站點監(jiān)控、云產(chǎn)品監(jiān)控、自定義監(jiān)控和報警服務(wù)。更多關(guān)于云監(jiān)控介紹請詳見文章附錄第5.1小結(jié)。
數(shù)據(jù)可視化:采用DataV, 解決了運(yùn)維大屏,監(jiān)控大屏沒有UI設(shè)計問題 企業(yè)多多少少有些大屏,在公司接待參觀考察工作時展示企業(yè)形象,企業(yè)運(yùn)營,以及系統(tǒng)運(yùn)行情況等。為了提升企業(yè)形象,有必要針對數(shù)據(jù)可視化部分進(jìn)行美化。阿里云的DataV 可以幫助非專業(yè)的工程師通過圖形化的界面輕松搭建具有專業(yè)水準(zhǔn)的可視化應(yīng)用,讓更多的人看到數(shù)據(jù)可視化的魅力。
DataV 提供了豐富的可視化模板,極大程度滿足會議展覽、業(yè)務(wù)監(jiān)控、風(fēng)險預(yù)警、地理信息分析等多種業(yè)務(wù)的展示需求。更多關(guān)于阿里云DataV數(shù)據(jù)可視化介紹請詳見文章附錄第5.2小結(jié)。
數(shù)據(jù)庫運(yùn)維:采用阿里云數(shù)據(jù)管理DMS,解決數(shù)據(jù)庫運(yùn)維管理問題
阿里云數(shù)據(jù)管理支持MySQL、SQL Server、PostgreSQL、MongoDB、Redis等關(guān)系型數(shù)據(jù)庫和NoSQL的數(shù)據(jù)庫管理,同時還支持Linux服務(wù)器管理。它是一種集數(shù)據(jù)管理、結(jié)構(gòu)管理、訪問安全、BI圖表、數(shù)據(jù)趨勢、數(shù)據(jù)軌跡、性能與優(yōu)化和服務(wù)器管理于一體的數(shù)據(jù)管理服務(wù)。更多關(guān)于阿里云數(shù)據(jù)管理DMS介紹請詳見文章附錄第5.8小結(jié)。
1.12 嘗試新產(chǎn)品解決老問題
問題1:海量車機(jī)設(shè)備的接入導(dǎo)致網(wǎng)絡(luò)延時高,設(shè)備管理困難,安全性差
解決方案:阿里云物聯(lián)網(wǎng)套件(iot套件),解決大規(guī)模車機(jī)管理,數(shù)據(jù)上報問題。
物聯(lián)網(wǎng)套件是阿里云專門為物聯(lián)網(wǎng)領(lǐng)域的開發(fā)人員推出的一站式設(shè)備管理平臺。性能強(qiáng)大的IoT Hub方便設(shè)備和云端穩(wěn)定的進(jìn)行雙向通信;全球多節(jié)點的部署讓全球設(shè)備都可以低延時與云端通信;多重的防護(hù)能力保障設(shè)備云端安全;功能豐富的設(shè)備管理能力幫助用戶方便進(jìn)行遠(yuǎn)程維護(hù)設(shè)備;穩(wěn)定可靠的數(shù)據(jù)存儲能力方便海量設(shè)備數(shù)據(jù)存儲和實時訪問。
物聯(lián)網(wǎng)套件還提供規(guī)則引擎與阿里云眾多云產(chǎn)品打通,用戶通過規(guī)則引擎只需在web上配置規(guī)則即可實現(xiàn)數(shù)據(jù)采集+數(shù)據(jù)計算+數(shù)據(jù)存儲等全棧服務(wù),靈活快速的構(gòu)建物聯(lián)網(wǎng)應(yīng)用。更多關(guān)于阿里云IOT套件介紹請詳見文章附錄。
?
問題2:車聯(lián)網(wǎng)大多應(yīng)用場景對數(shù)據(jù)實時性要求非常高,但是目前在數(shù)據(jù)采集過程中由于數(shù)據(jù)庫寫入性能不夠,經(jīng)常出現(xiàn)大量數(shù)據(jù)寫入延遲情況。
解決方案:阿里云高性能時間序列數(shù)據(jù)庫HiTSDB,解決海量數(shù)據(jù)寫入延遲問題。
為什么說時間序列數(shù)據(jù)庫能解決呢?
據(jù)有關(guān)機(jī)構(gòu)測試發(fā)現(xiàn)一輛聯(lián)網(wǎng)汽車每小時能收集25GB數(shù)據(jù)。常規(guī)數(shù)據(jù)庫在設(shè)計之初并非處理這種規(guī)模的數(shù)據(jù),關(guān)系型數(shù)據(jù)庫處理大數(shù)據(jù)集的效果非常糟糕;NoSQL數(shù)據(jù)庫可以很好地處理規(guī)模數(shù)據(jù),但是它比不上一個針對時間序列數(shù)據(jù)微調(diào)過的數(shù)據(jù)庫。相比之下,時間序列數(shù)據(jù)庫(可以基于關(guān)系型數(shù)據(jù)庫或NoSQL數(shù)據(jù)庫)將時間視作一等公民,通過提高效率來處理這種大規(guī)模數(shù)據(jù),并帶來性能的提升,包括:更高的容納率(Ingest Rates)、更快的大規(guī)模查詢(盡管有一些比其他數(shù)據(jù)庫支持更多的查詢)以及更好的數(shù)據(jù)壓縮。
阿里云高性能時間序列數(shù)據(jù)庫 (High-Performance Time Series Database , 簡稱 HiTSDB) 是一種高性能,低成本,穩(wěn)定可靠的在線時序數(shù)據(jù)庫服務(wù);提供高效讀寫,高壓縮比存儲、時序數(shù)據(jù)插值及聚合計算,廣泛應(yīng)用于物聯(lián)網(wǎng)(IoT)設(shè)備監(jiān)控系統(tǒng) ,企業(yè)能源管理系統(tǒng)(EMS),生產(chǎn)安全監(jiān)控系統(tǒng),電力檢測系統(tǒng)等行業(yè)場景。
HiTSDB 提供百萬級時序數(shù)據(jù)秒級寫入,高壓縮比低成本存儲、預(yù)降采樣、插值、多維聚合計算,查詢結(jié)果可視化功能;解決由于設(shè)備采集點數(shù)量巨大,數(shù)據(jù)采集頻率高,造成的存儲成本高,寫入和查詢分析效率低的問題。后續(xù)文章會詳細(xì)介紹HiTSDB性能測試內(nèi)容。更多關(guān)于HiTSDB介紹請詳見文章附錄第。
問題3:車聯(lián)網(wǎng)行業(yè)是典型的大數(shù)據(jù)行業(yè),有大量的大數(shù)據(jù)分析應(yīng)用場景需求,但是自建大數(shù)據(jù)平臺成本高,維護(hù)困難,大數(shù)據(jù)人才不好招。
解決方案: MaxCompute + Dataworks + 云數(shù)據(jù)庫HBase版
阿里云大數(shù)據(jù)計算服務(wù)(MaxCompute,原名 ODPS)是一種快速、完全托管的 GB/TB/PB 級數(shù)據(jù)倉庫解決方案。MaxCompute 提供了完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計算模型,能夠更快速的解決海量數(shù)據(jù)計算問題,有效降低企業(yè)成本,并保障數(shù)據(jù)安全。
同時,DataWorks 和 MaxCompute 關(guān)系緊密,DataWorks 為 MaxCompute 提供了一站式的數(shù)據(jù)同步,任務(wù)開發(fā),數(shù)據(jù)工作流開發(fā),數(shù)據(jù)管理和數(shù)據(jù)運(yùn)維等功能,幫助企業(yè)專注于數(shù)據(jù)價值的挖掘和探索。普通開發(fā)人員也可以勝任大數(shù)據(jù)開發(fā)任務(wù)。
云數(shù)據(jù)庫 HBase 版(ApsaraDB for HBase)是基于 Hadoop 且100%兼容HBase協(xié)議的高性能、可彈性伸縮、面向列的分布式數(shù)據(jù)庫,輕松支持PB級大數(shù)據(jù)存儲,滿足千萬級QPS高吞吐隨機(jī)讀寫場景。
阿里集團(tuán)在10年開始研究HBase并使用在生產(chǎn)之中,目前阿里集團(tuán)有10000臺左右的HBase機(jī)器,數(shù)百個集群,服務(wù)數(shù)百個業(yè)務(wù)。是一款久經(jīng)沙場的大數(shù)據(jù)產(chǎn)品。
問題4:單機(jī)MySQL數(shù)據(jù)庫遇到IO性能瓶頸和容量擴(kuò)容瓶頸,如果業(yè)務(wù)和用戶規(guī)模繼續(xù)增長將面臨單機(jī)數(shù)據(jù)庫擴(kuò)展困難。
解決方案:阿里云分布式關(guān)系型數(shù)據(jù)庫服務(wù)DRDS阿里云分布式關(guān)系型數(shù)據(jù)庫服務(wù)專注于解決單機(jī)關(guān)系型數(shù)據(jù)庫擴(kuò)展性問題,具備輕量(無狀態(tài))、靈活、穩(wěn)定、高效等特性,是阿里巴巴集團(tuán)自主研發(fā)的中間件產(chǎn)品。DRDS 兼容 MySQL 協(xié)議和語法,支持分庫分表、平滑擴(kuò)容、服務(wù)升降配、透明讀寫分離和分布式事務(wù)等特性,具備分布式數(shù)據(jù)庫全生命周期的運(yùn)維管控能力。DRDS 主要應(yīng)用場景在大規(guī)模在線數(shù)據(jù)操作上,通過貼合業(yè)務(wù)的拆分方式,將操作效率提升到極致,有效滿足用戶在線業(yè)務(wù)對關(guān)系性數(shù)據(jù)庫要求。DRDS提供了豐富的功能:分庫分表
支持 RDS/MySQL 的分庫分表,在創(chuàng)建分布式數(shù)據(jù)庫后,只需選擇拆分鍵,DRDS 就可以按照拆分鍵生成拆分規(guī)則,實現(xiàn)數(shù)據(jù)水平拆分。
透明讀寫分離
通過使用 RDS 只讀實例或者 MySQL 備機(jī)實現(xiàn)讀寫分離,幫助應(yīng)用解決事務(wù)、只讀實例或者備機(jī)掛掉、指定主備訪問等細(xì)節(jié)問題,對應(yīng)用無侵入,在 DRDS 控制臺即可完成讀寫分離相關(guān)操作。
數(shù)據(jù)存儲平滑擴(kuò)容
當(dāng)出現(xiàn)數(shù)據(jù)存儲容量和訪問量瓶頸時,DRDS 支持在線存儲容量擴(kuò)展,擴(kuò)容無需應(yīng)用改造,擴(kuò)容進(jìn)度支持可視化跟蹤。
服務(wù)升降配
DRDS 實例可以通過改變資源數(shù)量實現(xiàn)服務(wù)能力的彈性擴(kuò)展。
?
分布式運(yùn)維指令集
DRDS 提供獨有分布式數(shù)據(jù)庫運(yùn)維指令集,如 SHOW SLOW、TRACE、SHOW NODE 等指令,有助于快速發(fā)現(xiàn)和定位問題。
全局唯一數(shù)字序列
DRDS 支持分布式全局唯一且有序遞增的數(shù)字序列。滿足業(yè)務(wù)在使用分布式數(shù)據(jù)庫下對主鍵或者唯一鍵以及特定場景的需求。
數(shù)據(jù)庫賬號權(quán)限體系
DRDS 支持類單機(jī) MySQL 賬號和權(quán)限體系,確保不同角色使用的賬號操作安全。
分布式事務(wù)
DRDS 支持分布式柔性事務(wù),保證分布式數(shù)據(jù)庫數(shù)據(jù)一致性。
監(jiān)控報警
DRDS 支持對核心資源指標(biāo)和數(shù)據(jù)庫實例指標(biāo)的實時監(jiān)控和報警,如實例 CPU、網(wǎng)絡(luò) IO、活躍線程等,幫助實時發(fā)現(xiàn)資源和性能瓶頸。
2、數(shù)據(jù)遷移策略
2.1 數(shù)據(jù)庫遷移策略
數(shù)據(jù)庫遷移是整個上云過程中最重要的一環(huán),難度也最大,因為我們在遷移的時候要盡可能的減少業(yè)務(wù)本身的影響,最好是不停機(jī)不中斷現(xiàn)有業(yè)務(wù)。需要制定非常詳細(xì)的計劃和遷移策略:
遷移工具:推薦阿里云數(shù)據(jù)傳輸服務(wù)DTS
DTS 是阿里云提供的一種支持 RDBMS(關(guān)系型數(shù)據(jù)庫)、NoSQL、OLAP 等多種數(shù)據(jù)源之間數(shù)據(jù)交互的數(shù)據(jù)流服務(wù)。它提供了數(shù)據(jù)遷移、實時數(shù)據(jù)訂閱及數(shù)據(jù)實時同步等多種數(shù)據(jù)傳輸能力。通過數(shù)據(jù)傳輸可實現(xiàn)不停服數(shù)據(jù)遷移、數(shù)據(jù)異地災(zāi)備、異地多活(單元化)、跨境數(shù)據(jù)同步、實時數(shù)據(jù)倉庫、查詢報表分流、緩存更新、異步消息通知等多種業(yè)務(wù)應(yīng)用場景,助構(gòu)建高安全、可擴(kuò)展、高可用的數(shù)據(jù)架構(gòu)。
DTS 支持多種數(shù)據(jù)源類型,例如:
遷移時間:推薦在業(yè)務(wù)流量最低峰時段例如每天0點至5點
遷移方法:
一般情況我們的業(yè)務(wù)數(shù)據(jù)庫都是有主備的,那么選擇從數(shù)據(jù)庫作為源數(shù)據(jù)庫對云上數(shù)據(jù)庫進(jìn)行同步,這樣做的目的是為了減少對主庫的影響,有條件的話選擇單獨的從數(shù)據(jù)庫專門用作對云上數(shù)據(jù)庫進(jìn)行全量同步遷移。完了之后再切換到主數(shù)據(jù)庫開啟增量數(shù)據(jù)同步(利用DTS可以輕松完成數(shù)據(jù)庫的增量同步)。這樣就可以保證線下數(shù)據(jù)庫和線上數(shù)據(jù)庫的一致性了。
2.2 文件系統(tǒng)遷移策略
之前采用的是自建NFS文件系統(tǒng)用于存儲圖片和文件。隨著文件越來越多,圖片訪問速度越來越慢,搬到云上之后,可以利用阿里云的OSS和CDN服務(wù),構(gòu)建如下的web端直傳OSS存儲方案,架構(gòu)如下:
?
?
用戶的請求邏輯:
1) 用戶向應(yīng)用服務(wù)器取到上傳policy和回調(diào)設(shè)置。
2) 應(yīng)用服務(wù)器返回上傳policy和回調(diào)。
3) 用戶直接向OSS發(fā)送文件上傳請求。
4) 等文件數(shù)據(jù)上傳完,OSS給用戶Response前,OSS會根據(jù)用戶的回調(diào)設(shè)置,請求用戶的服務(wù)器。
5) 如果應(yīng)用服務(wù)器返回成功,那么就返回用戶成功,如果應(yīng)用服務(wù)器返回失敗,那么OSS也返回給用戶失敗。這樣確保了用戶上傳成功的照片,應(yīng)用服務(wù)器都已經(jīng)收到通知了。
6) 應(yīng)用服務(wù)器給OSS返回。
7) OSS將應(yīng)用服務(wù)器返回的內(nèi)容返回給用戶。
?
?
利用阿里云OSS存儲代替原來的自建NFS文件系統(tǒng),優(yōu)勢很明顯:
?
OSS服務(wù) 配合CDN 服務(wù)一起使用,則可以加速文件存儲和訪問速度,提升用戶訪問體驗。
CDN的工作原理就是將源站的資源緩存到各地的邊緣節(jié)點服務(wù)器(CDN節(jié)點)上,用戶請求訪問和獲取資源時,就近調(diào)用CDN節(jié)點上緩存的資源。這種分布式數(shù)據(jù)傳輸方式,使得用戶請求的資源不需要都回源站獲取,從而避免網(wǎng)絡(luò)擁塞、分擔(dān)源站壓力,保證用戶訪問資源的速度和體驗。
使用CDN后的http請求處理流程如下圖
?
阿里云CDN在全球擁有1300+ 節(jié)點,國內(nèi)完整覆蓋 34 個省級區(qū)域,大量節(jié)點位于省會等一線城市。海外覆蓋70 多個國家和地區(qū)。阿里云所有節(jié)點均接入 萬兆 網(wǎng)卡;具備 90 Tpbs 帶寬能力儲備。單節(jié)點存儲容量達(dá) 40 TB-1.5 PB,帶寬負(fù)載達(dá)到 40 Gbps-200 Gbps。
?
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的车联网上云最佳实践(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MaxCompute SQL原理解析及性
- 下一篇: Greenplum roaring bi