摘要:華為云IoT提供了一站式的物聯網應用開發的基礎能力,這些能力做到高可用是非常不容易的,那到底是怎么做到的呢?
本文分享自華為云社區《【云駐共創】高可用架構演進之單元化》,作者:咸蛋超人,
單元化是高可用架構當中的一個殺手锏,本文主要是想重點分享一下高可用架構演進之單元化,總共分為三個部分:
- 華為云IoT是如何理解高可靠、高穩定的 ,
- 華為云IoT的架構是怎么做的,單元化的一些理念和實踐,
- 單元化技術能力在產品上是如何使用的,
物聯網平臺是使能數字化的基礎設施
首先摘取了三組分析師的報告,我們可以看出,物聯網的平臺已經變得越來越成熟,2021年整個物聯網連接規模將達到70億,三分之二的企業已經在采用IoT,

這些資料背后意味著整個物聯網平臺包括整個物聯網技術都應用在我們生活的方方面面,我們這些年說的非常多的就是數字化,其實數字化時代與資訊化有什么不同?資訊化是以人與流程為主軸的,而數字化很大的增量,其實就是以物為核心的OT資料,所以數字化的基礎物聯網是非常核心的部分,物聯網平臺也是整個數字化的重要基礎設施,
那說到基礎設施,我們會想到的例如水、電、煤,基礎設施應該是具有一些特點的:
- 可以開箱即用,很容易地運用在各種場景,
- 要高可用,做為基礎設施如果是不高可用的,意味著在上面構建的應用或者場景都很難可靠,
- 就是可持續,即要保證業務的連續性,
穩定性是目前物聯網客戶最大訴求

去年對一些物聯網的開發者做過一次調研,結論是開發者最關心的還是穩定性,在這里分享一個案例,有一家企業規模比較大,研發實力也很強,就選擇了自研的物聯網平臺,整個物聯網平臺做好了,功能很ok,就偶爾一些不穩定,基本上重啟、修復還是可以用的,但有一天,突然整個全網的設備就無法連接了,重啟、擴容,反復折騰了將近一天也沒有定位到問題所在,后來尋求華為云IoT的幫助,問題的主要原因是它的負載均衡,它本身設定有問題,架構伸縮性也有問題,物聯網設備規模比較大的時候流量一抖動,觸發了連接風暴,這個企業的架構師分享了一個觀點,他們過去在做這種架構的時候,更多考慮的是人工成本和服務器成本,忽略了機會成本,也就是系統不可靠帶來的業務損失,他們當時一天服務中斷造成的業務損失其實是超過了使用物聯網平臺十年的成本,所以作為架構師,做方案的時候更應該關注穩定性,
物聯網平臺的高可用挑戰

穩定性這么重要,是不是就把它做好就可以了?是的,如果做好了確實是可以的,但是,做好這件事并不是那么容易,物聯網平臺具有專業性以及獨特性的挑戰,主要體現如下:
1. 物聯網的架構
物聯網的業務跟我們生活、民生、生產都是息息相關的,過去整個互聯網基本在消費上發展起來的,消費互聯網現在進入物聯網時代,物聯網小到出行,如果上班趕時間,共享單車開不了鎖,會對生活產生一些影響,工廠里,因為物聯網平臺的不穩定影響工廠的生產造成停工停產甚至在還會危及到人生的安全,所以他對高可靠的要求要高于消費互聯網的,我們過去技術的發展,大部分的中間件都是在消費互聯網的基礎上構建出來,現在很多產品的SLA都要求達到99.9%甚至更高,
2. 物聯網的場景
物聯網場景很大的特點就是碎片化非常嚴重,作業系統的碎片化是移動互聯網時代的一個痛點,我們互聯網時代的端其實更多,它的作業系統更不統一,資源受限,所以端的差異化非常嚴重,有些嵌入式的端的協議站不完整,云端會收到很多奇形的報文,甚至是死回圈,對云端發起瘋狂的連接,物聯網還有一個最大的場景威脅,就是連接風暴,很多時候設備都是長連接的,像十萬百萬千萬甚至一億的設備連接進來,一斷網或者是網路有些抖動,所有的設備突然掉線然后突然蜂涌而至的向平臺發起連接,就像我們生活中的踩踏事件,尤其在接連的時候,是非對稱加密的,對資源的消耗非常大,交付非常多,所以這種連接風暴突然爆發的時候服務器的壓力是十倍甚至更高的,這些都是對平臺會產生極大的一個挑戰,
3. 物聯網的安全
安全威脅大有兩個特征,第一是對黑客來講做這件事的傭訓比較大、利益比較大;第二是物聯網的這種鏈路比較長,相對來講很容易有安全難度也比較高,在端上會有一些薄弱的環節,所以相對來講攻擊的難度也會低一點,
4. 物聯網的運維
排查物聯網網路問題需要非常專業的技術,一些自建平臺做好了功能,當網路不穩定設備多的時候,穩定性就會下降,出了問題難以定位和快速恢復,
華為云IoT一站式提供了高可用的物聯網服務

華為云IoT過去近一年SLA做到了99.99% ,提供了一站式物聯網平臺服務,那到底提供了哪些服務呢?我們從設備的上云之路一起來看一下,
首先,做物聯網開發肯定是離不開設備的,設備的開發需要作業系統,可以使用華為LiteOS作業系統也可以使用其他作業系統,然后使用SDK進行接入,可以選擇直連或通過IoT邊緣接入,接著會面臨選擇網路的問題,像wifi、2g/3g/4g等 ,如果選擇無線網路,華為云還有全球SIM連接服務,它可以提供eSIM空中寫卡能力,可以根據你的需求去跟更換運營商,非常方便,
這個設備就具備了接入的前提,接下來是設備發放服務,
我們在開發的時候在生產的時候不知道設備未來會連接到哪里,可能是連接北京也可能連接在廣州或者是海外,那我們可以設備發放的服務在設備首次接連的時候來根據你設定的策略,發放到不同Region的物聯網平臺,
那這個發放做完了我們設備就可以接入了,華為云IoT提供了一些多協議的接入能力,還提供了一些聯動等設備的全生命周期的管理能力,資料上來以后如果想到其他的云產品也可以通過流轉服務流轉到其他的產品上,也可以流轉到資料分析服務,資料分析服務提供了溫、冷、熱的資料處理的能力,還有資產模型,可以做一些虛設點的計算,如果要深層次的去使用你的資料也可以使用我們的AMQP把資料定位到你自身的應用里面去,
好的架構是高可用的重要前提
華為云IoT提供了一站式的物聯網應用開發的基礎能力,這些能力做到高可用是非常不容易的,那到底是怎么做到的呢?首先作為一個高可用前提是要一個好的架構,包含了四個非常關鍵且具有通用性的特征:
1. 限流降級
前面也提到物聯網連接風暴是很大的威脅,那限流就非常關鍵了,
- 限流有多維度的限流,可分為單機的,設備級的、產品級的、租戶級的,還有根據間連限流、上報限流、訂閱限流,
- 還有自適應降級,一些情況下需要優先保證一些重要的業務,會把一些像運維這方面做一些降級,
2. 彈性伸縮
對于一些例外做限流,但對于一些合理的業務增長,則需要彈性能力,彈性這塊就需要底層部署調度做得非常好,資源要能夠柔性伸縮,但資源伸縮的前提是架構也能水平的擴展,
3. 容災
我們知道系統不可能做到百分之百,難免會有可能出現一些例外,所以我們會需要容災,現在華為云IoT的產品單個Region都是具備3 Az的容災,AZ我們一般叫可用區,實際上是一個隔離的資料中心,AZ跟AZ之間的這個物理距離一般在100公里以內,他們的時延一般是2~3毫秒,多AZ容災基本上一個資料中心出現例外了,對業務也沒什么影響,再高級一點就是多Region容災,會更加復雜而且成本也比較高,
4. 單元化
想做一個高可用的系統,單從架構做好也是不夠的,還涉及到設計、編碼、測驗、運維,甚至包括一些流程制度,這是一個體系化的事情,
橫向單元化——構建平行的多單元可以聯合提供服務
我們傳統的模式是單一集群,里面有很多的實體,當把單一集群拆分成很多的單元,一些實體會去共享一個單元,也有一些實體會獨占一個單元,就是根據產品設計去決定的,那這樣就形成一個多單元的集群,它又有什么優點呢?

1. 隔離
就像水密艙,它能有效地控制爆炸的半徑,避免級聯的故障,所以在這種情況下能有效的非常有效地隔離故障
2. 可擴展
它可以滿足百億的規模,物聯網很多場景,設備之間是不可以互動的,這就決定了很多產品是可以很好的去做Partition的,有些企業想做一個百億的規模,我們可以用100個1億的單元構成,設計1個支持1億設備的單元,相對來講難度更容易,系統也更容易做到可靠,
3. 有效的去應用一個灰度的策略
變更最容易出問題的地方,但通過單元化這種技術,把一個集群拆成十幾二十幾個,甚至百個單元,就是以單元級別做灰度的,能夠更有效的管控變更的風險,
4. 親和
因為相對來講根據我們一定的磁區來說,單元列的資料相關性會更高,所以快取的命中率也會更高,基本上的熱點資料,資料都被相對集中起來,所以它對性能上也是有很大的幫助,
縱向單元化——從公有云到智能站點構建多單元
既然有橫向單元化,那也有縱向的單元化,我們在公有云上有物聯網平臺,混合云上有華為云Stack,它是部署在客戶的現場,一般是幾個機柜、幾十臺物理機這樣的規模,想要輕量一點就可以使用華為云的智能站點,只需要一個機柜,三臺物理機起,可以部署在客戶的機房,甚至部署在辦公區域,這是構建了一個縱向的單元,像工廠這種場景,資料量比較大,會希望就近處理資料,因為這樣比較快,而且更可靠,減少了公網的依賴,還能有效地減少資料上云,可以在本地做處理,像這三種形態有不同的應用場景,它們可以獨立的部署,完全自制,就是說我們的業務場景可以選一個單元去做這樣的事情,選一個形態,也可以實作單元聯合,可以協同,

IoT單元的定義
前面介紹了這么多單元,那么華為云IoT的單元是怎么定義的?華為云IoT單元職責的定義是一個獨立完整的業務處理倍訓,它是可以獨立部署、獨立去做業務的,那又有什么特征呢?

- 它存盤是獨立的,不會出現兩個單元共用一份存盤的情況,
- 計算是獨特的,
- 網路也是獨立的,公有云上我們每個單元都是一個獨立的網路,
- 流量盡可能的去封閉,避免流量外溢,
- 公有云一個單元屬于一個Region,
- 公有云一個單元至少3AZ部署,
IoT單元間的協同
單元很大的一個優勢就是在單元之間的協同,有幾種典型的協同:
第一種就是聯合,聯合是通過合理的Partition做磁區,通過多個單元構建一個更大的業務,例如用10個1000萬的單元構建1個1億的業務或者是用10個億的單元構建10億的業務,
第二種是容災,容災就是單元和單元之間通過資料的轉發,兩個單元可以做多活,這是一種高可用的場景,
第三種是級聯,通過很多單元層層級聯構建一些復雜業務,比如城市物聯網平臺,城市的業務當中有區級的、市級的、省級的、廳級的物聯網平臺,這么多的物聯網平臺像一個一個煙筒一樣,華為云IoT的物聯網平臺,無論市區的、省廳的到最后通過整個級聯,構建互聯互通,形成一個整體的方案,
單元化實作的挑戰
單元化有很多優勢,但單元化也非常復雜,實作的難度比較高,那他有哪些挑戰呢,

第一個運維挑戰很大,只管理幾個集群的時候,發布、安裝部署、運維也比較容易的,當管理起十個甚至上百個單元的時候挑戰就來了,怎么安裝,怎么升級,怎么確保單元能有效的去運維起來,這對工具、自動化的要求是非常高的,
第二個大的挑戰就是磁區的調度,當存在單元不均衡問題時,要考慮怎么有效的磁區,怎么定Partition策略,怎么保證單元均衡,這會涉及到一些資料的遷移,
第三塊就是協同復雜度很高,級聯很好,但是級聯本身協議和策略怎么去制定,這么多單元,資料一致性怎么去保證,
單元化的全景圖
這是華為云IoT單元化的一個全景,既有橫向的也有縱向的,構成了多單元的聯邦協同,它的核心理念是,任一單元的接入可以做到設備全域協同,假如某個業務場景的特征決定暫時不使用公有云,使用智能站點,有一天,覺得本地處理能力不夠了,或者想借云端的算力做一些更高級的分析,那可以在公有云上開一個實體,也不需要做什么代碼開發,資料只要做一些簡單的配置就可以平滑的上公有云,又或者是某個公有云業務,設備接進來了,有一天需要本地更快的處理,或者是節省一些流量的時候,可以在這個基礎上再加選只能站點或者華為云Stark,那也不需要做太多的代碼改造就可以新增一個單元來做業務,只要我們想達到的,不用擔心通過什么方式什么形態接入進來,只要你做過這樣一個接入,我們最后能都能保證設備的全域協同,最終是運用這種單元技術通過不同的組合滿足一些高可用、高容量、高性能的需求,

設備接入服務多實體型別,讓聯接按需定制
單元化在華為云IoT產品上有什么體現呢?我們設備接入服務有多實體的一個形態,它可以讓聯接按需定制,華為云IoT設備接入服務有三個版本,基礎版、標準版和企業版,基礎版和標準版其實就是多個實體共享多個單元,企業版是一個實體獨占一個單元,它是獨立的VPC,有獨立的網路,支持公/私網的對接,

華為云IoT多形態部署,讓聯接無處不在
縱向單元化體現的就是華為云多形態部署,一共有4種的這種形態,
- 公有云支持一級設備的接入,開箱即用,有多種實體,可以按需選擇適用的場景,
- 華為云Stack,服務器部署在客戶的現場,能滿足一些行業對網路合規的要求以及一些大型企業想建自己資料中心的訴求,它的設備規模一般是千萬級,
- 智能站點,它非常輕量,基本上一個機柜三臺服務器即可,適合百萬級設備的接入,可以云邊協同,云端可以遠程運維,
- 邊緣網關,業務時延低于50ms,

本文整理自【華為云社區內容共創者火熱招募中】第五彈:拒絕躺平,踮腳夠上生活小美好!看直播寫博客,贏好禮!
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294784.html
標籤:其他
上一篇:一、DC DC電源轉換電路設計
