作者:Enea公司中間件總監(jiān)Joe Kidder,Enea公司市場營銷總監(jiān)Fredrik Ehrenstrale 分布式系統(tǒng)分為簡單的多線程應(yīng)用、基于多插槽機(jī)柜的系統(tǒng)以及聯(lián)網(wǎng)的服務(wù)器集群。當(dāng)這些系統(tǒng)被移入基于云的環(huán)境中時(shí),拓?fù)鋾?huì)變得更加復(fù)雜,當(dāng)這些系統(tǒng)涉及到機(jī)器對(duì)機(jī)器(或M2M)解決方案時(shí),拓?fù)鋾?huì)變得更加多樣化。分布式系統(tǒng)軟件解決方案提供商在構(gòu)建、調(diào)試和維護(hù)一系列互連應(yīng)用方面面臨著多重挑戰(zhàn)。管理這些系統(tǒng)需要使用強(qiáng)大的建模功能,并需要采用多種管理界面,以滿足客戶的各種要求。由分布式系統(tǒng)提供的服務(wù)通常需要具備較高的可用性。構(gòu)成Enea Element的中間件框架可有效解決提供商面臨的大部分挑戰(zhàn)。 應(yīng)用與Element中間件集成 Element中間件可輕松地與現(xiàn)有應(yīng)用集成,充分發(fā)揮它的多樣化性能。如果無法修改應(yīng)用使其與Element APIs直接集成,可以在應(yīng)用中套加Element功能。 對(duì)于大多數(shù)具有高可用性的簡單案列,可以交由Element的高可用性代理應(yīng)用驅(qū)動(dòng)未修改的應(yīng)用,高可用性框架會(huì)為其分配一個(gè)有效的高可用性角色,然后啟動(dòng)應(yīng)用。 然后代理監(jiān)控應(yīng)用的未知錯(cuò)誤并向高可用性框架報(bào)告這些錯(cuò)誤。此時(shí),高可用性框架和代理可執(zhí)行各種錯(cuò)誤恢復(fù)機(jī)制,包括適時(shí)重啟應(yīng)用,將應(yīng)用故障遷移到另一節(jié)點(diǎn)或?qū)⑦\(yùn)行故障應(yīng)用的整個(gè)節(jié)點(diǎn)遷移到另一節(jié)點(diǎn)。 如果應(yīng)用自身具有高可用性功能、管理或監(jiān)控接口,Element代理會(huì)變得更加復(fù)雜。代理可作為功能網(wǎng)關(guān),利用應(yīng)用的接口,橋接Element服務(wù)和應(yīng)用功能。甚至可使用Element的Python編譯環(huán)境在Python中編寫應(yīng)用代理,提供快速的開發(fā)方法。 如果可以修改應(yīng)用,那么可以從Element服務(wù)中獲得更多數(shù)值。高可用性環(huán)境下的大多數(shù)應(yīng)用要么屬于守護(hù)進(jìn)程,要么至少具有合理的生命周期。這些應(yīng)用一般包括初始化序列,以及帶有單個(gè)或多個(gè)事件循環(huán)的一個(gè)或多個(gè)線程。 添加Element支持好比一些Element服務(wù)初始化調(diào)用那么簡單,然后在事件循環(huán)中添加Element消息檢查。而對(duì)于使用套接字select或poll的阻斷循環(huán),Element套接字描述符可添加到檢查中的描述符集。 如果Element套接字上存在活動(dòng),先調(diào)用ElemMsgReceive() 然后再調(diào)用ElemSigDispatch()就可輕松處理一切,觸發(fā)Element初始化調(diào)用中注冊(cè)的任何相關(guān)回調(diào)方法,或應(yīng)用注冊(cè)的回調(diào)方法去處理應(yīng)用特定消息。 可使用標(biāo)準(zhǔn)AMF API調(diào)用或更簡單的方法,使用Element簡化AMF封裝程序就可增加高可用性或AMF支持。此外,還可增加更多的服務(wù),比如用于運(yùn)行時(shí)系統(tǒng)級(jí)調(diào)試的日志和命令服務(wù)。Element名稱服務(wù)是一套非常強(qiáng)大的工具,用于服務(wù)發(fā)現(xiàn)、監(jiān)管(了解此服務(wù)是否已停用)和同步。原理非常簡單,發(fā)布一個(gè)標(biāo)記(名稱或字符串)宣告服務(wù)或訂閱標(biāo)記尋找服務(wù)。用于配置、監(jiān)控和通知的嵌入式管理簡單易用,相關(guān)建模也不復(fù)雜。 關(guān)鍵是應(yīng)用可漸進(jìn)式集成,根據(jù)需要逐步使用更多Element服務(wù)。Element API非常直觀,支持遞增集成。最后,利用Element Signal Dispatch等實(shí)用程序,處理事件/消息和對(duì)象API,實(shí)現(xiàn)負(fù)載重建和消耗,簡化使用異步分布式解決方案開發(fā)方法。 云技術(shù)下的電信級(jí)高可用性 現(xiàn)如今,越來越多的傳統(tǒng)嵌入式應(yīng)用和服務(wù)開始擁抱云技術(shù),而其中通信應(yīng)用和服務(wù)在可用性和故障遷移方面,對(duì)云技術(shù)有著特殊要求。 一些使用案例中,99.5%的可用性貌似已相當(dāng)不錯(cuò),但另一些案例則要求傳統(tǒng)電信級(jí)可用性達(dá)到“5個(gè)9”或99.999%,但是你能確保你的云計(jì)算服務(wù)提供商可以達(dá)到這樣的要求嗎? 一些服務(wù)提供商的故障管理或故障遷移模式非常出色,可將故障恢復(fù)時(shí)間控制在5到10秒之間。但你知道嗎?事實(shí)上,你能管理和控制自己的故障管理和故障遷移模式并縮短停機(jī)時(shí)間? Enea Element是可實(shí)現(xiàn)高可用性的電信標(biāo)準(zhǔn)SAF/AMF一致中間件解決方案,能與云計(jì)算環(huán)境無縫銜接。在電信中,群集中次50毫秒節(jié)點(diǎn)故障遷移是基本標(biāo)準(zhǔn),但Enea Element在云環(huán)境下可控制在次10毫秒節(jié)點(diǎn)故障遷移水平。 參見下面亞馬遜云群集下數(shù)據(jù)庫服務(wù)從某一節(jié)點(diǎn)故障遷移到另一節(jié)點(diǎn)電信級(jí)水平演示: 如果你在將應(yīng)用遷移到云后的確需要高可用性,而且需要控制自己的故障遷移策略,那么你不妨了解一下Enea Element。在部署中增加無縫集成“不中斷業(yè)務(wù)升級(jí)”功能的Element Software Management,為云上實(shí)現(xiàn)完美PaaS(平臺(tái)即服務(wù))或SaaS(軟件即服務(wù))添磚加瓦。 Enea Element 簡介視頻: |